پایان نامه کارشناسی ارشد در رشته مهندسی کامپیوتر – هوش مصنوعی
روشی انتخابی برای راه رفتن از بغل در روبات انساننما
توسط
محسن خدایاری
استاد راهنما
دکتر شهرام جعفری
اساتید مشاور
دکتر ستار هاشمی
دکتر علیرضا ذوالقدر اصلی
شهریور ماه 1392
بنام خدا
اظهار نامــه
اينجانب محسن خدایاری دانشجوي رشته ي مهندسی کامپیوتر گرایش هوش مصنوعی، اظهار مي کنم که اين پايان نامه حاصل پژوهش خودم بوده و در جاهايي که از منابع ديگران استفاده کرده ام نشاني دقيق و مشخصات کامل آن را نوشته ام. همچنين اظهار مي کنم که تحقيق و موضوع پايان نامه ام تکراري نيست و تعهد مي نمايم که بدون مجوز دانشگاه دستاورد هاي آن را منتشر ننموده و در اختيار غير قرار ندهم. کليه حقوق اين اثر مطابق با آيين نامه مالکيت فردي و معنوي متعلق به دانشگاه شيراز است.
نام و نام خانوادگي: محسن خدایاری
تاريخ و امضا: 30/06/1392
روشی انتخابی برای راه رفتن از بغل در روبات انساننما
توسط:
محسن خدایاری
پايان نامه
ارائه شده به تحصيلات تكميلي دانشگاه به عنوان بخشي
از فعاليت‏هاي تحصيلي لازم براي اخذ درجه كارشناسي ارشد
در رشته:
مهندسي کامپيوتر-هوش مصنوعی
از دانشگاه شيراز
شيراز
جمهوري اسلامي ايران
ارزيابي شده توسط كميته پايان نامه با درجه:
دکتر شهرام جعفری، استادیار بخش مهندسی و علوم کامپیوتر و فناوری اطلاعات (رئيس كميته). . . . .
دکتر ستار هاشمی، استادیار بخش مهندسي و علوم کامپيوتر و فناوری اطلاعات . . . . . . . . . .
دكتر علیرضا ذوالقدر اصلی، دانشیار بخش مهندسي مخابرات و الکترونیک. . . . . . . . . .
شهریور ماه 1392
سپاسگزاری
برخود لازم می دانم از زحمات استاد ارجمند جناب آقای دکتر جعفری که در تمام مدت انجام پایان نامه مرا از راهنمایی ها و مساعدت های بی دریغ شان بهره مند نمودند تشکر کنم. همچنین از استادان مشاور خود که با نظرات و راهنمایی های مفیدشان مرا در پیشبرد این پایان نامه یاری نموده اند کمال تشکر را دارم.
در انتها از تمام عزیزانی که مرا در انجام این پروژه تحقیقاتی یاری نمودند کمال تشکر و قدردانی را دارم.
چکیده
روشی انتخابی برای راه رفتن از بغل در روبات انساننما
توسط
محسن خدایاری
امروزه راه رفتن روبات انسان نما یکی از حوزههای جذاب تحقیق در زمینه روباتیک است. چالشهای موجود در کنترل روبات های انسان نما با درجات آزادی بالا، این مساله را در زمره مسائل دشوار در حوزه روباتیک قرار داده است به طوریکه راه رفتن روبات انسان نما را کماکان به عنوان مهمترین توانایی یک روبات طبقهبندی میکنند. در این پایاننامه روشی جدید برای راه رفتن روبات انساننما از بغل مطرح شده است. در این روش بر روی هر یک از مفاصل موثر در راه رفتن روبات یک اتوماتای یادگیر متغیر سوار میشود که طی فرآیند یادگیری بردارهای احتمال مربوط به اتوماتاها به روز میشود و مقادیر مناسب مفاصل برای راه رفتن با توجه به این بردارها انتخاب میشوند. در ادامه این روش یادگیری برای راه رفتن مستقیم و راه رفتن از بغل مورد استفاده قرار میگیرد که نتایج حاصل از شبیهسازی الگوریتم بر روی روبات انساننمای نائو در محیط شبیهسازی فوتبال سهبعدی نشان دهنده نتایج مناسب در راه رفتن مستقیم روبات در مقایسه با روشهای گذشته و همچنین مزایای فراوان بهبود توانایی راه رفتن از بغل در یک روبات انساننما میباشد.
واژه های کلیدی
روبوکاپ ، فوتبال ربات ها، روبات های انسان نما، راه رفتن روبات نائو، اتوماتای یادگیر
فهرست مطالب
فصل اول : مقدمه2 مقدمه7 روباتهای انساننما10 روبوکاپ، انگیزهها و اهداف13 نرم افزارهای شبیهسازی و مدل روبات13 1-4-1- شبیهسازی14 1-4-2- مدل روبات15 1-4-3- کد پایه18 راه رفتن روبات انساننما از بغل19 اهداففصل دوم: مروری بر تحقیقات پیشین و روشهای به کار رفته در تحلیل حرکت روبات212-1- مقدمه222-2- تعادل روبات ونقطه گشتاور صفر252-3- حرکتشناسی27 2-3-1- حرکتشناسی مستقیم27 2-3-2- حرکتشناسی معکوس312-4- استفاده از سریهای فوریه در تحلیل حرکت روبات34 2-4-1- بهینهسازی پارامترهای سری فوریه به کمک الگوریتم ژنتیک37 2-4-2- بهینهسازی پارامترهای سری فوریه به کمک الگوریتم ازدحام ذرات
فصل سوم: طرح پیشنهادی423-1- مقدمه423-2- روبات انساننمای نائو و تحلیل حرکت آن453-3- استفاده از حرکتشناسی در راه رفتن از بغل46 3-3-1- حرکتشناسی مستقیم50 3-3-2- حرکتشناسی معکوس523-4- استفاده از اتوماتای یادگیر به منظور راه رفتن روبات53 3-4-1- روباتهای افزونه54 3-4-2- اتوماتاهای یادگیر55 3-4-2-1- اتوماتای یادگیر با ساختار ثابت58 3-4-2-2- اتوماتای یادگیر با ساختار متغیر60 3-4-3- روش پیشنهادی در راه رفتن روبات نائوفصل چهارم: آزمایشها و نتایج704-1- مقدمه714-2- راه رفتن مستقیم744-3- راه رفتن از بغل794-4 تاثیر تعداد مفاصل مورد استفاده در همگرایی سرعت و تعادل روباتفصل پنجم: نتیجهگیری و مطالعات آینده85 5-1- جمعبندی865-2- مطالعات آیندهفهرست منابع

