Document 7544143

Download Report

Transcript Document 7544143

Planning and
Navigation
‫دکتر سعید شیری قیداری‬
‫ کتاب‬6 ‫& فصل‬
Amirkabir University of Technology
Computer Engineering & Information Technology Department
‫‪Cognition‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Cognition‬عبارت است از تصمیم گیری هدفمندانه و اجرای‬
‫آن توسط یک سیستم برای نیل به یک هدف سطح باال‪.‬‬
‫در یک روبات متحرک این امر متوجه مسئله ‪navigation‬‬
‫است که باعث میشود تا روبات با داشتن اطالعات جزئی از‬
‫محیط و مقادیر سنسورها بتواند به موقعیت هدف برسد‪.‬‬
‫‪Navigation‬شامل اجرای یک سری عملیات برای رسیدن‬
‫به هدف میشود )‪ (planing‬که در ضمن اجرای آن روبات‬
‫باید از برخورد با موانع جلوگیری نماید )‪. (reacting‬‬
‫‪Path planning‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مسئله مسیریابی برای روباتهای متحرک یک امر اساسی است‬
‫اما قبل از برای رباتهای صنعتی نیز مطرح بوده و مطالعات‬
‫زیادی در این زمینه شده است‪.‬‬
‫بعات محدودیت درجات آزادی روباتهای متحرک این مسئله‬
‫برای آنها ساده تر از روباتهای صنعتی میباشد‪.‬‬
‫در روباتهای صنعتی بعلت سرعت زیاد عالوه بر سینماتیک‬
‫مسئله دینامیک هم مهم است‪.‬‬
‫‪Configuration Space‬‬
‫‪‬‬
‫‪‬‬
‫مسئله مسیریابی برای روباتهای صنعتی و متحرک در فضائی‬
‫با نام ‪ configuration space‬انجام میشود‪.‬‬
‫برای روباتی با ‪ k‬درجه آزادی هر ترکیب موقعیت آن را‬
‫میتوان با ‪ k‬مقدار حقیقی ‪ q1,…,q k‬نشان داد ‪.‬که این مقادیر‬
‫نقطه ای مثل ‪ p‬را در فضای‪ k‬بعدی نشان میدهند ‪.‬این فضا‬
‫‪configuration space‬نامیده میشود‪.‬‬
‫‪Free Space‬‬
‫‪‬‬
‫اگر فضای حقیقی ) ‪ (work space‬دارای مانع باشد‪ ،‬عمل‬
‫مسیریابی باید مسیری از نقطه اولیه به هدف پیدا نماید که‬
‫بدون مانع باشد‪.‬این مسیر فضای آزاد نامیده میشود‪:‬‬
‫‪F=C-O‬‬
‫فضای مانع‬
‫فضای موقعیت‬
‫فضای ازاد‬
‫‪Configuration Space‬‬
‫فضای موقعیت و فضای آزاد و‬
‫مسیری که به هدف منجر میشود‬
‫یک روبات با دو درجه آزادی در فضای حقیقی‬
‫‪configuration space of a mobile‬‬
‫‪robot‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫برای یک روبات متحرک رسم بر این است که آنرا بصورت‬
‫‪holomonic‬فرض کنیم ‪.‬در اینصورت روبات را میتوان‬
‫بصورت یک نقطه در نظر گرفت‪.‬‬
‫در نتیجه فضای موقعیت را میتوان بصورت دو بعدی با‬
‫محورهای ‪ x, y‬نشان داد‪.‬‬
‫در این حالت اشیا موجود در محیط باندازه شعاع روبات‬
‫بزرگ میشوند تا فرض نقطه ای بودن روبات درست باشد‪.‬‬
Example of a World (and Robot)
Free Space
Obstacles
Robot
x,y
Configuration Space:
Accommodate Robot Size
Free Space
Obstacles
x,y
Robot
(treat as point object)
‫‪Path Planing‬‬
‫‪‬‬
‫فرض میشود که یک نقشه مناسب از محیط وجود داشته باشد‪:‬‬
‫‪ ‬توپولوژیک‬
‫‪ ‬متریک‬
‫‪ ‬یا ترکیبی از این دو‬
‫‪‬‬
‫اولین مرحله از مسیریابی تبدیل نقشه به یک نقشه گسسته است ‪.‬اینکار‬
‫به چند طریق ممکن است انجام شود‪:‬‬
‫‪Visibility Graph‬‬
‫‪Voronoi Diagram‬‬
‫‪Cell Decomposition  Connectivity Graph‬‬
‫‪Potential Field‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪Road-Map Path Planning:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در این روش فضای آزاد بصورت شبکه ای از منحنی ها و یا خطوط‬
‫که نقشه راه نامیده میشود نشان داده میشود‪.‬‬
‫مسیریابی در این حالت عبارت است از اتصال مبدا و مقصد روبات به‬
‫نقشه راه و بدنبال آن جستجوی راه هائی که ایندو را به هم متصل میکنند‪.‬‬
‫در این روش فضای حالت روبات با استفاده از هندسه موانع تجزیه‬
‫میشود‪.‬‬
‫دو روش مختلف برای اینکار ‪:‬‬
‫‪• Visibility Graph‬‬
‫‪• Voronoi Diagram‬‬
‫‪Visibility Graph‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪( Visibility Graph‬گراف پدیداری)برای یک فضای موقعیت مرکب‬
‫از چند ضلعی ها از لبه هائی تشکیل میشود که رئوس چند ضلعیها را‬
‫دو بدو به هم متصل میکنند‪.‬‬
‫وظیفه مسیریاب پیدا کردن کوتاهترین مسیر از مبدا به مقصد است‪.‬‬
‫پیاده سازی این روش ساده بوده و مسیر پیدا شده توسط آن بهینه است‪.‬‬
‫اگر تعداد اشیا محیط زیاد شود تعداد لبه ها و گره ها زیاد شده و سرعت‬
‫الگوریتم کاهش می یابد ‪.‬‬
‫مشکل جدی این روش این است که مسیر پیدا شده توسط آن روبات را‬
‫تا حد ممکن به اشیا نزدیک میکند‪.‬‬
‫‪Visibility Graph‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪G: non-directed graph‬‬
‫گره ها عبارتند از نقطه شروع و هدف و رئوس چند ضلعی ها‬
‫یال ها عبارتند از خطوط مستقیمی که از اتصال دو نقطه بدست‬
‫می آیند و هیچ مانعی را قطع نمیکنند‪.‬‬
‫‪qGoal‬‬
‫‪qinit‬‬
‫الگوریتم‬


Construct a visibility graph G
Search G for a path from qinit to qgoal

If a path is found, return it; otherwise, indicate
failure

Construction most expensive:
- naively O(n3)
- sweep-line algorithm renders it O(n2 log n)
- O(n2) proposed.
‫‪Reduced Visibility Graphs‬‬
‫‪‬‬
‫میتوان با کاهش تعداد یالها مرتبه اجرای الگوریتم را کاهش داد‪.‬‬
‫‪‬‬
‫از ‪ G‬رئوس مقعر و یالهای ‪non-tangent‬حذف میشوند‪ .‬یال‬
‫‪ tangent‬یالی است که از هر دو گره برموانع مماس باشد‪.‬‬
‫‪Algorithm: O(… + n log n) possible.‬‬
‫‪qgoal‬‬
‫‪Qgoal‬‬
‫‪qinit‬‬
‫‪qinit‬‬
‫‪Voronoi Diagram‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫برخالف روش ‪visibility graph‬این روش سعی دارد تا فاصله روبات‬
‫تا اشیا را حداکثر نماید‪.‬‬
‫برای ساختن ‪Veronoi graph‬نقاطی از صفحه که فاصله شان ازدو و‬
‫یا چند شیئ یکسان است پیدا شده و به هم متصل میشوند‪ .‬این نموداز‬
‫شامل خطوط صاف و منحنی خواهد بود‪.‬‬
‫مسیر یافته شده توسط این روش با مسیر بهینه فاصله دارد‪.‬‬
‫اجرای این الگوریتم بر روی روبات ساده است‪ :‬روبات با استفاده از‬
‫سنسور های فاصله سعی درحداکثر کردن فاصله اش از اشیا اطراف‬
‫خواهد نمود تا همیشه در مسیر این نمودار قراربگیرد‪.‬‬
‫این خطر وجود دارد که روبات بعلت محدودیت سنسورهایش قادر به‬
‫اندازه گیری فاصله تا اشیا دور نباشد‪.‬‬
Voronoi Diagram
Voronoi diagram
Voronoi
diagram of floor map
‫نمودار ورونوی برای مجموعه ای از نقاط‬
Generalized Voronoi Diagrams
Naive Method of Constructing
Voronoi Diagrams
1.
2.
3.
compute all arcs (for each vertex-vertex,
edge-edge, and vertex-edge pair)
compute all intersection points (dividing arcs
into segments)
keep segments which are closest only to the
vertices/edges that defined them
‫‪Cell Decomposition‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در این روش محل های مربوط به فضای آزاد و اشیاء از هم جدا میشوند‪.‬‬
‫برای اینکار‪:‬‬
‫فضا را به نواحی ساده و به هم متصلی به نام سلول تقسیم کنید‪.‬‬
‫سلولهای آزادی که مجاورهم هستند را مشخص نموده ویک گراف اتصال‬
‫تشکیل دهید‪.‬‬
‫سلولهائی که حاوی نقطه مبدا و مقصدهستند را پیدا کنید‪.‬‬
‫مسیری در گراف اتصال پیدا کنید که این سلولها رابه هم وصل کند‪.‬‬
‫در این سلولها مسیری را پیدا کنید که از آن سلول عبور کند‪ .‬مثال مسیری‬
‫که نقطه وسط سلول را به مرزهایش وصل نماید‪.‬‬
Exact Cell Decomposition
Cell Decomposition
Trapezoidal Decomposition
‫‪Cell Decomposition‬‬
‫‪Trapezoidal Decomposition‬‬
‫‪‬‬
‫بازای هر یک از رئوس موانع خط عمودی در فضای آزاد رسم میشود‬
‫که یا به مانع دیگری برسد و یا به مرز برخورد کند‬
Cell Decomposition
Trapezoidal Decomposition
‫با تقلیل محیط به سلولها میتوان گراف متناظری را ساخت‬
start
goal

‫‪Cell Decomposition‬‬
‫‪Trapezoidal Decomposition‬‬
‫‪‬‬
‫با استفاده از یک گراف مجاورت میتوان مسیری را از مبدا به‬
‫مقصد بدست اورد‪.‬‬
‫‪goal‬‬
‫‪start‬‬
‫‪Approximate Cell Decomposition‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یکی از روشهای متداول در مسیریابی روباتهای متحرک است‬
‫که بخصوص برای مواردی که محیط بصورت ‪grid based‬‬
‫استفاده میشود‪.‬‬
‫فضا به سلولهائی با اندازه ثابت( یا متغیر) تقسیم بندی میشود‪.‬‬
‫در حالت استفاده از سلول با اندازه ثابت ممکن است برخی‬
‫مسیرها از دست بروند‪.‬‬
Approximate Cell Decomposition
Adaptive Cell Decomposition
Adaptive Cell Decomposition
Uniform
Quadtree
‫مسائل‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫پیوستگی مسیر تابعی از رزولوشن انتخاب شده است‪.‬‬
‫با افزایش رزلوشن پیچیدگی محاسباتی افزایش می یابد‪.‬‬
‫مواردی وجود دارند که دقت از بین میرود‪ .‬برای مثال در‬
‫شکل زیر تشخیص مانع از فضای آزاد مشکل خواهد بود‬
Path / Graph Search Strategies
‫ استفاده میشود که در آن به‬grassfire ‫ و یا‬NF1 ‫برای جستجو از تکنیک‬
.‫هر سلول فاصله آن تا نقطه هدف نسبت داده میشود‬
:‫سایرروشها‬
Breadth-First Search
Depth-First Search
Greedy search and A *
‫‪The Wavefront planner‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫از این الگوریتم میتوان برای تعیین کوتاهترین فاصله بین دو‬
‫نقطه استفاده نمود‪.‬‬
‫در حقیقت یک جستجوی ‪ breadth first‬انجام میدهد‪.‬‬
‫مقدار دهی اولیه‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فضای آزاد با ‪ 0‬عالمت گذاری میشود‬
‫موانع با ‪ 1‬عالمت گذاری میشوند‪.‬‬
‫مقصد با ‪ 2‬عالمت گذاری میشود‪.‬‬
The Wavefront planner
‫‪The Wavefront planner‬‬
‫‪‬‬
‫از نقطه هدف شروع کرده و سلولهای مجاور آن را یکواحد‬
‫افزایش میدهیم‪.‬‬
‫‪The Wavefront planner‬‬
‫‪‬‬
‫‪‬‬
‫به همین ترتیب برای سلولهای مجاور عمل میکنیم‪.‬‬
‫الگوریتم آنقدر ادامه پیدا میکند تا هیچ سلولی که همسایه برزگتر از ‪ 2‬داشته برابر صفر نباشد ‪.‬‬
‫مگر سلولی هائی که قابل دسترس نباشند‪.‬‬
‫‪The Wavefront planner‬‬
‫‪‬‬
‫برای پیدا کردن کوتاهترین مسیر با شروع از مبدا درجهتی‬
‫حرکت میکنیم که مقدار عددی سلولها کمتر شود‪.‬‬
‫‪Potential Field Path Planning‬‬
‫‪‬‬
‫‪‬‬
‫این روش یک میدان و یا گرادیانی در نقشه روبات ایجاد میکند که‬
‫میتواند روبات را از موقعیت فعلی به سمت هدف هدایت نماید‪.‬‬
‫روبات بصورت یک نقطه فرض میشود که تحت تاثیر یک میدان‬
‫پتانسیل )‪ U(q‬قرار دارد ‪.‬روبات همانند توپی که در سرازیری قرار‬
‫دارد مسیر میدان را دنبال میکند‪.‬‬
‫‪‬‬
‫‪‬‬
‫نقطه هدف بصورت یک نیروی جاذب و موانع بصورت نیروهای دافع عمل‬
‫میکنند ‪.‬برایند نیرو های دوگانه به روبات اعمال خواهد شد ‪.‬بدین ترتیب روبات‬
‫همزمان با حرکت بسوی هدف از موانع نیز دور خواهد شد‪.‬‬
‫اگر اشیا جدید در مسیر روبات قرار داده شوند میدان طوری تغییر داده میشود تا‬
‫تاثیر آنها را در بر داشته باشد‪.‬‬
Potential Field Path Planning
‫‪Potential Field Generation‬‬
‫‪‬‬
‫اگر روبات بصورت یک نقطه فرض شود میتوان از‪ q‬صرفنظر نموده‬
‫و میدان پتانسیل )‪ U(q‬را بصورت دو بعدی در نظر گرفت ‪.‬در‬
‫اینصورت نیروئی که در نقطه )‪q=(x,y‬بر روبات اثر میکند عبارت‬
‫است از‪:‬‬
‫‪ U ‬‬
‫‪ x ‬‬
‫‪F(q)  -U(q)  U att (q)  U rep (q)   U ‬‬
‫‪‬‬
‫‪‬‬
‫‪ y ‬‬
‫‪‬‬
‫سرعت روبات )‪ (vx, vy‬متناسب با نیروی )‪ F(q‬در نظر گرفته میشود‪.‬‬
‫‪Attractive Potential Field‬‬
‫‪‬‬
‫‪‬‬
‫پتانسیل جذبی را میتوان بصورت یک تابع سهمی گون در‬
‫نظر گرفت‪.‬‬
‫در این رابطه ‪ Katt‬ضریب مقیاس و )‪ rgoal(q‬فاصله‬
‫اقلیدسی|| ‪ || q-qgoal‬تا هدف را مشخص میکند ‪.‬با مشتق‬
‫گیری از این رابطه مقدار نیروی جاذ ب بدست خواهد آمد‪.‬‬
‫وقتی که روبات به هدف میرسد مقدار این‬
‫نیرو صفر خواهد شد‪.‬‬
‫‪Repulsing Potential Field‬‬
‫‪‬‬
‫‪‬‬
‫نیروی دافعه باید روبات را از موانع معلوم دور سازد ‪.‬از اینرو مقدار آن وقتی‬
‫که روبات به موانع نزدیک میشود باید زیاد بوده و وقتی که روبات بقدر کافی‬
‫از موانع دور است تاثیر چندانی نداشته باشد ‪.‬‬
‫در این رابطه ‪ Krep‬ضریب مقیاس و )‪ r (q‬حد اقل فاصله از ‪ q‬به شیئ و ‪r0‬‬
‫فاصله تاثیر شیئ است‪ .‬مقدار میدان دافعه مثبت و یا صفر بوده و با نزدیک‬
‫شدن به شیئ مقدار آن بینهایت میشود‪.‬اگر مرز شیئ محدب بوده و بصورت‬
‫تکه تکه مشتق پذیر باشد میتوان از )‪ r (q‬مشتق گرفت‪ .‬در اینصورت‪:‬‬
Generating the Potential Field
A Parabolic Well for Attracting to Goal
Gaussian Obstacle Potential
Function
Parabolic Well for Goal
Exponential Source for Obstacle
Parabolic Well Goal &
Two Exponential Source Obstacles
‫‪Potential Field Path Planning:‬‬
‫‪‬‬
‫محدودیت های این روش‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫احتمال قرار گرفتن در مینیمم محلی وجود دارد‪.‬‬
‫در اشیا مقعر ممکن است چندین فاصله حد اقل )‪ r (q‬وجود داشته‬
‫باشد‪ .‬این امر ممکن است به نوسان بین دو نقطه نزدیک به شیئ‬
‫منجر گردد‪.‬‬
‫اگر نتوان روبات را بصورت نقطه ای فرض کرد مسئله بعرنج‬
‫خواهد شد‪.‬‬
‫‪Extended Potential Field Method‬‬
‫در این روش دو میدان به صورت زیر تعریف میشود‪:‬‬
‫‪‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪Rotation Potential Field‬این میدان نیروی دافعه را تابعی‬
‫از فاصله تا مانع و جهت روبات فرض میکند ‪.‬طوری که اگر‬
‫روبات موازی مانع بود نیروی دافعه مانع کمتراثر نماید‪.‬بدین‬
‫ترتیب عمل ‪ wall following‬راحت تر انجام میشود‪.‬‬
‫‪Task potential field‬با استفاده از سرعت روبات اشیائی را که‬
‫نباید تاثیری بر میدان پتانسیل داشته باشند را مشخص مینماید‪.‬‬
‫اینکار مسیر هموارتری را ایجاد مینماید‪.‬‬
Extended Potential Field Method
‫مقایسه بین دو روش‬
‫‪Obstacle Avoidance‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یک مسیریاب فقط میتواند اشیائی را‬
‫در نظر بگیرد که از قبل مشخص‬
‫باشند‪.‬‬
‫در عمل ممکن است در یک محیط پویا‬
‫بعلت وجود اشیا جدید و یا عدم دقت‬
‫نقشه قرائت سنسورهای روبات با‬
‫مقادیر موجود در نقشه همخوانی‬
‫نداشته باشد‪.‬‬
‫در نتیجه یک روبات متحرک باید قادر‬
‫به ممانعت از برخورد با اشیا باشد‪.‬‬
‫‪Obstacle Avoidance‬‬
‫‪‬‬
‫‪‬‬
‫عمل پرهیز از اشیا سعی دارد تا مسیر روبات را به محض اینکه‬
‫سنسورهای روبات آن را از وجود مانعی آگاه کردند تغییر دهد‪.‬‬
‫اینکار وابسته به عوامل زیر است‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نقشه محیط‪،‬‬
‫اطالع دقیق روبات از موقعیت خودش در روی نقشه‪،‬‬
‫مقدار فعلی قرائت سنسورها‪،‬‬
‫نقطه هدف ‪،‬‬
‫سرعت و دینامیک روبات‪،‬‬
‫خطر کنونی و بعدی برخورد‬
‫معموال قابلیت پرهیز از مانع بصورت جداگانه پیاده سازی میشود‪.‬‬
Bug Algorithms
‫ جزو ساده ترین روشهای پرهیز از اشیا‬Bug ‫الگوریتم های‬
.‫هستند‬
‫ایده اصلی این است که روبات با مشاهده هر مانع در مسیر‬
.‫خود محیط پیرامون آنرا دور میزند‬
:‫فرضیات‬
Point robot
Contact sensor (Bug1,Bug2) or finite range sensor (Tangent Bug)
Bounded environment
Robot position is perfectly known
Robot can measure the distance between two points



‫‪Obstacle Avoidance: Bug1‬‬
‫در این روش روبات یک دور کامل دور شیئ زده و سپس از نزدیکترین‬
‫نقطه به هدف از مانع جدا میشود‪.‬‬
‫‪Obstacle Avoidance: Bug2‬‬
‫در این روش روبات محیط مانع را دور میزند و به‬
‫محض اینکه راهی بسوی هدف پیدا کرد از آن جدا‬
‫میشود‪.‬‬
Bug Algorithms
Algorithm consists of two behaviors:
1. Motion to goal – move toward the goal
•Bug1: move along the line that connects an “initial”
point to the goal until you reach the goal or an
obstacle (hit point).
•Bug2: move along the line that connects the start
point to the goal until you reach the goal or an
obstacle (hit point).
Bug Algorithms
2. Boundary following – obstacle handling
•Bug1: circumnavigate the entire perimeter of the
obstacle, find the closest point to the goal on the
perimeter (leave point), move to that point .
•Bug2: circumnavigate the obstacle until you reach a
new point on the line connecting start and goal, that
is closer to the goal (leave point).
Bug Algorithms
•Bug1
•Bug2
•Exhaustive search
•Optimal leave point
•Performs better with
complex obstacles
•Path length :
•Opportunistic (greedy)
search
•Performs better with simple
obstacles
•Path length :
•n = # of obstacles
•Pi = perimeter of obstacle i
•ni = # of times the start-goal line
intersects obstacle i
Obstacle Avoidance: Vector Field
Histogram (VFH)
‫سایر روشها‬






The Bubble Band Concept
Lane Curvature Velocity Methods
Global Dynamic Window Approach
The Schlegel Approach
The EPFL-ASL approach
Fuzzy, Neuro-Fuzzy
‫‪Navigation Architectures‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫چگونه میتوان روشهای مختلف مسیریابی‪ ،‬پرهیز از موانع‪،‬‬
‫مکان یابی‪ ،‬و ادراکی را در یک روبات واقعی تحت یک‬
‫سیستم مجتمع نمود؟‬
‫روش متداول طراحی یک نرم افزار مخصوص کاربرد مورد‬
‫نظر است‪.‬‬
‫اما این کار را میتوان به شیوه های ساخت یافته تر ی نیز‬
‫انجام داد‪.‬‬
‫‪Control localization‬‬
‫‪ ‬معموال در طراحی روبات عملیات کنترلی مختلف به صورت‬
‫واحد های مشخصی در معماری سیستم پیاده سازی میشوند‪.‬‬
‫‪ ‬مثال پرهیز از موانع بصورت یک واحد مجزا اجرا میشود‪.‬‬
‫‪ ‬همچنین تصمیم گیری های سطح باال نظیر ‪ planning‬نیز‬
‫بصورت مجزا اجرا میشوند ‪.‬معموال این بخشها با استفاده از‬
‫یک شبیه ساز تست میشوند‪.‬‬
‫‪ ‬معموال از دو روش برای تجزیه عملیات روبات استفاده میشود‬
‫‪• Temporal decomposition and‬‬
‫‪• Control decomposition‬‬
‫‪Temporal decomposition‬‬
‫‪‬‬
‫تجزیه زمانی نرم افزار‬
‫روبات بر اساس عملیاتی‬
‫که باید بصورت بالدرنگ‬
‫انجام شوند و عملیاتی که‬
‫میتوانند بصورت ‪off‬‬
‫‪line‬انجام میشوند‬
‫صورت میپذیرد‪.‬‬
‫‪Off line planning‬‬
‫‪Strategic decisions‬‬
‫‪Tactical decisions‬‬
‫‪Quasi real time‬‬
‫‪Hard real time‬‬
‫‪Temporal decomposition‬‬
‫‪‬‬
‫در پائین ترین سطح‬
‫تصمیم گیری بر‬
‫اساس مقادیر فوری‬
‫سنسور ها انجام‬
‫میگیرد در حالیکه‬
‫در سطوح باالتر‬
‫تصمیم گیری‬
‫براساس صورت‬
‫مسئله موجود انجام‬
‫میگیرد‪.‬‬
‫‪Control decomposition‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫این روش نرم افزار را بر اساس ارتباطی که خروجی های‬
‫یک بخش با قسمت های دیگر دارد تجزیه میکند‪.‬‬
‫سیستم ( شامل روبات و محیط) به ‪ m‬ماجول با یک یا چند‬
‫ورودی و فقط یک خروجی تجزیه میشود که ورودی هر‬
‫ماجول از خروی ماجول دیگری تامین شده و یک سیستم بسته‬
‫ایجاد میشود‪.‬‬
‫ورودی ماجول ‪ r‬و یا روبات کلیه عملیاتی که روبات فیزیکی‬
‫قادر به انجام آن است را شامل میشود‪ .‬خروجی آن نیز تمامی‬
‫ادارکاتی را که روبات قادر به حس آن است در بر میگیرد‪.‬‬
‫‪Control decomposition‬‬
‫‪‬‬
‫این ایده میتواند بصورت کامال سلایر و یا موازی پیاده سازی‬
‫شود‪.‬‬
‫کنترل موازی‬
‫‪ ‬در حالت موازی الزم است تا روشی برای انتخاب بین خروحی های‬
‫ماجولهای مختلف تعیین گردد‪.‬‬
‫‪ ‬در روش سوئیچینگ در هر لحظه خروجی یکی از ماجولها بر اساس‬
‫شرایط موجود انتخاب میشود‪ ( .‬مثال در هنگام نزدیک شدن به موانع‬
‫ماجول پرهیز از موانع انتخاب میشود)‬
‫‪ ‬در روش ترکیبی خروجی همه ماجولها برای تولید خروجی الزم مورد‬
‫استفاده قرار میگیرد‪ .‬مثال خروجی ماجول پرهیز از موانع همیشه روشن‬
‫است ولی یک تابع ریاضی تاثیر آن در حرکت روبات را تعیین مینماید‪.‬‬
‫روش کنترل موازی در حقیقت تقلیدی از موجودات زنده است‪:‬‬
‫‪Biomimetc‬‬
An architectural example:
Functional Decomposition
‫مسیر کمانها ار تباط زمانی بین ماجولها را نشان میدهد‬
‫‪General Tiered Architecture‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مثالی از تجزیه زمانی عملیات روبات‪:‬‬
‫ماجول ‪ Path Planning‬تصمیم گیری های استراتژیک را‬
‫انجام میدهد‪ .‬این تصمیم گیری ‪ real time‬نبوده و بر‬
‫اساس اطالعات کلی در یافتی از محیط انجام میشود‪.‬‬
‫از طرف دیگرکنترلرهای ‪ Real time‬دارای پهنای باند‬
‫زیادی بوده و ورودی سنسورها را به عملگرها ربط میدهند‪.‬‬
‫در پائین ترین مرحله کنترلر موتورها قرار میگیرد‪.‬‬
‫الیه اجرائی یا ‪ Executive‬که بین دو الیه ‪path‬‬
‫‪ planner‬و ‪ real time‬قرار میگیرد‪ ،‬مسئول میانجیگری‬
‫بین ایندو بخش است که رفتار ها را بر اساس مقدار سنسور‬
‫ها فعال میکند‪ ،‬خرابی را تشخیص میدهد و در صورت لزوم‬
‫‪ planner‬را دوباره راه اندازی میکند‪.‬‬
A Three-Tiered Episodic Planning
Architecture.
Planner is triggered when needed: e.g. blockage, failure
An integrated planning and
execution architecture
All integrated, no temporal between planner and executive layer
‫روبات خودکار‬
‫• برای داشتن یک روبات کامال خودکار الزم است تا عالوه بر‬
‫ایجاد ارتباط بین ورودی سنسورهای روبات و خروجی‬
‫عملگرهای آن‪:‬‬
‫• روبات باید قادر باشد تا هدفی را انجام دهد‬
‫• روبات باید مسئله ای را حل نماید‬
‫ویژگی های معماری‬
• A control architecture provides a set of principles
for
• Organizing a control system
• provides structure
• provides constraints
• refers to software control level, not hardware!
‫دسته بندی معماری های مختلف برای کنترل روبات‬
• Deliberative
• look-ahead; think, plan, then act
• Reactive
• no look-ahead; react!
• Hybrid
• think slowly, react quickly
• Behavior-based
• distribute thinking over acting
Deliberative Control
• Classical control architecture (first to be tried)
• First used in AI to reason about actions in
nonphysical domains (like chess)
• Natural to use this in robotics at first
• High-level planning architectures including
STRIPS, GAPPS, PRS, and RAPS
Reactive Control
• Operate on a short time scale
• Does not look ahead
• Reactive control is based on a tight loop
connecting the robot’s sensors with its effectors
• Purely reactive controllers do not use any internal
representation; they merely react to the current
sensory information.
• Use a direct mapping between sensor and
effectors; minimal state information (if any)
Reactive Control
• Collection of rules that map situations to actions
• Simplest form:
• divides perceptual world into a set of mutually exclusive
situations
• recognize which situation we are in
• react to it
• Usually too hard to define mutually exclusive situations
• what if multiple sensors are involved?
• robot’s entire sensory space could be very large!
‫مثال‬
Arbitration
• Deciding between two or more different possible
actions or behaviors
• Can be done based on:
• fixed priority hierarchy
• dynamic hierarchy
• Learning
Universal Plans
• Suppose:
•
all possible plans for all possible actions can be generated in
advance and
• An optimal reaction for each situation can be identified
• This is a universal plan also called a complete mapping.
• Reactive planning is done at compile-time, not run-time.
• but not viable, because:
•
•
•
•
world must be deterministic
world must not change
goals must not change
world is too complex (state space is too large)
Situated Automata
• Formal notion of finite state machines (FSM)
• inputs connected to sensors
• outputs connected to effectors
•
•
•
•
•
“situated” = interacting with a complex world
Used to create reactive principled control systems
Control With Situated Automata
two ways to construct
manually
•
e.g., subsumption architecture [Brooks 1986]
• pre-compiling a complete plan
• similar to universal plans, but in terms of FSM circuitry
Subsumption Architecture
• Best known reactive control architecture (Q Rodney
Brooks, MIT, 1985)
• principles:
•
•
•
•
•
•
•
•
systems are built from the bottom up
components are task achieving actions/behaviors (not functional
modules)
components can be executed in parallel
components are organized in layers, from the bottom up
lowest layers handle most basic tasks
newly added components and layers exploit existing ones
each component provides and does not disrupt tight coupling
between sensing and action
no internal models (“the world is its own best model”)
Hybrid Control
•
•
Basic idea:
use the best of both worlds (deliberative and reactive)
•
•
•
Typically consists of three components:
1.
2.
3.
•
•
combine open-loop and closed-loop execution
combine different time scales and representations
reactive layer
planner
integration layer to combine (1) and (2)
often called three-layer architectures
planner and reactive layers are standard
Strengths
• Deliberative planners
• rely heavily on world models
• can readily integrate world knowledge
• have broader perspective and scope
• Reactive and behavior-based systems
•
•
•
•
afford modular development
provide real-time robust performance in dynamic world
provide for incremental growth
tightly coupled to incoming sensory data
Behavior-based systems



BBR is founded on the Subsumption Architecture
Reactive systems are limited by their lack of internal
state. BBR systems overcome this limitation
because their underlying unit of representation
behaviors can store state.
Information is not centralized instead various forms
of distributed representations are used ranging from
static table structures and networks to active
procedural processes implemented within the
behavior networks.
Behavior-based systems



Like hybrid systems they also provide both low level
control and High level deliberation.
The latter is performed by one or more distributed
representations that compute over the other
behaviors often directly utilizing low level behaviors
and their outputs.
The resulting system built from the bottom up does
not divide into differently represented and
independent components but instead constitutes an
integrated computational behavior network.
Behavior-based systems


The whole robot control is built upon a family of
behaviors, each implementing a set of actions
which specify, at each computational step, the
most appropriate response to a perceptual
stimulus.
An arbitration mechanism allows the system to
inhibit a behavior which is not currently
requested, eventually, reactivating it later .
Behavior-based controllers



Behavior-based controllers consist of a
collection of behaviors.
Behaviors are processes or control laws that
achieve and/or maintain goals.
For example, 'avoid-obstacles' maintains the
goal of preventing collisions, 'go-home'
achieves the goal of reaching some home
destination.
Behavior-based controllers

Each behavior can




take inputs from the robot's sensors (e.g., camera,
ultrasound, infra-red, tactile) and/or from other behaviors in
the system, and
send outputs to the robot's effectors (e.g, wheels, grippers,
arm, speech) and/or to other behaviors.
Thus, a behavior-based controller is a structured
network of such interacting behaviors.
The behaviors themselves can have state, and can
form representations when networked together.
Behavior-based controllers



