Planning and Navigation

Slides:



Advertisements
Similar presentations
Reactive and Potential Field Planners
Advertisements

Awe sim.
Lecture 8: Three-Level Architectures CS 344R: Robotics Benjamin Kuipers.
Motion Planning for Point Robots CS 659 Kris Hauser.
The Vector Field Histogram Erick Tryzelaar November 14, 2001 Robotic Motion Planning A Method Developed by J. Borenstein and Y. Koren.
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
Autonomous Robot Navigation Panos Trahanias ΗΥ475 Fall 2007.
فاکتورهای مهم در ایجاد یک مقاله علمی
Decision Tree.
© 2005 Prentice Hall Inc. All rights reserved. o r g a n i z a t i o n a l b e h a v i o r e l e v e n t h e d i t i o n.
Autonomous Mobile Robots CPE 470/670 Lecture 8 Instructor: Monica Nicolescu.
Behavior Based Robotic دکتر سعید شیری قیداری  کتاب Behavior Based Robotic Ronald C. Arkin Amirkabir University of Technology Computer Engineering & Information.
دکتر سعید شیری قیداری & فصل 5 کتاب
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
Perception Amirkabir University of Technology Computer Engineering & Information Technology Department دکتر سعید شیری قیداری  فصل 4 کتاب.
LINEAR CONTROL SYSTEMS Ali Karimpour Assistant Professor Ferdowsi University of Mashhad.
Planning and Navigation
Mobile Robot Kinematics
دسته بندی نیمه نظارتی (2)
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
Robotica Lecture 3. 2 Robot Control Robot control is the mean by which the sensing and action of a robot are coordinated The infinitely many possible.
بسم الله الرحمن الرحیم. Visual Studio 2012 Performance Profiling Tools.
ساختمان داده‌ها پیمایش گراف. مرور °مشکل: چگونه تمام نودهای گراف را مشاهده کنیم؟ °جستجوی اول عمق دنبال کردن مسیرهای بین راسها. °جستجوی اول سطح دیدن تمام.
Arrangements of Lines C omputational Geometry By Samaneh shafi naderi
آشنايي با سيستم اعداد.
LINEAR CONTROL SYSTEMS Ali Karimpour Associate Professor Ferdowsi University of Mashhad.
Schedule for next 2 weeks
[c.
دکتر سعید شیری قیداری & فصل 5 کتاب
Planning and Navigation
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
کالیبراسیون، صحت سنجی و آنالیز حساسیت مدل
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
هیدروگراف(Hydrograph) تهیه : دکتر محمد مهدی احمدی
ویژگی های DHCP جلوگیری از Conflict سرعت بخشیدن به کارها مدیریت متمرکز
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
SY800 router mode [AD-14-TB ].
Mobile Robot Kinematics
ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر
فصل دوم جبر بول.
SSO Single Sign-on Systems
آموزش و یادگیری Education and Training
Strain gauge Omid Kooshki Mohammad Parhizkar Yaghoobi
کوئیز از جلسه قبل) کارخانه ای در حال خرید قطعه‌ای برای یکی از ماشین‌آلات خود می باشد اگر نرخ بهره 10% برای محاسبات فرض شود، دو مدل از قطعه ماشین در دسترس.
مدارهای منطقی فصل سوم - خصوصیات توابع سويیچی
خوددرمانی در شبکه‌های ناهمگن
دکتر سعید شیری قیداری & فصل 4 کتاب
دانشگاه صنعتی امیرکبیر Instructor : Saeed Shiry &
شرایط مرزی (Boundary Conditions) در مدل سازی آب زیرزمینی
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
دکتر سعید شیری قیداری & فصل 2 کتاب
Bucket sort اكرم منوچهري زهرا منوچهري
Mobile Robot Kinematics
نظریه رفتار برنامه ريزي شده Theory of Planned Behavior
دکتر سعید شیری قیداری & فصل 5 کتاب
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
سمینار SharePoint رانندگی در بزرگراه پرتال ها
فصل ششم مدارهای ترتیبی.
توزیع میانگین نمونه سعید موسوی.
Mobile Robot Kinematics
به نام یکتای دانا فصل اول: متدها و قواعد.
فصل 8 –Process and Deployment
برنامه ریزی خطی پیشرفته (21715( Advanced Linear Programming Lecture 7
ساختمان داده ها مرتب سازی درجی
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
مباني كامپيوتر و برنامه سازي Basics of Computer and Programming
ساختمان داده ها گرافها.
Subsuption Architecture
Planning.
Presentation transcript:

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) Obstacles Free Space Robot x,y

Configuration Space: Accommodate Robot Size Obstacles Free Space Robot (treat as point object) x,y

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 گره ها عبارتند از نقطه شروع و هدف و رئوس چند ضلعی ها یال ها عبارتند از خطوط مستقیمی که از اتصال دو نقطه بدست می آیند و هیچ مانعی را قطع نمیکنند. qinit qGoal

الگوریتم 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. qinit qgoal Qgoal 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 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 با استفاده از یک گراف مجاورت میتوان مسیری را از مبدا به مقصد بدست اورد. start goal

Approximate Cell Decomposition یکی از روشهای متداول در مسیریابی روباتهای متحرک است که بخصوص برای مواردی که محیط بصورت grid based استفاده میشود. فضا به سلولهائی با اندازه ثابت( یا متغیر) تقسیم بندی میشود. در حالت استفاده از سلول با اندازه ثابت ممکن است برخی مسیرها از دست بروند.

Approximate Cell Decomposition

Adaptive Cell Decomposition

Adaptive Cell Decomposition Uniform Quadtree

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

Path / Graph Search Strategies برای جستجو از تکنیک NF1 و یا grassfire استفاده میشود که در آن به هر سلول فاصله آن تا نقطه هدف نسبت داده میشود. سایرروشها: 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) بر روبات اثر میکند عبارت است از: سرعت روبات (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 در این روش دو میدان به صورت زیر تعریف میشود: 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 : n = # of obstacles Pi = perimeter of obstacle i Bug2 Opportunistic (greedy) search Performs better with simple obstacles Path length : ni = # of times the start-goal line intersects obstacle i

The Certainty Grid for Obstacle Representation Probabilistic representation of obstacles in a grid-type world model developed by CMU Especially suited to the accommodation of inaccurate sensor data such as range measurements from ultrasonic sensors The robot's work area is represented by a two-dimensional array of square elements, Each cell contains a certainty value (CV) that indicates the measure of confidence that an obstacle exists within the cell area.

The Certainty Grid for Obstacle Representation CVs are updated by a probability function that takes into account the characteristics of a given sensor. Ultrasonic sensors, for example, have a conical field of view. If an object is detected by an ultrasonic sensor, it is more likely that this object is closer to the acoustic axis of the sensor than to the periphery of the conical field of view. CMU's probabilistic function Cx increases CVs in cells close to the acoustic axis more than CVs in cells at the periphery.

The Certainty Grid for Obstacle Representation In CMU's applications of this method [the mobile robot remains stationary while it takes a panoramic scan with its 24 ultrasonic sensors. Next, the probabilistic function Cx is applied to each of the 24 range readings, updating the certainty grid. Finally, the robot moves to a new location, stops, and repeats the procedure. After the robot traverses a room in this manner, the resulting certainty grid represents a fairly accurate map of the room. A global path-planning method is then employed for off-line calculations of subsequent robot paths.

THE VIRTUAL FORCE FIELD (VFF) METHOD VFF is areal-time obstacle avoidance method for fast-running vehicles It differs from the certainty grid in the way it is built and updated. It does not require the vehicle to stop in front of obstacles VFF uses a two-dimensional Cartesian histogram grid C for obstacle representation. Each cell (i,j) in the histogram grid holds a certainty value, ci,j, that represents the confidence of the algorithm in the existence of an obstacle at that location. VFF increments only one cell in the histogram grid for each range reading, creating a "probability" distribution with small computational overhead

The Virtual Force Field (VFF) For ultrasonic sensors, this cell corresponds to the measured distance d and lies on the acoustic axis of the sensor Robot continuously and rapidly samples each sensor while the vehicle is moving. Thus, the same cell and its neighboring cells are repeatedly incremented. This results in a histogramic probability distribution, in which high certainty values are obtained in cells close to the actual location of the obstacle.

The Virtual Force Field (VFF) As the vehicle moves, a window of ws x ws cells accompanies it. We call this region the "active region" (denoted as C*), and cells that momentarily belong to the active region are called "active cells“ (denoted as c*i,j).

The Virtual Force Field (VFF) Each active cell exerts a virtual repulsive force Fi,j toward the robot. The magnitude of this force is proportional to the certainty value c*i,j and inversely proportional to d , where d is the distance between the cell and the center of the vehicle, and x is a positive real number (we assume x=2 in the following discussion). At each iteration, all virtual repulsive forces are added up to yield the resultant repulsive force Fr. Simultaneously, a virtual attractive force Ft of constant magnitude is applied to the vehicle, "pulling" it toward the target. The summation of Fr and Ft yields the resulting force vector R.

Shortcomings of the VFF Method Sometimes, the robot would not pass through a doorway, because the repulsive forces from both sides of the doorway resulted in a force that pushed the robot away. Another problem arose out of the discrete nature of the histogram grid. In order to efficiently calculate repulsive forces in real-time, the robot's momentary position is mapped onto the histogram grid. Whenever this position changes from one cell to another, drastic changes in the resultant R may be encountered.

Obstacle Avoidance: Vector Field Histogram (VFH) Vector Field Histogram (VFH) is a real time motion planning algorithm proposed by Johann Borenstein and Yoram Koren in 1991. he VFH utilizes a statistical representation of the robot's environment through the so called histogram grid, and therefore place great emphasis on dealing with uncertainty from sensor and modeling errors. Unlike other obstacle avoidance algorithms, VFH takes into account the dynamics and shape of the robot, and returns steering commands specific to the platform. While considered a local path planner, i.e., not designed for global path optimality, the VFH has been shown to produce near optimal paths.

The Problem To simultaneously: Detect, and avoid, unknown obstacles in real-time Steer in the best direction that leads to some target, ktarg Do it as quickly as possible

The Solution: The Vector Field Histogram (VFH) The first step generates a 2D Cartesian coordinate from each range sensor, and increments that position in the histogram grid C Note: this method does not depend on a specific sensor model

The Solution, Continued (2) The next step filters this two dimensional grid down into a one dimensional structure The final step calculates the steering angle and the velocity controls from this structure

First, Some Terminology VCP The center point of the vehicle (robot) Obstacle vector A vector pointing from a cell in C* to the VCP Robot VCP

Step 2: Mapping 2D onto 1D In order to simplify calculations, the 2D grid used in this step is a window of C, with constant dimensions, and centered on the VCP, called the active grid, or C*.

Step 2: Continued (2) This is then mapped onto a 1D structure known as a polar histogram, or H. A polar histogram is a one-dimensional grid comprising of n angular sections with width a Figure included with permission from J. Borenstein

Step 2: Continued (3) In order to generate H, we must first map every cell in C* onto a 1D point in H’s coordinate system

Step 2: Continued (4) H has an arbitrary angular resolution a such that n=360/ a is an integer (e.g., a =5o and n=72). Each sector k corresponds to a discrete angle r quantized to multiples of a, such that r =ka, where k = 0,1,2,...,n-1. Correspondence between c*i,j and sector k is established through

Step 2: Continued (5) Because H at this point contains discrete points, a smoothing function can be applied in order to better approximate the environment

Example: A typical obstacle setup

Example (Continue)

Step 3: Computing the Steering Direction A typical polar histogram contains “peaks”, or sectors with a high polar obstacle density (POD), and “valleys”, sectors that contain low POD’s A valley below some threshold is called a candidate valley

Step 3: Continued (2) From all the candidate valleys, the valley closest to the ktarg is selected Once a valley is selected, it is further necessary to choose a suitable sector within that valley. The type of the valley is dependant on the some consecutive number of sectors, Smax, under the threshold Wide is greater than Smax Narrow is less than Smax

Step 3: Continued (3) In that valley, kn is selected from the first or the last sector, whichever is closer to ktarg Wide valleys: kf = kn ± Smax, which results in kf in the valley Narrow valleys: kf is the last sector in the valley Then q = (kn + kf)/2

Step 3: Selecting the Threshold If set too high, the robot may be too close to an obstacle, and moving too quickly in order to prevent a collision However, if set too low, VFH can miss some valid candidate valleys Generally, the threshold does not need much tuning, unless the application of the robot requires very fast navigation of tightly packed obstacles

Step 3: Speed Controls The robot's maximum speed Vmax can be set at the beginning of a run. The robot tries to maintain this speed during the run unless forced by the VFH algorithm to a lower instantaneous speed V.

Comparison to Potential Fields Influences of a bad sensor read is minimized because it is averaged out with prior data Instability in traveling down a narrow corridor is eliminated because the polar histogram varies only slightly between sonar reads The “repulsive forces” from obstacles cannot counterbalance the “attractive force” from the target and trap the robot in a local minima, as VFH only tries to drive through the best possible valley, regardless if it leads away from the target

Comparison, Continued (2) However, VFH cannot solve all the limitations inherent with the potential field method Nothing prevents the robot from being caught in a real local minima, or a cycle When this occurs, a global path planner must be used to generate intermediary targets for the VFH until it is out of the trap Robot ktarg

سایر روشها 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 planning تجزیه زمانی نرم افزار روبات بر اساس عملیاتی که باید بصورت بلادرنگ انجام شوند و عملیاتی که میتوانند بصورت off line انجام میشوند صورت میپذیرد. 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) combine open-loop and closed-loop execution combine different time scales and representations Typically consists of three components: reactive layer planner integration layer to combine (1) and (2) often called three-layer architectures planner and reactive layers are standard

Strengths Deliberative planners Reactive and behavior-based systems 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 sub-goals, 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