فهرست جداول
جدول1-1: مشخصات روبات نائو15جدول 1-2: محتویات شاخه های موجود در کد پایه17جدول 3-1: مشخصات مفاصل روبات نائو44جدول 3-2: مقدار دهی اولیه پارامترهای روبات51جدول 3-3: محدودیت اعمال شده به سه مفصل اصلی پا62جدول 4-1: تیمهای برتر مسابقات جهانی لیگ شبیهسازی فوتبال سهبعدی72جدول 4-2: مقایسه سرعت و تعداد زمین خوردن روبات نائو در راه رفتن مستقیم بدست آمده از روش پیشنهادی با سه تیم برتر جهان73جدول 4-3: مقایسه سه مجموعه توانایی. مجموعه اول و دوم حرکت روبات با کمک راه رفتن از جلو وچرخش. مجموعه دوم با کمک راه رفتن مستقیم و راه رفتن از بغل76جدول 4-4: مقایسه سرعت و تعداد زمین خوردن روبات در راه رفتن از بغل بدست آمده از روش
پیشنهادی با سه تیم برتر جهان79
فهرست اشکال
شکل 1-1: مثال هایی از روبات های غیر متحرک4شکل1- 2: نمونه هایی از روبات های متحرک بر روی زمین5شکل 1-3: کاوشگر کنجکاوی، ماموریت اکتشاف در مریخ6شکل 1-4: نمونه هایی از روبات های پرنده6شکل 1-5: نمونه هایی از روبات های دریایی7شکل 1-6: نمونههایی از روباتهای انساننما9شکل 1-7: محیط های شبیه سازی فوتبال دوبعدی و سه بعدی12شکل 1-8: محیط های شبیه سازی فوتبال دوبعدی و سه بعدی12شکل 1-9: ساختار لایه ای کد پایه17شکل 2-1: راه رفتن ایستا23شکل 2-2: راه رفتن پویا24شکل 2-3: بخشهای مختلف روبات صنعتی26شکل 2-4: روبات آموزشی ROBONOVA-129شکل 2-5: مدل ساده شده ROBONOVA-130شکل 2-6: مسیر حرکتی ثبت شده مفاصل کفل و زانوی انسان32شکل 2-7: تحلیل یانگ از مسیرهای متناوب ثبت شده توسط نرمافزارPOLYGON33شکل 2-8: شمای کلی الگوریتم ژنتیک36شکل 2-9: شمای کلی الگوریتم ازدحام ذرات39شکل 3-1: اتوماتای یادگیر کرایلوف43شکل 3-2: اتوماتای یادگیر کرینسکی47شکل 3-3: اتوماتای یادگیر L2N,2 49شکل 3-4: اتوماتای یادگیر L2,2
50شکل 3-5: اتوماتای یادگیر در تقابل با محیط 54شکل 3-6: یک بازوی روباتیک افزونه55شکل 3-7: چرخشهای مهم در فضای R356شکل 3-8: روبات صنعتی اسکارا 57شکل 3-9: اتصال محورهای مختصات به یک بازوی روباتیک 57شکل 3-10: مفصلبندی روبات نائو58شکل 3-11: الگوریتم پیشنهادی برای یدست آوردن مقادیر مفاصل63شکل 4-1: زمان میانگین 30 مرتبه اجرا با هر مجموعه توانایی77شکل 4-2: تغییرات سرعت روبات در راه رفتن مستقیم با توجه به تعداد مفاصل انتخابی80شکل 4-3: تغییرات سرعت روبات در راه رفتن از بغل با توجه به تعداد مفاصل انتخابی81شکل 4-4: تاثیر تعداد مفاصل انتخابی در تعداد دفعات زمین خوردن روبات در راه رفتن مستقیم82شکل 4-5: تاثیر تعداد مفاصل انتخابی در تعداد دفعات زمین خوردن روبات در راه رفتن از بغل83
فصل اول:
مقدمه
مقدمه
امروزه روباتیک1 به عنوان یکی از رشتههای علوم ومهندسی، مورد توجه بسیاری از موسسههای تحقیقاتی قرار گرفته است و به یکی از حوزه های بسیار جذاب تحقیق و پژوهش بدل گشته است، به نحوی که تحقیقات در زمینه روباتیک در شاخه های مختلفی در حال پیگیری است. در زمینه روباتیک سه رویکرد کلی مورد توجه می باشد که تحقیقات در این سه حوزه گسترده رو به پیشرفت میباشد. در رویکرد اول سعی بر ساخت روباتهای مصنوعی و هوشمند کردن آنها با استفاده از الگوریتمهای هوش مصنوعی2 است، که این رویکرد بسیار پرطرفدار خود به شاخه های گوناگونی تقسیم میشود که در ادامه به معرفی برخی از آنها خواهیم پرداخت. رویکرد دوم به استفاده از هوش طبیعی3 برای کنترل روباتهای مصنوعی میپردازد. روباتهایی که با کنترل دستی هدایت میشوند در این حیطه قرار میگیرند و در نهایت رویکرد آخر استفاده از روباتهای طبیعی4 و تربیت آنها برای دست یافتن به اهداف از پیش تعیین شده میباشد. تربیت حیوانات برای انجام اعمال خاص، مثالی از رویکرد سوم میباشد.
روباتها را میتوان در تقسیم بندی دیگری از لحاظ کاربرد آنها قرار داد که از این بین میتوان به روباتهای صنعتی5، روباتهای خانه دار، روباتهای پزشکی6، روباتهای سرویس دهنده، روباتهای نظامی، روبات های سرگرمی و … اشاره کرد.
همچنین روباتها از نظر سامانه حرکتی نیز قابل تقسیم بندی هستند که به طور خلاصه به صورت زیر قابل تقسیم می باشند:

روبات های ایستا7 (غیر متحرک)
روبات های متحرک8
روبات های فضانورد
روبات های پرنده
روبات های دریا نورد
سایر روبات ها
دسته اول روباتهای ایستا میباشند( شکل1-1). بیشتر روبات های صنعتی موجود در کارخانهها ازین دست می باشند. بازوهای روباتیک9 و همچنین روباتهای پردازشگر و ابر محاسباتی10 از این دست روبات می باشند.

شکل 1-1: مثال هایی از روبات های غیر متحرک
دسته بعدی روباتهای متحرک می باشند که بر روی زمین حرکت می کنند. این گروه شامل طیف گستردهای از روباتها می باشد :

روباتهای چرخدار11
روباتهای زنجیردار12
روباتهای پا دار
روباتهای دوپا13 (انسان نما)
روباتهای سه پا
روباتهای چهار پا
دیگر موارد
شکل 1-2 نشان دهنده نمونههای مختلف از روباتهای متحرک بر روی زمین است. دسته بعدی روباتهای فضانورد هستند که مخصوص فعالیت در فضاهای کم گرانش طراحی میشوند و مخصوص انجام ماموریت در سطح کرات دیگر و یا ایستگاههای فضایی میباشند. روباتهای کاوشگر فضایی از نمونههای این دسته هستند.