The key difference between behavior-based and hybrid systems
is in the way representation and time-scale are handled.
Hybrid systems typically employ a low-level reactive system that
functions on a short time-scale, and a high-level planner that
functions on a long time-scale. The two interact through a middle
layer. Consequently hybrid systems are often implemented with
so-called three-layer architectures.
In contrast, behavior-based systems attempt to make the
representation, and thus the time-scale, of the system uniform.
Behavior-based representations are parallel, distributed, and
active, in order to accommodate the real-time demands of other
parts of the system. Furthermore, they are implemented using
the behavior structure, much like the rest of the system.
‫پیاده سازی رفتارها‬


Behaviors can be designed at a variety of
abstraction levels In general they are higher than
the robots atomic actions.
Some implemented behaviors include:


Go home , Get recharged, Find Landmark, Pickup Object,..
Deciding what behavior to execute at each point in
time is called behavior arbitration and is one of the
central design challenges of BBR

Fixed priority for behaviors
‫مثال‬
Structure of the behavior networks for the delivery task
‫معیارهای انتخاب معماری‬
• Support for parallelism
• the ability of the architecture to execute parallel
processes/behaviors at the same time
• Hardware targetability
•
•
•
•
how well the architecture can be mapped onto real-robot
sensors and effectors
how well the computation can be mapped onto real
processing elements (i.e., microprocessors)
• Run-time flexibility
• does the architecture allow run-time adjustment and
reconfiguration?
‫معیارهای انتخاب معماری‬
• Modularity
• how does the architecture address encapsulation of
control?
• how does it treat abstraction?
• does it allow many levels?
• e.g., feedback loops, primitives, agents
• Robustness
• how well does the architecture perform if individual
components fail?
• how well does it enable and facilitate writing
controllers capable of fault tolerance?
‫معیارهای انتخاب معماری‬
• Ease of use
• how easy to use and accessible is the architecture?
• are there programming tools and expertise?
• Performance
• how well does the robot perform using the
architecture?
• does it act in real-time?
• does it get the job
Designing Principles



