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
Reduced Visibility Graphs
Voronoi Diagram
Voronoi diagram Voronoi diagram of floor map
Voronoi Diagram برخلاف روش visibility graph این روش سعی دارد تا فاصله روبات تا اشیا را حداکثر نماید. برای ساختن Veronoi graphنقاطی از صفحه که فاصله شان ازدوویاچند شیئ یکسان است پیدا شده و به هم متصل میشوند.این نموداز شامل خطوط صاف و منحنی خواهد بود. مسیر یافته شده توسط اینروش با مسیر بهینه فاصله دارد. اجرای این الگوریتم بر روی روبات ساده است: روبات با استفاده از سنسور های فاصله سعی درحداکثر کردن فاصله اش از اشیا اطراف خواهد نمود تا همیشه در مسیر این نمودار قراربگیرد. این خطر وجوددارد که روبات بعلت محدودیت سنسورهایش قادر به اندازه گیری فاصله تا اشیا دور نباشد.
نمودار ورونوی برای مجموعه ای از نقاط
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
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 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