شکل 1-2 : نمونه هایی از روبات های متحرک بر روی زمین
روباتهای پرنده دسته بعدی روباتها هستند که پهبادها، هواپیما و بالگردهای بدون سرنشین از جمله این روباتها هستند. و در نهایت دسته آخر همانگونه که از نام آن پیداست مخصوص حرکت در سطح یا زیر آب طراحی میشوند. روباتهای دریانورد شامل انواع زیردریاییها، قایقها، و روباتهای ماهی میباشد. شکل های1-3، 1-4 و1-5 به ترتیب نشان دهنده نمونه هایی از روبات های فضانورد، پرنده و دریانورد میباشند. همانطور گه از تصاویر و توضیحات مشخص است، حوزه عملکرد روباتها در طراحی سامانه حرکتی آن نقش مستقیم دارد.

شکل 1-3 : کاوشگر کنجکاوی، ماموریت اکتشاف در مریخ
شکل 1-4 : نمونه هایی از روبات های پرنده
شکل 1-5 : نمونه هایی از روبات های دریایی
روباتهای انسان نما14

از میان تقسیم بندیهای گوناگون ارائه شده در حیطه روباتیک، یکی از پرکاربردترین و مهمترین روباتها، روبات انساننما میباشد که از نظر تقسیمبندی در دسته روبات های پادار دوپا قرار میگیرد. این روباتها یکی از جذابترین و در عین حال پیچیدهترین حوزههای تحقیق در علوم روباتیک هستند [1-3]. درجه آزادی15 بالا، دینامیک پیچیده و مسائل تعادلی این روبات را به یکی از پیچیدهترین روباتها تبدیل کرده است به طوری که تحلیل و مدلسازی آن به آسانی امکان پذیر نمیباشد.
روبات انساننما همانطور که از نام آن پیداست به روبات خودکاری گفته میشود که شبیه انسان است. به این معنا که از لحاظ ظاهری دارای دو دست، دو پا و سر باشد. البته این شباهت به فراخور کاربرد میتواند بیشتر وارد جزئیات شود به این صورت که چشم، دهان، انگشتان و سایر اجزای بدن نیز به آن افزوده شود (شکل1-6). همچنین این روبات دارای حسگرهای16 پیشرفتهای جهت درک محیط اطرافش میباشد و دارای پردازشگرهایی پیشرفته جهت پردازش دادههای دریافتی از محیط است. با پیادهسازی الگوریتمهای پیشرفته و استفاده از حسگرها، این روبات قادر خواهد بود به تقلید رفتارهای انسانی دیدن، شنیدن، یادگیری از محیط و دیگر تواناییهای ذهنی انسان نیز بپردازد. به طور مثال با استفاده از حسگر بینایی17 و الگوریتمهای مربوطه میتواند افراد یا اشیا را در محیط تشخیص دهد، به سمت آنها حرکت کند، اشیا را جابهجا کند یا با استفاده از حسگر شنوایی و الگوریتمها و سیستمهای پردازش گفتار، به گفت و گو با انسان بپردازد و تواناییهایی دیگر ازین دست. به همین دلیل این شاخه از روباتیک به یکی از جذابترین و به روزترین شاخههای این علم تبدیل شده است که ذهن دانشمندان زیادی را به خود مشغول کرده است و همچنین کشورهای پیشرفته سرمایه گذاری های فراوانی در این زمینه انجام دادهاند.

شکل 1-6 : نمونههایی از روباتهای انساننما

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