Designing control programs for autonomous robots
is a very difficult activity especially if it is compared
with the analogous activity of writing computer
programs.
These difficulties stem from the hard coupling
between the robot and its environment which makes
input/output operations to play a crucial role inside
the program.
The consequence is that robot capabilities are
deeply affected by the performance of its sensors,
which handle inherently noisy data, and its actuators
whose reliability is not perfectly predictable.
Text Books:


Robot Motion Planning, Jean-Claude
Latombe, Kluwer, 1991.
Behavior-Based Robotics by R. Arkin
Example: Task Control
Architecture





It means the integration and coordination of
perception, planning and real-time control to achieve
a given set of goals (tasks).
TCA has no built-in control functions for particular
robots (such as path planning algorithms)
It provides control functions, such as task
decomposition, monitoring, and resource
management, that are common to many mobile
robot applications.
TCA can be thought of as a robot operating system .
Within NASA, TCA has been used on several
robots.
Inter-Process Communication



TCA provides a flexible mechanism for passing
coarse-grained messages between processes
(which is called modules).
The communication mechanisms automatically
marshall and unmarshall data, invoke user-defined
handlers when a message is received, and include
both publish/subscribe and client/server type
messages, and both blocking and non-blocking
types of messages.
TCA also provides orderly access to robot resources
so that you don't have to build your own queuing
mechanisms.
Planning and Execution




