دانلود پایان نامه

ی مدل باشد.
همچنین میلاد خرسندی[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]. مسئله‌ای که باید حل شود ورودی است و راه‌حلها طبق یک الگو کد گذاری می‌شوند تابع برازش هر راه حل کاندید را ارزیابی می‌کند. الگوریتم های ژنتیک یکی از الگوریتم های جستجوی تصادفی است که ایده آن برگرفته از طبیعت میباشد.
الگوریتم های ژنتیک برای روشهای کلاسیک بهینهسازی در حل مسائل خطی، محدب و برخی مسائل مشابه بسیار موفق بودهاند ولی الگوریتمهای ژنتیک برای حل مسائل گسسته و غیر خطی بسیار کاراتر میباشند. به عنوان مثال میتوان به مسئله فروشنده دورهگرد اشاره کرد. در طبیعت از ترکیب کروموزومهای بهتر ، نسل های بهتری پدید میآیند. در این بین گاهی اوقات جهشهایی نیز در کروموزومها روی می دهد که ممکن است باعث بهتر شدن نسل بعدی شوند. الگوریتم ژنتیک نیز با استفاده از ا
ین ایده اقدام به حل مسائل می کند. روند استفاده از الگوریتمهای ژنتیک به صورت زیر میباشد:
معرفی جوابهای مسئله به عنوان کروموزوم
معرفی تابع برازش
جمعآوری اولین جمعیت
معرفی عملگرهای انتخاب
معرفی عملگرهای تولید مثل

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

شکل 2-8 : شمای کلی الگوریتم ژنتیک

نیما شفیعی [9] و همکارانش با استفاده از الگوریتم ژنتیک پارامترهای سری فوریه را به دست آوردند. آنها ابتدا با استفاده از ایده یانگ، و بر اساس فرمول 2-8 سری فوریه برای چهار ناحیه مفصلی از روبات انساننمای نائو را بدست آوردند.

θ_h^+=a+∑_(i=1)^n▒〖(〖 A〗_i 〖.sin(〗⁡〖〖iw〗_h t〗 ))+c_h 〗 ,w_h= 2π/T_h 2-9
θ_h^-=a+∑_(i=1)^n▒〖(〖 B〗_i 〖.sin(〗⁡〖〖iw〗_h t〗 ))+c_h 〗 ,w_h= 2π/T_h 2-10
θ_k^+=a+∑_(i=1)^n▒〖(〖 C〗_i 〖.sin(〗⁡〖〖iw〗_k t〗 ))+c_k 〗 ,w_k=w_h 2-11
θ_k^-= c_k ≥0 2-12

که در آنها θ_h^+ معادله برای قسمت بالای کفل، θ_h^- معادله برای قسمت پایین کفل، θ_k^+ معادله برای قسمت بالای زانو و θ_k^- معادله برای قسمت پایین زانو است. به این ترتیب پارامترهای سریهای فوریه جهت بهینه شدن wh,t1,t2,Ci,Ai,Bi,ck,ch هستند. آنها برای بدست آوردن و بهینه کردن مقادیر این پارامترها از الگوریتم ژنتیک استفاده کردند. به این ترتیب که این پارامترها را به عنوان کروموزوم در نظر گرفتند و میزان شایستگی و برازش هر کرومزوم را مسافت طی شده توسط روبات به کمک پارامترهای مشخص شده در آن کرومزوم قرار دادند و با استفاده از قوانین انتخاب طبیعی به مقادیری دست یافتند که به کمک آن به سرعت 0.44 متر بر ثانیه برای روبات نائو رسیدند.

این مطلب رو هم توصیه می کنم بخونین:   مقاله با موضوعهوش مصنوعی، شبیه سازی، فوتبالیست، یادگیری ماشین

2-4-2- بهینه سازی پارامترهای سری فوریه به کمک الگوریتم ازدحام ذرات
الگوریتم ازدحام ذرات برای اولین بار توسط کندی وابرهارت[34] معرفی شد. این الگوریتم یکی از جدیدترین روشهای ارائه شده پردازش تکاملی بر مبنای طبیعت است که بر اساس رفتار اجتماعی بنا نهاده شده است. در الگوریتم ازدحام ذرات گروهی از ذرات در نظر گرفته میشوند که در حال پرواز بر فراز فضایی D بعدی هستند و این ذرات مکان خود را با توجه به تجربیات قبلی خود و تجربیات همسایههای خود به روز میکنند. مکان ذره i ام توسط یک بردار مکان D بعدیp_i=(p_i1,p_i2,…p_iD) و یک بردار جهت v_i=(v_i1,v_i2,…v_iD) مشخص میشود. بردار مکان به عنوان مجموعهای از مختصات تلقی میشود که نقطه ای از فضای جست و جو را نشان میدهند. در هر تکرار از الگوریتم بردار مکان فعلی به عنوان یک راه حل کاندید برای مسئله تلقی میشود. یک تابع برازش نیز به عنوان معیاری برای تعیین راه حلهای مناسب در جهت پیشبرد روند جست و جو مورد استفاده قرار میگیرد. به این ترتیب بهترین مکان برای یک ذره در طول تاریخ خود آن ذره با توجه به تابع برازش در pbesti ذخیره میشود، همچنین بهترین مکان در بین تمامی ذرهها در متغیر gbesti ذخیره میشود. در هر تکرار از الگوریتم ذره i با توجه به فرمولهای 2-13 و 2-14 بردارهای مکان و سرعت خود را به روز میکند.

