جالب توجه است انجام همه اموری که توسط Unimate نشان داده شد، به تازگی بصورت خودمختار دست یافته­ایم. در واقع آنچه در تلویزیون از Unimate نشان داده شد، تمام حرکات برنامه ریزی شده و محیط آن به دقت صحنه سازی شده بود. به تازگی تنها با ظهور حسگر ارزان قیمت و قدرتمند و محاسبات، ربات قادر به تشخیص یک شیء توسط خود، حرکات برنامه­ای برای رسیدن به آن و به چنگ آوردن آن شده است. با این حال، عملکرد رباتیک شبیه به کارهای انسان هنوز فاصله داریم.

این کتاب اصول محاسباتی ربات خودمختار را به شما معرفی می­نماید. زمانی رباتها خودمختار هستند که در پاسخ به محیط خود به کمک زیر مجموعه­ای از برنامه­های از پیش تعیین شده به سادگی تصمیم گیری کنند. آنها با استفاده از تکنیک­های پردازش سیگنال، تئوری کنترل و هوش مصنوعی، به این خواسته دست می­یابند. این تکنیک­ها با مکانیک، حسگرها و عملگرهای ربات به هم پیوسته اند. در نتیجه طراحی یک ربات نیاز به درک عمیق از هم الگوریتم و هم روابط آن با جهان فیزیکی دارد.

هدف این فصل مقدماتی، معرفی انواع مسائل رباتیک و چگونگی حل آن می­باشد.

شکل 1-1 اسباب بازی که با استفاده از کنترل مکانیکی از روی میز نمی­افتد. فلای ویل عمود به حرکت ربات می­چرخد و به محض آن که چرخ کاستور[1] جلو به لبه می­رسد گردش به راست را ایجاد می­کند.

1-1 اطلاعات و تجسم

تصور ما از "رفتار هوشمند" به شدت بستگی به درک ما از کار مغز و چگونگی کار رایانه دارد: هوش در سر ما واقع شده است. با این حال، در واقع بسیاری از رفتارهاست که به نظر هوشمند می­رسد ولی می­توان با استفاده از ابزار بسیار ساده به دست آورد. به عنوان مثال، اسباب بازی مکانیکی که می­تواند از سقوط کردن با استفاده از چرخ لنگری که در زاویه عمود به جهت حرکت خود می­چرخد و با یک چرخ کاستور جلوگیری کند. هنگامی که چرخ کاستور تماس با زمین را از دست می­دهد، به این معنی است که ربات به لبه رسیده و فلای ویل با ضربه ایی ربات را به سمت راست می­کشد (شکل 1-1).

ربات جارو برقی ممکن است همین مشکل را بسیار متفاوت حل کند: مثلا برای تشخیص لبه­های پله از حسگرهای مادون قرمزی استفاده می­کند که به سمت پایین اشاره دارد که با تشخیص آن دستور می­دهد تا از افتادن خود اجتناب کند. هنگامی که لوازم الکترونیکی بصورت منسجم (on board) هستند، این موضوع بسیار کارآمدتر است، البته رویکرد بسیار پیچیده­تری هم دارد.

همانگونه که نمونه­های فوق الذکر روش­های مختلفی را برای پیاده سازی رفتارهای هوشمند ارائه می­دهند، ساز و کارهای[2] مشابه­ای برای برنامه­ریزی رباتیک وجود دارد. به عنوان مثال، مورچه­ها می­توانند با انتخاب ساده مسیری که قبلا فرومون بیشتری داشته، کوتاه­ترین مسیر بین لانه خود و منبع غذایی را پیدا کنند، مواد شیمیایی که ارتباط مورچه­ها با آن برقرار می­شود. در مسیرهای کوتاه­تر مورچه­ها نه تنها سریع تر به مواد غذایی می­رسند، بلکه بازگشت سریع­تری دارند، اثر باقی گذاشتن فرمون خود را سریعتر می­سازد (شکل 1-2). اما مورچه­ها درگیر این راه حل نیستند. در حال حاضر و پس از آن، مورچه­ها در مسیرهای طولانی­تر دیگری می گردند تا در نهایت منابع غذایی جدید پیدا کنند.