روبوکاپ18، انگیزه ها و اهداف
روبوکاپ عنوان مسابقاتی درزمینه دانش روباتیک وهوش مصنوعی است که بصورت سالیانه توسط فدراسیون بین‌المللی روبوکاپ19 برگزار می شود. روبوکاپ بزرگترین اقدام بشر در جهت عملیاتی شدن تحقیقات در حوزه هوش مصنوعی و روباتیک است. این مسابقات با فراهم آوردن چارچوب های مشخص و استاندارد، زمینه مناسبی جهت طراحی، پیاده سازی و ارتقای الگوریتم های هوش مصنوعی فراهم آورده است. ایده برگزاری روبوکاپ برای اولین بار در سال ۱۹۹۲ توسط پروفسور آلن مکورث20 از کانادا در مقالهای تحت عنوان روباتهای بینا مطرح گردید. در 1993 گروهی از محققان کشور ژاپن به بررسی امکانپذیری برگزاری مسابقه فوتبال روباتها پرداختند که این بررسی‌ها منجر به تأسیس رقابتهای Robot J-League (که بعدها به روبوکاپ تغییر نام داد) شد. رقابت های روبوکاپ درسال 1996 بصورت رسمی آغازبکارکرد. هدف از برگزاری این مسابقات غالبا به صورت زیر مطرح شده می شود :
” در سال 2050 میلادی، یک تیم فوتبال از روباتهای هوشمند، در یک مسابقه رسمی با رعایت کلیه قوانین فیفا مقابل آخرین تیم قهرمان فوتبال انسانها به پیروزی خواهد رسید. “[4]
این مطلب شاید تا حدود زیادی خوشبینانه و غیر ممکن باشد اما تاریخ علم در موارد گوناگون اثبات کرده است که هر آنچه قابل گنجایش در تخیل بشر باشد، در آینده قابل دسترسی است کما اینکه پیشرفتهای قابل توجه در زمینه مسابقات روبوکاپ در همین مدت کوتاه نیز مؤید این امر میباشد. البته روبوکاپ علاوه بر این هدف بلند مدت، اهداف کوتاه مدتی را نیز دنبال میکند که در واقع ایحاد بستری مناسب و رقابتی جذاب جهت ارتقای روباتیک و هوش مصنوعی و همچنین افزایش گرایش عمومی به هوش مصنوعی و روباتیک با استفاده از جذابیت های مسابقات روبوکاپ میباشد[5]. روبوکاپ دربر گیرنده طیف وسیعی از تحقیقات در زمینههای هوش مصنوعی و روباتیک است که از جمله آنها می توان به مفاهیمی چون یادگیری ماشین21، بینایی ماشین 22، پردازش تصویر23، عمل در محیطهای چند عاملی24، هوش مصنوعی توزیع شده25، کنترل هوشمند روباتها و مفاهیم دیگر از این دست اشاره کرد[6]. به همین منظور سازمان جهانی روبوکاپ شاخههای مختلفی که هر یک در برگیرنده طیفی از مفاهیم بالا میباشد را معرفی کرده است. لیگ روباتهای انساننما، روباتهای امدادگر26، روباتهای مینیاب، روباتهای فوتبالیست27 اندازه متوسط، روباتهای فوتبالیست اندازه کوچک، شبیهسازی فوتبال28 و شبیهسازی امداد29 و نجات تعدادی از مهمترین این مسابقات میباشد[7].
لیگ شبیهسازی فوتبال شامل دو بخش مهم شبیهسازی دو بعدی30 و شبیهسازی سهبعدی31 میباشد. در محیط دوبعدی فضای مسابقه شبیه به یک تصویربرداری هوایی از محیط مسابقه است، به این ترتیب که عملکرد هر شی از محیط به فضایی دو بعدی نگاشته میشود و روباتها به شکل دایره دیده میشوند. در چنین فضایی اهمیت ویژگیهای محیطهای سه بعدی مانند جاذبه، مسئله حفظ تعادل و… از بین میرود. اما در محیط سهبعدی تمامی ویژگیهای یک زمین بازی واقعی در نظر گرفته میشود. در این محیط روبات ها به شکل انسان هستند در نتیجه تمامی مسائل مطرح درباره انسان، در مورد این روباتهای انساننما نیز صدق میکند و این شاخه زمینه گسترش فعالیت در حیطه روباتهای انساننما را فراهم آورده است. این فعالیتها شامل کار بر روی تواناییهای سطح بالا و سطح پایین روباتهای انساننما میباشد که زمینه ورود الگوریتمهای هوش مصنوعی را فراهم میکند. شکل 1-7 محیطهای شبیهسازی فوتبال دوبعدی و سهبعدی را نشان میدهد. این دو بخش بر مبنای استفاده از یک سیستم شبیهساز بنا نهاده شدهاند که در ادامه به معرفی آن خواهیم پرداخت.
شکل1-7 : محیط های شبیه سازی فوتبال دوبعدی و سه بعدی
شکل1-8 : محیط های شبیه سازی فوتبال دوبعدی و سه بعدی
نرم افزار شبیهسازی و مدل روبات32
1-4-1- شبیهسازی
نرم افزار شبیهساز که اصطلاحا به آن سرور شبیهسازی میگویند در حقیقت مسئول شبیهسازی تمامی عوامل دخیل در یک مسابقه فوتبال واقعی مانند وزن توپ، وزن بازیکنان، شرایط محیطی33 مانند وزش باد و… است. این نرم افزار مسئول شبیهسازی یک محیط زمان حقیقی34 و خطادار است به نحوی که دو تیم از روباتهای نرم افزاری را قادر به رقابت در برابر هم میسازد. سیستم شبیهسازی دو بعدی یک سیستم چند عامله ارزشمند برای تحقیق در همکاری توزیع شده اعضای تیمها، یادگیری ماشین و … است اما به علت دوبعدی بودن، نتایج حاصل قابل به آسانی انتقال به جهان واقعی نمیباشد به همین منظور در سال 2003 یک سیستم شبیهسازی سه بعدی و نزدیک به جهان واقعی به نام سیمسپارک35 پیشنهاد شد و برای اولین بار در سال 2004 مورد استفاده قرار گرفت.
سرور شبیه ساز سه بعدی36 Rcssserver3D یک شبیهساز سه بعدی بر اساس اسپارک و موتور پویای آزاد (ODE) 37است. اسپارک قادر به انجام محاسبات و پردازشهای توزیع شده چند عاملی میباشد[8]. این سیستم یک شبیهساز بر مبنای اجزای عمومی سیستم شبیهسازی چند عاملی فیزیکی است که در این پایاننامه اساس کار قرار میگیرد. برای روی آوردن به شبیهسازی و دست کشیدن از ساخت روبات دلایل بسیاری میتوان برشمرد، از جمله اینکه ساخت یک روبات از لحاظ زمانی و تجهیزات هزینهبر است و احتیاج به احاطه بر مسائل سخت افزاری دارد، روبات واقعی بر اثر استفاده مداوم دچار عیوب سخت افزاری میشود که بر هزینه زمانی و مالی میافزاید و… که تمامی این مسائل خصوصا ساخت روبات و درگیری با مسائل سخت افزاری فرصت را از محققین برای پرداختن به مسائل نرمافزاری و پیاده سازی و ارتقای الگوریتمها میگیرد. شبیهسازی با فراهم آوردن بستری مهیا، این فرصت را فراهم آورده است که بدون درگیری با مسائل جانبی، تمام توجه خود را بر روی ابداع، پیادهسازی و بهبود و ارتقای الگوریتمهای مورد نیاز متمرکز کنیم. البته شبیهسازی با تمام مزایایی که دارد، مشکلاتی نیز دارد که از جمله میتوان به خطاهای رخ داده در مدلسازیها، مشکلاتی در پیادهسازی الگوریتمهای شبیهسازی شده در محیط واقعی و… اشاره کرد. اما با وجود این مشکلات، مزایای شبیهسازی به حدی مهم و با ارزش هستند که کماکان شبیهسازی در بسیاری از موارد گزینه نخست است. همین مسائل، مسابقات شبیه سازی خصوصا شبیهسازی فوتبال را در زمره جذابترین بخشهای مسابقات روبوکاپ قرار داده است.
1-4-2- مدل روبات
روبات مورد استفاده در شبیهسازی فوتبال سهبعدی، در حال حاضر روبات انساننمای نائو میباشد. این روبات که هماکنون بازیگر اصلی صحنه مسابقات روباتیک خصوصا شبیهسازی فوتبال سه بعدی است، در سال 2008 به بازار معرفی شد دلیل اصلی جذابیت این روبات، نزدیکی قابلیتهای حرکتی این روبات به انسان است. این روبات همانگونه که در جدول 1-1 مشخص شده است، یک روبات انسان نمای با 22 درجه آزادی38 است که برای هر پا 6 تا، هر دست 4 تا و سر 2 درجه آزادی وجود دارد. همچنین این روبات دارای یک حسگر همه جهته39، موتورها و حسگرهای زاویهسنج جداگانه برای هر مفصل، یک سنسو زیروسکوپ40، یک ابزار ارتباطی41 ویک حسگر نیرو42 در هر پا میباشد. علاوه بر فوتبال، این روبات با استفاده از چهار میکروفن تعبیه شده در سر و سیستم پردازش صوتش قادر به برقراری ارتباط و صحبت کردن است. در نسخه شبیهسازی شده این روبات، تمامی مفاصل و سیستم مکانیکی روبات، موتورها و محرکهای روبات و حسگرهای آن توسط سیستم شبیهساز پیادهسازی میشود و تنها قسمت باقیمانده مغز روبات میباشد که بایستی توسط برنامه نویس، برنامه ریزی شود و به طور قطع الگوریتمهای پیاده سازی شده بایستی با شبیهساز و معماری آن سازگاری داشته باشند.