v_i (t+1)=wv_i (t)+c_1 r_1 (pbest_i-p_i (t))+c_2 r_2 (gbest_i-p_i (t)) 2-13
p_i (t+1)=p_i (t)+v_i (t+1) 2-14

در فرمول بالا W پارامتر وزن ماندگاری نام دارد که در حقیقت تنظیم کننده نرخ یادگیری الگوریتم است، به نحوی که با مقادیر بالای آن در اوایل جست و جو میتوان نرخ اکتشاف را بالا برده و در اواخر جست و جو، الگوریتم با کاهش مقدار W به مقدار بهینه میل میکند. همچنین c1 و c2 پارامترهای شتاب هستند و r1 و r2 متغیرهای تصدفی در بازه [1و0] هستند[35]. شکل 2-9 شمای کلی این الگوریتم را نشان میدهد.

شکل 2-9 : شمای کلی الگوریتم ازدحام ذرات

الگوریتم ازدحام ذرات این نکته را یادآوری میکند که یک ذره به تنهایی قدرتی ندارد اما با قرار گرفتن در قالب یک جمعیت و با تعامل بین ذرات میتوان به بهینه نزدیکتر شد. در الگوریتم ازدحام ذرات این تعامل با توجه به توپولوژی جمعیت و ساختار جمعیتی آغاز میشود. در طول جستو جو مکان هر ذره علاوه بر مکان قبلی خودش، با توجه به مکان همسایههایش در توپولوژی مورد نظر به روز رسانی میشود و از بهترین مکانهای یافته شده توسط همسایگانش نیز بهره میبرد [36] و در کل میتوان گفت که هر ذره سعی میکند که با فاصله از همسایههایش حرکت کند تا با آنها برخورد نکند. همچنین سرعت خود را با توجه به سرعت همسایههایش تنظیم میکند و همچنین هر ذره سعی میکند به سمت میانگین همسایههایش حرکت کند با امید اینکه همسایهها به بهینه نزدیک شده اند[37].
در سال 2009 نیما شفیعی [38] و همکارانش در مقالهای از الگوریتم ازدحام ذرات برای تنظیم پارامترهای سری فوریه برای راه رفتن روبات نائو استفاده کردند. آنها پارامترهای سریهای فوریه معادلات 2-9 تا 2-12 را به عنوان عناصر هر ذره در نظر گرفتند. به این ترتیب آنها به ذراتی با هفت بعد wh,t2,Ci,Ai,Bi,ck,ch رسیدند که به کمک الگوریتم ازدحام ذرات و با بهینهسازی این پارامترها به نتایجی بهتر از الگو
ریتم ژنتیک دست یافتند.

فصل سوم:
طرح پیشنهادی

مقدمه

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

روبات نائو و تحلیل حرکت آن

همانطور که در بخشهای قبل گفته شد روبات نائو یک روبات انساننما میباشد. این روبات توسط شرکت الدبران فرانسه طراحی شده است. نکته مهم درباره این روبات نحوه طراحی آن با هدف نزدیکی هرچه بیشتر به ساختار فیزیکی انسان است که قابلیت فعالیت در محیطهای انسانی را برای آن فراهم میآورد. نسخه شبیهسازی این روبات نیز در همان سال وارد مسابقات روبوکاپ شد وتاکنون نیز در حال استفاده قرار است. نسخههای شبیهسازی مختلفی از این روبات ارائه شده است که از جمله میتوان به Webot و Rcssserver3D اشاره کرد. در این پایاننامه از نسخه شبیهسازی Rcssserver3D استفاده میکنیم که یکی از بهینهترین و در عین حال از پرکاربردترین نسخههای شبیهساز روبات نائو میباشد[39]. روبات نائو مورد استفاده در این تحقیق روباتی با 57 سانتیمتر ارتفاع و 4.5 کیلوگرم وزن است. این روبات دارای 22 درجه آزادی است که هر پا 6 مفصل، هر دست 4 تا و سر نیز 2 مفصل دارد( شکل3-1) [40].

شکل 3-1 : مفصلبندی روبات نائو

همانطور که در شکل3-1 مشخص است تمامی مفاصل این روبات از نوع چرخشی هستند که در جدول 3-1 معرفی میشوند.

جدول 3-1 : مشخصات روبات نائو
مکان مفصل
شماره مفصل
توضیحات
مفاصل سر
مفصل شماره 1
حرکت دادن سر به چپ و راست

مفصل شماره 2
حرکت دادن سر به بالا وپایین
مفاصل دست
مفصل شماره 1
حرکت دادن دست به بالا و پایین

مفصل شماره 2
حرکت دادن دست به چپ و راست

مفصل شماره 3
عملکرد مشابه آرنج دست انسان

مفصل شماره 4
عملکرد مشابه مچ دست انسان
مفاصل پا
مفصل شماره 1
حرکت دادن پا به داخل وخارج

مفصل شماره 2
حرکت دادن پا به چپ و راست

مفصل شماره 3
حرکت دادن پا به بالا وپایین

مفصل شماره 4
عملکرد مشابه زانوی انسان(تنها قادر به حرکت به سمت داخل است)

مفصل شماره 5
عملکرد مشابه مچ پای انسان

مفصل شماره 6
حرکت کف پا حول خود

در راه رفتن انسان تمامی مفاصل موثر هستند. برخی از مفاصل در عمل راه


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