X
تبلیغات
رایتل
پنج‌شنبه 14 آذر‌ماه سال 1387

چکیده:
کنترل رباتهای سیار(موبایل ربات) جهت عدم برخورد با موانع بر اساس آموزش و پیشگویی مختصات موانع در لحظات بعدی از موسوم ترین روش های کنترل سینماتیک و دینامیک روباتهای سیار می باشد.اما آنچه که ما ارائه می دهیم، براساس آموزش شبکه عصبی از دست فرمان اپراتور ربات درمقایسه با موانع پیش آمده درحین آموزش ربات است.این ایده برای کنترل اتوموبیل ها نیز قابل تعمیم است.بعبارتی ربات ما نیازی به داشتن یک حافظه برای بخاطر سپردن موقعیت موانع در حین آموزش، برای پبشگویی مکان های موانع بعدی ندارد.در نمونه های رایج دنیا ربات با اسکن نامحدود صفحه مورد آزمایش میخواهد نحوه چینش موانع  را بر اساس  x , y  صفحه تست بیاموزد ، تا در حالت اجرا پس ازآموزش بتواند  موانع را پیشگویی کند.اما ما یک دست فرمان ایده آل خودمان را از طریق اپراتور به ربات آموزش داده سپس آن را در محیط های متنوع دیگر میتوانیم بکار بگیریم
 کلیدواژه‌ها: Feed Forward Network - Back Propagation

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

در اجرای این طرح ما از شیب دار  بودن سطوح آزمایش ربات چشم پوشی میکنیم.در این حال فیدبک دریافتی از هر سنسور را بصورت درصدی بین صفر تا صد برای سخت افزار و نرم افزار شبکه عصبی مان معرفی میکنیم. یعنی اگر کل تشعشع تابشی بازگشت کند به معنی این است که آن سنسورکاملا در مقابل مانع قرار گرفته است و مقدار کمّی آن 100% است. برای طراحی این شبکه پارامترهای ورودی عبارتند از: مقادیر در صد بازگشت تشعشع  هر سنسور (a, b, c, d, e) ، طول بردار  سرعت فعلی ربات ( V ) و زاویه بردار سرعت فعلی یا همان زاویه  فرمان ربات(θ).و در این حال پارامترهای خروجی ربات نیز عبارتند از: طول بردار سرعت ربات ( V )  و زاویه بردار سرعت یا همان زاویه  فرمان ربات (θ).
به عبارت بهتر بردار بازتابش تشعشع سنسورها و بردار سرعت در لحظه فعلی، ورودی های شبکه مورد طراحی ما بوده و بردار سرعت برای لحظه بعد ، خروجی شبکه ما خواهد بود.
 
3- خصوصیات شبکه عصبی مورد نیاز:
با توجه به نیاز سیستم برای کسب آموزش در حین یادگیری وحذف وکاهش خطا ی خروجی ، وجود فیدبک در شبکه مورد طراحی اجتناب ناپذیر است. از طرفی چون نتایج ایده آل نیز در اختیار شبکه قرار میگیرد وبردار هدف راتشکیل میدهد، لذا استفاده از روشی برای کاهش خطا بین حالت رانندگی  اپراتور و رانندگی ربات الزامی است. با این توصیف  بهترین نوع شبکه  برای ما  Feed Forward Network است که با الگوریتم B.P برای یادگیری قانون اصلاح خطا بکار برود. در مسیر رفت این الگوریتم پارامترهای شبکه،ثابت و بدون تغییر فرض می شوند. ودر مسیر برگشت این پارامترها بر اساس قانون اصلاح خطا تنظیم میگردند.این کار تا زمانی انجام میپذیرد که در لایه خروجی شبکه سیگنال خطا ی شبکه در حد مورد قبول کاربر برسد.بردار خطا که همان اختلاف بین پاسخ مطلوب و پاسخ واقعی است ، ناشی از (Vt و θ t) بدست آمده در عمل  و  (V وθ) مطلوب اپراتور است که در اثر باز تابش

 سنسورها یعنی (a, b, c, d, e) ، باید ربات آن تصمیم را می گرفت . که شبکه مذکور قابلیت پس انتشار خطا، جهت اصلاح رفتاری شبکه انتخاب شده را دارد.
 