جدول 1-1 : مشخصات روبات نائو
نام روباتارتفاعوزنتعداد درجات آزادینائو57سانتی متر5/4 کیلوگرم22-25 درجه آزادی
رقابتهای شبیهسازی فوتبال سه بعدی در حال حاضر در زمینی به ابعاد 21 در 14 متر بین دو تیم که هر یک دارای 9 بازیکن (عامل43) هستند انجام میشود. هر تیم بر روی یک کامپیوتر جداگانه اجرا میشود و مسابقه شامل دو نیمه 5 دقیقهای میباشد[7]. محیط شبیهساز فوتبال سه بعدی با تمامی ویژگیها و محدودیتها، زمینه مناسبی برای فعالیت در حیطه علوم روباتیک و هوش مصنوعی فراهم آورده است. در این پایاننامه از روبات نائو به عنوان روبات مورد آزمایش و از محیط شبیهساز فوتبال سهبعدی به عنوان بستری برای ارزیابی روش ها استفاده میکنیم.
1-4-3- کد پایه
کدهای پایه44 در زمینه مسابقات روبوکاپ در واقع بستری هستند به منظور فراهم آوردن امکانات لازم جهت پیاده سازی الگوریتمها و روشها. در زمینه فوتبال سه بعدی کد پایه ارتباط بین سرور شبیهسازی و عاملهای بازی را فراهم می آورد، و معمولا برخی از توانایی های پایهای لازم برای روبات فوتبالیست را در خود دارد به این ترتیب کد پایه احتیاج برنامه نویس برای درگیر شدن با جزئیات را بر طرف میکند و به او این امکان را میدهد که بدون توجه به جزئیات، به پیاده سازی تواناییهای متنوع بپردازد. در زمینه شبیهسازی فوتبال سهبعدی، اکثر تیمها کدهای پایه مربوط به خود را منتشر کردهاند که برای تیمهای دیگر قابل استفاده است. این کار در این مورد نیز مانند سایر پروژههای متن باز45 باعث رفع خطاهای منطقی موجود در کدها و بهینهتر شدن کدهای منتشر شده، شده است. بسیاری از این کدها را میتوان از پایگاه اینترنتی پروژههای متن باز sourceforge.net دریافت کرد. یکی از معروفترین کدهای پایه در شبیهسازی فوتبال سه بعدی، کد پایه تیم Nexusاز دانشگاه فردوسی مشهد است. بعد از دریافت کد و استخراج آن، مشاهده می شود که کد پایه به دستههای doc و lib، src تقسیم میشود که به ترتیب حاوی کد منبع تیم، کتابخانه های مورد استفاده و مستندات تولید شده توسط Doxygenاست. به منظور کامپایل کردن کد، به نرم افزار CMake جهت ایجاد پیش نیازهای کامپایل کد نیاز داریم. کد تیم از نظر تئوری در تمامی پلتفرم هایی که از g++ و Cmake پشتیبانی میکنند قابل استفاده میباشد.
برای کامپایل کردن کد کافیست شاخه ای به عنوان نمونه با نام build در ریشهی کد ایجاد کرده و با اجرای دستور cmake نسبت به ایجاد فایل های مورد نیاز جهت کامپایل و اجرای کد اقدام نماییم. با این کار فایل هایی از جمله start.sh(اسکریپت موجود برای اجرا کردن تیم) ایجاد میشوند و با اجرای دستور make کد تیم کامپایل شده و فایل nexus3D به عنوان فایل اجرایی تیم تولید میگردد. جدول 1-2 به طور خلاصه به محتویات شاخه های موجود در کد پایه میپردازد.

جدول 1-2 : محتویات شاخه های موجود در کد پایه
کاربردنام شاخهمحل قرار گرفتن فایل اجرایی تیم به همراه اسکریپت ها و فایل های مورد نیاز/binمحل قرار گرفتن فایل های مورد نیاز جهت کامپایل کد پایه/buildمحل قرار گرفتن مستند سازیهای موجود در کد پایه/docمحل نگهداری از کتابخانه های مورد استفاده/libمحل قرار گرفتن کدهای تیم/src
کد پایه تیمNexus مانند سایر کدهای پایه ای بر اساس معماری لایه ای از سه لایه ی اصلی ارتباطی، داده و تصمیم گیری تشکیل شده. لایه ی ارتباطی وظیفه ی برقراری ارتباط با کارگزار شبیه سازی، لایه ی داده وظیفه ی پردازش داده های خام ورودی از لایه ی قبل و لایه ی تصمیم گیری وظیفه ی تصمیم گیری با استفاده از اطلاعات ورودی از لایه ی قبل را بر عهده دارد که شکل 1-9 ساختار لایه ای آن را نشان میدهد.
شکل 1-9 : ساختار لایه ای کد پایه
راه رفتن روبات انساننما از بغل
به طور کلی تواناییهای یک روبات انساننمای فوتبالیست به دو دسته تقسیم میشود:
تواناییهای سطح پایین46
تواناییهای سطح بالا47
تواناییهای سطح پایین در حقیقت همان تواناییهای اولیه و اساسی یک روبات هستند، از این دسته میتوان به حفظ تعادل، راه رفتن به جلو وعقب48، راه رفتن از بغل49 و… اشاره کرد. این تواناییها سنگ بنای تواناییهای سطح بالایی مانند تصمیمگیری50، همکاری در تیم فوتبال و… هستند و همین امر موجب افزایش اهمیت آنها شدهاست.
راه رفتن یکی از پایهایترین و اساسیترین تواناییهای یک روبات دوپا است، اگر چه این توانایی برای انسان بسار جزیی و ناچیز قلمداد میشود اما در روبات دوپا دخیل شدن مساله حفظ تعادل51 در راه رفتن، دشواری راه رفتن را دوچندان میکند. حفظ تعادل و راه رفتن در روباتهای دو پا اهمیت فراوانی دارد به این دلیل که توانایی فعالیت در محیطهای انسانی را برای روبات فراهم میآورد. اگرچه با استفاده از روباتهای چرخدار میتوان بر بسیاری از دشواریهای حفظ تعادل و راه رفتن غلبه کرد اما در عوض بسیاری از مزایایی که انعطافپذیری راه رفتن دوپا به همراه دارد قربانی خواهند شد. راه رفتن از بغل به عنوان یک توانایی سطح پایین که به صورت طبیعی در انسانها وجود دارد دارای مشکلات و پیچیدگیهای فراوان است. ابتدا روبات باید بتواند بدون بر هم خوردن تعادل سر جای خود بایستد، سپس با برداشتن گامها باید تعادلش حفظ شود. این مساله که در هنگام راه رفتن تقریبا تمامی مفاصل بدن درگیر هستند، پیچیدگی کار را دوچندان میکند. به این ترتیب که باید برای تمامی مفاصل سرعت زاویهای و مکان آنها را در هر لحظه بدانیم، که تمامی این موارد با تغییر خصوصیات زمین ازجمله شیب، جنس و اصطکاک آن تغییر میکند.