The fundamental capability of a robot is to achieve
its goals.
TCA enables developers to easily specify
hierarchical task-decomposition strategies, such as
how to navigate to a particular location or how to
collect a desired sample.
This can include temporal constraints between subgoals, leading to a variety of sequential or
concurrent behaviors.
TCA schedules the execution of planned behaviors,
based on those temporal constraints.
Execution Monitoring and Error
Recovery



TCA provides constructs that enable the robot
system to monitor selected sensors and inform the
system when the monitored conditions are triggered.
To recover from errors in plans, TCA utilities enable
robot systems to reason about plans, terminate or
suspend portions of plans, add patches, and retry
plans.
TCA provides a hierarchical exception-handling
mechanism for specifying context-dependent error
procedures.
Human/Robot Interaction





No robot will be fully autonomous; interaction with
humans is a necessity.
TCA provides users with the ability to interact with
the robot at any level of the task hierarchy.
Users may also view the current task decomposition
that the robot is executing, and modify it on the fly, if
need be.
Note that TCA may not be an appropriate framework
for real-time control systems.
Source: http://www.cs.cmu.edu/~TCA/tca.orig.html
‫موضوعاتی برای ارائه‬



Probabilistic Road Maps
Multi-Robot Systems
Subsumption Architecture
‫موضوعاتی برای پروژه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یادگیری و روبات‬
‫شبیه سازی‪ :‬شبیه ساز روبات کوکا‪ ،‬شبیه ساز روباتهای‬
‫متحرک‪،‬‬
‫پیاه سازی ‪ Slam‬توسط شبیه ساز‬
‫برخی پروژه های پیشین‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫سه بعدي فوتبال با استفاده از روش کالمن فیلتر‬
‫تخمین میزان آب الزم براي خاموش كردن یك ساختمان مشتعل‪RoboCup – Rescue.‬‬
‫تخمین و پیشبینی رفتار گسترش آتش در محیط شبیهسازی امداد‬
‫جلوگیري از برخورد به موانع با استفاده از یادگیري تقویتي براي روبات کپرا‬
‫طراحی و پیادهسازی محیط شبیهسازی رباتهای متحرک‬
‫حل سینماتیک معکوس برای ربات افزاینده با‪ ۴‬درجه آزادی با وجود مانع بوسیله‬
‫مکانیابي روبات فوتبالیست در محیط شبیه سازي سه بعدي فوتبال با استفاده از روش پارتیکل‬
‫فیلترینگ‬
‫پیاده سازی و مقایسه روشهای مسیریابی ربات‬
‫استفاده از یادگیري تقویتي براي حرکت روبات در یک مسیر منحني‬
‫برنامه ریزی حرکت و جلوگیری از برخورد روبات با موانع با استفاده از پارامترهای فازی‬
‫حل سینماتیک معکوس در روباتهاي افزونه با استفاده از اتوماتاي یادگیر سلولي‬
‫ارائه یک مدل فازي براي تعیین اولویت خاموش کردن ساختمانهاي آتش گرفته توسط عاملهاي اتش‬
‫نشان تیم امداد‬
‫برخی پروژه های پیشین‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫فازی کردن معماری ‪Subsumption‬‬
‫یادگیري مهارت ضربه زدن در روبوکاپ‬
‫پیاده سازي یك ربات یادگیر‬
‫موقعیت یابي با استفاده از کالمن فیلتر‬
‫مسیریابي ربات با استفاده از یک روش تغییر یافته میدان نیروی مجازی‪،‬‬
‫ضمن شناسائي و فرار از مینیمم هاي محلي‬
‫‪ Multiple Target Tracking For Mobile Robots Using‬‬
‫‪the JPDAF Algorithm‬‬
‫‪ Mobile Robot Global Localization using Differential‬‬
‫‪Evolution and Particle Swarm Optimization‬‬