[1] caster  wheel

[2] trade-offs  

شکل 1-2 مورچه­ها کوتاه ترین مسیر از لانه خود (پایین) به یک منبع غذایی (بالا) را پیدا می­کنند. از چپ به راست: مورچه­ها در ابتدا انتخاب برابری برای سمت چپ و یا راست دارند، هم به جلو و هم به عقب می­روند. وقتی مورچه­ها بر روی مسیر­های کوتاه­تر سریع­تر برمی­گردند فرومون بیشتری در مسیر کوتاهتر وجود خواهد داشت درنتیجه یک بار دیگر مورچه جدیدی از لانه می­رسد.

آنچه به نظر می­رسد رفتار هوشمند در سطح گروهی، اساسا با یک حسگر فرمون گاهی اوقات با شکست مواجه می­شود. ربات صنعتی مدرن این مشکل را به طور کاملا متفاوت حل می­کند: برای اولین بار چند نمایش از محیط را به شکل یک نقشه جمعیتی از موانع به دست می­آورد و پس از آن یک مسیر با استفاده از الگوریتم طراحی می­نماید.

آنچه راه حل برای رسیدن به یک رفتار خاص مورد نظر است به منابع موجود برای طراح بستگی دارد. ما در حال حاضر به مسئله پیچیده­تر که برای آن راه حل هایی (با کارآیی بیشتر یا کمتر) وجود دارد می­پردازیم.

1-2 مسئله رباتیک

سناریوی زیر را تصور کنید. شما یک ربات هستید که در یک محیط پُر پیچ و خم مانند انبار، بیمارستان یا ساختمان اداری بهم ریخته قرار دارید. یک جعبه پر از سکه های طلا جایی در داخل آن پنهان است. متاسفانه، نقشه آنجا را ندارید. در صورتی که جعبه را پیدا کنید، ممکن است تنها چند سکه را در یک زمان بردارید و آنها را به درب خروجی که ماشین خود را پارک کرده­اید، بیاورید.

در مورد یک استراتژی فکر کنید که به شما اجازه برداشت سکه­های بسیاری را در کوتاه ترین زمان ممکن بدهد. در مورد قابلیت­های شناختی و ادراکی خود که می­توانید استفاده کنید فکر کنید. حال در مورد استراتژی های جایگزینی بحث کنید، اگر شما قابلیتی را نداشتید، به عنوان مثال، اگر شما کور بودند و هیچ ذهنیتی نداشتید؟

این دقیقاً همان مشکلاتی است که یک ربات می­تواند داشته باشد. ربات ماشین موبایل است که حسگر و محاسباتی دارد که به آن اجازه می­دهد تا درکی از محیط  پیرامون خود داشته باشد. رباتهای کنونی فاقد قابلیت های انسانی­اند؛ اگر شما فاقد آن ادراک مهم و یا قابلیت­های محاسباتی باشید، مجبورید در مورد بسیاری از حس­های دیگر با استراتژی­هایی که شما برای حل یک مسئله بکار می­گیرید، فکر کنید.

قبل از اینکه به ادامه بحث در مورد استراتژی های بالقوه برای ربات با سیستم های حسی برای اجتناب از برخورد به مانع بپردازیم، اجازه دهید تا به سرعت یک استراتژی بهینه را در نظر بگیریم. شما می­خواهید ماز را حل کنید بدون اینکه به هر مسیر دو بار وارد شوید. شما می­توانید یک روش شناخته شده به عنوان جستجوی عمق-اول[1] برای انجام این کار استفاده نمایید، اما باید نه تنها نقشه محیط را داشته باشید، بلکه محیط را تعیین محل کنید، به عنوان مثال، مکان و ناوبری با محاسبات[2] را بر روی نقشه تشخیص دهید. هنگامی که طلا را پیدا کردید، نیاز به برنامه­ریزی کوتاه­ترین مسیر برگشت برای خروج دارید، که بعد از آن می­توانید از رفتن به عقب و جلو استفاده کنید تا زمانی که طلا برداشت شود.



[1] depth-first search

[2] dead-reckoning