اهداف
در این پایان نامه، قصد داریم روشی برای راه رفتن روبات نائو ارائه کنیم که توانایی استفاده از حداکثر ممکن درجات آزادی این روبات را داشته باشد. سرعت رسیدن به نقاط مختلف زمین مسابقه فوتبال امری مهم است و روبات نائو به عنوان یک روبات فوتبالیست بایستی بتواند در رسیدن به نقاط مختلف زمین فوتبال عملکرد مناسبی داشته باشد. در این بین ارائه متدی که علاوه بر افزایش سرعت، در حفظ تعادل روبات و کاهش تعداد دفعات زمین خوردن آن تاثیر مثبت داشته باشد اهمیت فراوان دارد. به این ترتیب بهبود پایهایترین توانایی روبات، راه را برای ایجاد و ارتقا تواناییهای سطح بالاتری همچون همکاری تیمی، تصمیمگیری، دریبل زدن، شوت زدن و…. هموار میسازد.
راه رفتن از بغل مانند راه رفتن مستقیم از تواناییهای سطح پایین مهم میباشد که تاثیر بسزایی در کاهش زمان رسیدن به نقاط مختلف زمین دارد. به علاوه استفاده روبات ازین توانایی مزایای بسایر دیگری دارد که در ادامه مورد بحث قرار خواهد گرفت.
در این پایاننامه الگوریتمی جدید برای راه رفتن مبتنی بر اتوماتای یادگیر ارائه میشود که به منظور راه رفتن مستقیم و راه رفتن از بغل مورد استفاده قرار میگیرد. این روش با استفاده از تعداد بیشتری از مفاصل روبات نائو به افزایش سرعت این روبات در راه رفتن به جلو و راه رفتن از بغل، بهبود تعادل و ثبات روبات و کاهش تعداد دفعات زمین خوردن روبات کمک میکند.
فصل دوم:
مروری بر تحقیقات پیشین و روشهای به کار رفته در تحلیل حرکت روبات
مقدمه
راه رفتن روبات انسان نما یکی از کلیدیترین توانایی های یک روبات است. با توجه به اهمیت بالای این توانایی در محیطهای واقعی و شبیهسازی، و همچنین به عنوان سنگ بنایی برای تواناییهای سطح بالای روبات انساننما، تحقیقات زیادی به خصوص در زمینه راه رفتن به جلو و عقب صورت گرفته است. به طور کلی و از دید تحلیلی روشهای مطرح شده در حرکت روبات به دو دسته کلی تقسیم میشود[9] :
روشهای بر اساس مدل
روش های بدون در نظر گرفتن مدل
در روش اول لازم است که در ابتدای کار مدل روبات مشخص باشد و بر اساس این مدل از پیش تعیین شده راه رفتن روبات تحلیل شده و الگوریتمی برای آن ایجاد شود. روشهای مبتنی بر نقطه گشتاور صفر در این مجموعه قرار میگیرند.
در روش دوم که “پویا” نیز نامیده میشود، راه رفتن روبات تنها با استفاده از اطلاعات حسگرها و بدون در نظر گرفتن مدل روبات حاصل میشود.
به طور معمول تحلیل حرکتی هر روبات مختص همان روبات است که این امر به دلیل تفاوت در درجات آزادی و تعداد مفاصل روباتها، تفاوت در ساختمان و همچنین تفاوت در توانایی و سامانههای حرکتی هر روبات میباشد. اما در عین حال روشهای کلی برای این کار نیز وجود دارد که در ادامه به بررسی نمونههایی از تحلیل حرکتی روبات و الگوریتمهای مطرح شده در راه رفتن روبات به جلو و عقب و همچنین راه رفتن از بغل خواهیم پرداخت.

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

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

شکل 2-2 : راه رفتن پویا
محاسبه نقطه گشتاور صفر به مدل روبات مورد استفاده وابسته است و تاکنون برای محاسبه آن روشهای مختلفی معرفی شده است. در سال 1991 لی [12] و همکارانش با استفاده از حسگرهای نیرو سنج در کف پا و بدست آوردن نیروهای وارد بر آن روشی برای محاسبه نقطه گشتاور صفر ارائه کردند. در 2001 هیونگ [13] و همکارانش برای حفظ تعادل روبات در حین حرکت در محیطهای ناهموار و شیبدار ارائه کردند. یانگ [14] وهمکارانش با بدست آوردن نقطه گشتاور صفر در حین راه رفتن، نشان دادند که با تغییر وضعیت مفاصل چنانچه این نقطه را در ناحیه پایداری حفظ کنند، راه رفتن بدون بر هم خوردن تعادل امکانپذیر خواهد بود. سعید عبدالشاه [15] و همکارانش نیز روش مناسبی برای محاسبه نقطه گشتاور صفر ارائه کردند. آنها با فرض اینکه این نقطه یک سه تایی مثل (X,Y,Z) روی زمین است، و با یک روبات دارای n لینک سروکار داریم، و مجموع گشتاورها حول این نقطه برابر صفر است، معادله مجموع گشتاور را به صورت زیر بدست آوردند:
T=∑_(i=1)^n▒〖(R_i+R_z )*F_i 〗+∑_(i=1)^n▒〖T_i=0〗 2-1

که F_i مجموع نیروهای بر روی هر لینک و T_i مجموع گشتاور موتور حول هر لینک است. R_i و R_z به ترتیب بردار مکان محل اثر نیرو تا مرکز جرم لینک و بردار گشتاور صفر میباشند. با حل ای معادله بر حسب x و y و با توجه به اینکه در صفحه مورد نظر Z=0 است، معادلات مربوط به نقطه گشتاور صفر را به صورت زیر بدست آوردند:

X=(∑_(i=1)^n▒(z_i F_xi-x_i F_zi ) +∑_(i=1)^n▒T_yi )/(∑_(i=1)^n▒F_zi )2-2
Y=(∑_(i=1)^n▒(z_i F_yi-y_i F_zi ) +∑_(i=1)^n▒T_xi )/(∑_(i=1)^n▒F_zi ) 2-3