4- ساختار شبکه عصبی پیشنهادی ما:
شبکه عصبی طراحی شده ما از نوعFeed Forward با الگوریتم Back Propagation بوده واز 3 لایهتشکیل شده است که، در لایه اول 7 نرون (به ازای هر ورودی) و در لایه دوم 19نرون (برحسب نتایج شبیه سازی انجام شده که پاسخ  مناسب داده) و در لایه سوم 2 نرون ( به تعداد پارامتر های خروجی) طراحی کرده ایم.توابع لایه اول از نوع tan sigmoid  و توابع لایه دوم از نوع log sigmoid وتوابع لایه سوم از نوع خطی است.لایه های ورودی و خروجی ، تاثیر گرفته از تعداد و محدوده اعداد  ورودی ها وخروجی ها ی مورد نظر ماست.
این ربات نیز مانند هر سیستم کنترل شونده با شبکه های عصبی در فاز اول که به آن  به اصطلاح off line گفته  میشود،آموزش دیده و در فاز بعدی داده های آموزش دیده را برای تصمیم گیری بکار می گیرد.در حالت آموزش ربات توسط اپراتور کنترل  می شود ، بعبارتی سرعت و جهت حرکت  بصورت مختصات قطبی (θ, V) از طرف  اپراتور به ربات داده میشود از طرفی ربات، هم زمان داده های دریافتی از موانع محیط اطراف را در حافظه نگه میدارد. (سیگنالهای  برگشتی از برخورد به موانع  نزدیک ربات  در 5 نقطه حساس  مطابق شکل- 1- ) . با این کار میتوان گفت ربات عملا داده ها را دریافت و عکس العمل اپراتور را به ثبت می رساند. مثلا داده [0,0.6,0,0,0] از سیگنال های دریافتی سنسورها نشان می – دهد که ربات از گوشه سمت راست جلو به مانعی رسیده که پس خور امواج به سنسور شصت در صد شده است در مقایسه با این داده دریافتی، اپراتور در حالت آموزش(off line)  داده ای مشابه داده زیر را به ربات می دهدکه این کار بصورت دستی نخواهد بود، بلکه بصورت نمونه برداری از سرعت حرکت و زاویه ای است که اپراتور در مواجهه با موانع دیده شده از خود عکس العمل نشان می دهد و در حرکت ربات اعمال مینماید (شکل- 2-) :
[-30, 0.86]

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

1-4- شبیه سازی شبکه در نرم افزار مطلب:


clc;
 
net= newff([0 1 ; 0 1 ; 0 1 ; 0 1 ; 0 1 ;-90 90 ;0 1 ],[7 , 19 ,2],{'tansig', 'logsig', 'purelin'});
 
N=input('Enter number of sample training  data to load and train network : N= ');
fid = fopen('Data.txt', 'r');
P = fscanf(fid, '%f %f %f %f %f %f %f', [7 N])  
fclose(fid);
 
 fid = fopen('Target.txt', 'r');
T = fscanf(fid, '%f %f', [2 N]) 
fclose(fid);
 
net = init(net);
net.trainParam.epochs = 2000;
net.trainParam.min_grad = 1e-60;
net = train(net,P,T);
 
 fprintf('\nEnter online samples of data from sensors to Simiulate : \n');
SensorData=input('[Delta<a>; Delta<b>; Delta<c>; Delta<d>; Delta<e>;Delta<teta>; Delta<V>]= ');
  
NetOutput= sim(net,SensorData)
 
fprintf('\nNew Teta =%f     ,  New Velocity=  %f \n' , NetOutput(1) ,NetOutput(2) );
 
 %end

 

2-4- سرعت یادگیری شبکه و مقدار خطای آن :

 3-4- دیتا ی داده شده به این شبکه و جواب حاصل از آن در شبیه سازی:


 Enter online samples of data from sensors to Simiulate :
[Delta<a>; Delta<b>; Delta<c>; Delta<d>; Delta<e>;Delta<teta>; Delta<V>]= [1;0;0;1;1;0;1]
 
NetOutput =
 
   80.0044
    0.1391
 
New Teta =80.004377     ,  New Velocity=  0.139101

 


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


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

 

[1]Anderson, J.; Baltes, J.; Livingston, D.; Sklar, E.; and Tower, J. 2003. Toward an Undergraduate League for RoboCup. In Proceedings of RoboCup-2003: Robot Soccer World Cup VII
[2] David J. Elliott, "Fuzzy Logic Positional Servo Motor Control Development Platform", ”, M.S. Thesis, Department of Electrical Engineering, Cleveland State University, June 1997.
[3] O.J.M. Smith, "A Controller to Overcome Dead Time" ISA Journal, No. 2,28, February 1959.
[4] J.E. Marshall, "Control of Time Delay Systems," Stevenage, UK; NY P. Peregrinus, c1979
[5] Q. Brone, and S. Harris, "Varying Time Delay Estimation and Self-Tuning Control," Proceedings form the 1991 American Controls Conference, v2, p1740-1741.
[6] J.A. Bernard, "Use of a Rule-Based System for Process Control", IEEE Cont. Sys. Mag. pp3-13, October 1988.
[7] J. Litt, "An Expert System to Perform On-Line Controller Tuning", IEEE Cont. Sys. Mag, pp18-23, April 1991
[8]. James Dawson, "Fuzzy Logic Control of Linear Systems with Variable Time Delay," M.S. Thesis, Cleveland State University, June 1994.

[9]  "هوش محاسباتی،مبانی شبکه های عصبی" تالیف ب.منهاج،انتشارات دانشگاه امیر کبیر، چاپ سوم

دکتر امیر ابوالفضل صورتگر

Email: a_a_suratgar@yahoo.com
 عضو هیئت علمی دانشکده فنی مهندسی اراک


حامد عقیلی

Email: engineer_aghili@yahoo.com
کارشناسی ارشد الکترونیک و عضو باشگاه پژوهشگران جوان

http://www.irandoc.ac.ir/data/e_j/vol6/aghili.htm