همچنین کمبایاشی [16] از نقطه گشتاور صفر به عنوان معیاری برای برازش در الگوریتم ژنتیک استفاده کردند به این ترتیب که برای بدست آوردن این نقطه یک مساله بهینه سازی طرح کردند که در آن هر کرومزوم تخمینی از نقطه گشتاور صفر به ما میدهد، سپس نشان دادند هر چه تفاوت بین نقطه تخمینی ونقطه واقعی گشتاور صفر کمتر باشد کرومزوم مورد نظر برازندهتر و پایداری روبات بیشتر است.

حرکت شناسی
حرکت شناسی در پایه ای ترین حالت خود مربوط به روباتهای صنعتی دارای چندین لینک متصل به هم میباشد. روباتهای صنعتی به طور کلی شامل چند بخش میباشند، یک پایه که سیستم بر روی آن سوار است، تعدادی لینک که به وسیله مفاصل به هم متصل شده اند، و در نهایت یک نوک عملگر انتهایی که در انتهای بازوی روباتیک نصب شده است و بسته به کاربرد، میتواند متفاوت باشد[17] (شکل2-3) . حرکت شناسی روبات به مطالعه ارتباط بین ابعاد و اتصال زنجیرههای حرکتی و موقعیت مکانی، سرعت و شتاب هر کدام از لینکها در یک سیستم روباتیک، به منظور برنامهریزی و کنترل حرکت روبات میپردازد. سینماتیک روبات به طور کلی به دو گروه تقسیم میشود [18] که در ادامه به معرفی آنها میپردازیم.

شکل2-3 : بخشهای مختلف روبات صنعتی

2-3-1- حرکت شناسی مستقیم
حرکت شناسی مستقیم در واقع یک نگاشت از فضای مفاصل (Q) به فضای مختصات دکارتی (W) است :

F(Q)=W 2-4

در حرکت شناسی مستقیم هدف کنترل و تعیین نوک عملگر انتهایی روبات با توجه به مقادیر مفاصل روبات است، به طور مشخص برای هر چیدمان از وضعیت مفاصل، یک نقطه در فضای دکارتی بدست میآید که در واقع مکان نوک انتهایی بازوی روباتیک است. حرکت شناسی مستقیم مطابق فرمول (2-4) نشانگر یک نگاشت یک به یک است به این ترتیب که با داشتن وضعیت مفاصل از نظر مکان، زاویه و… به نقطه خاصی در فضای دکارتی میرسیم.

2-3-2- حرکت شناسی معکوس
در حرکت شناسی معکوس مسئله دقیقاً عکس بالا میباشد. در حرکتشناسی مستقیم مقادیر تمامی مفصلها مشخص بود و وظیفه ما بدست آوردن موقعیت نهایی عملگر انتهایی روباتیک نسبت به پایه روبات بود اما در حرکتشناسی معکوس با داشتن موقعیت نهایی عملگر روباتیک در فضای دکارتی(W) (از نظر مکان و زاویه چرخش) بایستی وضعیت مفاصل روبات (Q) را بدست آوریم.

Q=F^(-1) (W) 2-5

همانطور که از طرح مسئله و همچنین فرمول (2-5) مشخص است این یک نگاشت یک به یک نیست که این خود از دشواری های مسئله حرکتشناسی معکوس است، به این دلیل که به ازای یک مکان در فضای مختصات دکارتی، ممکن است چندین مجموعه چیدمان متفاوت برای مفاصل روبات بدست آید.
مسئله حرکت شناسی معکوس بسیار معمولتر از حرکت شناسی مستقیم است به این دلیل که در اکثر موارد مکان انتهایی عملگر روباتیک به عنوان هدف مشخص است و قصد ما بدست آوردن چیدمانی مناسب از مفاصل برای رسیدن به هدف است. همین امر باعث دشواری مساله حرکتشناسی معکوس میشود، به این دلیل که در اکثر موارد چندین چیدمان برای مفاصل روبات به منظور رسیدن به نقطهای خاص بدست میآید که باید با در نظر گرفتن شرایط بهترین چیدمان را برگزید. اکثر روباتهای صنعتی از حرکتشناسی معکوس برای بدست آوردن مقادیر مفاصل استفاده کردند [18]. از جمله روباتهای معروف استفاده کننده از این روش میتوان به Rhino Xp-3 و Intelledex660 اشاره داشت.
حرکتشناسی معکوس در راه رفتن روباتهای دوپا نیز مورد استفاده قرار گرفته است. [19،20، 21 و22]. همچنین در بحث راه رفتن از بغل نیز حرکتشناسی معکوس در روباتهای با درجه آزادی پایین مورد استفاده قرار گرفته است. ویبینگ ژو [23] و همکارانش، در سال 2010 به بررسی و تحلیل حرکتی روبات آموزشی Robonova-1 پرداختند ( شکل2-4) . آنها این روبات را که یک روبات انساننمای آموزشی با اندازه کوچک برای آموزش دانشجویان و علاقهمندان است، با یک ساختار ساده شده هفت لینکی در نظر گرفتند و مدل راه رفتن از بغل خود را روی آن اعمال کردند.
شکل 2-4 : روبات آموزشی Robonova-1
آنها ابتدا با استفاده از محدودیت های هندسی مسیر راه رفتن از بغل این روبات را تعیین کردند. سپس با استفاده از معادلات حرکتشناسی معکوس، مقادیر مفاصل را برای راه رفتن از بغل تعیین کردند، برای سادگی کار با یکی در نظر گرفتن دست و تنه روبات به ساختاری هفت لینکی رسیدند و قسمت تنه را عمود بر زمین در نظر گرفتند(شکل 2-5) .
شکل 2-5 : مدل ساده شده Robonova-1
با توجه به شکل مکان و جهت روبات توسط زاویه بین لینک و محور z از چارچوب مختصات مرجع تعیین میشود(θ_7,θ_8) و (i=7,8,9,10) qi نشان دهنده زاویه چرخشی هر لینک نسبت به همسایه اش است. همچنین مختصات مکان مفصل مچ پا را ( yaj , zaj ) و مختصات مکان مفصل زانو را ( yhj , zhj )فرض کردند. سپس آنها با در نظر گرفتن محدودیتهای هر مفصل، مقادیر مربوط به زوایای مفاصل مربوط به حرکت(θ_7,θ_8) را محسابه کردند و در نهایت از نرمافزار ADAMS به منظور شبیهسازی راه رفتن روبات استفاده کردند. آنها مدل خود را روی روبات با درجه آزادی بالا اعمال نکردند. روبات Robonova-1 یک روبات آموزشی با درجه آزادی پایین است که نمیتواند معیار مناسبی برای ارزیابی مدل باشد.
همچنین میلاد خرسندی[24] و همکارانش در سال 2011 با در نظر گرفتن یک روبات سه لینکی، و با استفاده از حرکتشناسی معکوس، توانایی راه رفتن از بغل را در آن ایجاد کردند. آنها با استفاده از اسپلاین مرتبه سوم مسیر روبات را بدست آوردند که از این طریق به مسیری صاف و بدون شکستگی رسیدند.
ماساکی اوگینو [25] و همکارانش نیز به طراحی یک کنترل کننده راه رفتن از بغل به منظور بهرهوری انرژی پرداختند. اما آنها به حل مساله راه رفتن از بغل نپرداختند و به علاوه مدل خود را روی روبات ONE، با 7درجه آزادی اعمال کردند.

استفاده از سریهای فوریه در تحلیل حرکت روبات
همواره الهام گرفتن از طبیعت یکی از روشهای متداول در ایجاد الگوریتمهای هوش مصنوعی بوده است. بر این اساس محققان زیادی سعی در الگو گرفتن از راه رفتن انسان و اعمال آن بر روبات انساننما داشتهاند. راه رفتن انسان به علت مشارکت مفاصل مختلف، مسئله پیچیدهای است. این در حالی است که ساختار بدن انسان با روبات متفاوت است. به طور مثال مفاصلی در بدن انسان هستند که در روباتهای انساننما تعبیه نمیشوند مانند مفاصل انگشتان پا. و وجود این تفاوتها کار را برای مدلسازی راه رفتن انسانی دشوار میکند. اما با این وجود محققان زیادی در این زمینه فعالیت کردهاند. یانگ [26و27] و همکارانش از جمله کسانی بودند که با این رویکرد به دنبال مدلی برای راه رفتن روبات بودند. آنها با استفاده از سیستم ثبت حرکت VICON به ثبت مسیر حرکتی مفاصل یک انسان پرداختند (شکل6-2) و مسیر حرکت مفاصل کفل وزانو را ثبت کردند و با استفاده از نرمافزار تحلیل حرکت POLYGON یک گام کامل حرکت را بررسی کردند و با توجه به آن به نکات جالبی دست پیدا کردند. یکی از نکات مهم یکسان بودن مسیر زاویهای طی شده توسط هر دوپا است، که البته یکی به اندازه نصف پریود زمانی با دیگری فاصله دارد. نکته دیگر سینوسی و کسینوسی بودن مسیرها میباشد که همگی متناوب هستند واین راه را برای استفاده از سریهای فوریه هموار میسازد[28].

شکل : 6-2 مسیر حرکتی ثبت شده مفاصل کفل و زانوی انسان
در ریاضیات، سری فوریه، تابعی است که با استفاده از آن می توان هر تابع متناوب را به صورت جمعی از توابع نوسانی ساده (سینوسی، کسینوسی و یا تابع نمایی مختلط ) نوشت. سری های فوریه برای تخمین انواع توابع متناوب کاربرد دارند و به این دلیل که همه مفاصل بدن انسان دارای خط سیر متناوب وشبیه به سیگنال های سینوسی و کسینوسی هستند، میتوان به کمک سری فوریه این سیگنال های زاویه ای را تولید کرد. تعریف پایه ای سری فوریه به صورت زیر است:

F(t)=a_0/2+∑_(i=1)^∞▒(a_i cos⁡〖iπt/L〗+b_i sin⁡〖iπt/L〗 ) 2-6
که در آنi مقدار بی نهایت دارد.در صورتیکه i مقدار معینی داشته باشد دقت تولید سیگنال تخمینی کاهش مییابد اما پیچیدگی راه رفتن انسانی تولید چنین الگویی به کمک سری فوریه را دشوار میسازد.
یانگ سیگنالها را مطابق شکل 2-7 به دو بخش تقسیم کرد: بخش بالایی وبخش پایینی.

شکل 2-7 : تحلیل یانگ از مسیرهای متناوب ثبت شده توسط نرمافزار POLYGON
او با توجه به اینکه هر بخش میتواند یک تابع فرد باشد از قسمت کسینوسی سری صرف نظر کرد که در نتیجه سری فوریه به شکل زیر در می آید :

F(t)=a+∑_(i=1)^n▒(b_i sin⁡〖iπt/L〗 ) 2-7
که در فرمول بالاπ/L = 2π/T w = که در نتیجه سری فوریه به فرم زیر بدست آمد:
F(t)=a+∑_(i=1)^n▒(b_i sin⁡iwt ) 2-8
که a آفست سیگنال وw فرکانس اصلی سیگنال میباشد. یانگ پارامترهای خود را t1 ,t2 به همراه ضرایب سری فوریه در نظر گرفت (t1 زمان ثابت شدن مفصل زانو و t2 زمان شروع دوباره حرکت آن).
2-4-1- بهینه سازی پارامترهای سری فوریه به کمک الگوریتم ژنتیک
الگوریتم ژنتیک تکنیک جستجویی در علم رایانه برای یافتن راه‌حل تقریبی برای بهینه‌سازی و مسائل جستجو است. روشهای بهینهسازی گوناگونی یر مبنای طبیعت مطرح شدهاند[31،30،29]. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیست‌شناسی فرگشتی مانند وراثت و جهش استفاده می‌کند. این الگوریتم برای اولین بار توسط جان هلند [32] معرفی شد. در واقع الگوریتم‌های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش‌بینی یا تطبیق الگو استفاده می‌کنند. الگوریتم‌های ژنتیک اغلب گزینه خوبی برای تکنیک‌های پیش‌بینی بر مبنای رگرسیون هستند. مختصراً گفته می‌شود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند[33]. مسئله‌ای که باید حل شود ورودی است و راه‌حلها طبق یک الگو کد گذاری می‌شوند تابع برازش هر راه حل کاندید را ارزیابی می‌کند. الگوریتم های ژنتیک یکی از الگوریتم های جستجوی تصادفی است که ایده آن برگرفته از طبیعت میباشد.
الگوریتم های ژنتیک برای روشهای کلاسیک بهینهسازی در حل مسائل خطی، محدب و برخی مسائل مشابه بسیار موفق بودهاند ولی الگوریتمهای ژنتیک برای حل مسائل گسسته و غیر خطی بسیار کاراتر میباشند. به عنوان مثال میتوان به مسئله فروشنده دورهگرد اشاره کرد. در طبیعت از ترکیب کروموزومهای بهتر ، نسل های بهتری پدید میآیند. در این بین گاهی اوقات جهشهایی نیز در کروموزومها روی می دهد که ممکن است باعث بهتر شدن نسل بعدی شوند. الگوریتم ژنتیک نیز با استفاده از این ایده اقدام به حل مسائل می کند. روند استفاده از الگوریتمهای ژنتیک به صورت زیر میباشد:
معرفی جوابهای مسئله به



قیمت: تومان

دسته بندی : مقاله و پایان نامه

دیدگاهتان را بنویسید