Subsumpční architektura

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Subsumpční architektura je architektura určená pro tvorbu reaktivních agentů (vzhledem k tomu, že jsou tyto agenty ve světě fyzicky přítomny, tak o nich můžeme mluvit také jako o reaktivních robotech). Poprvé byla představena v roce 1986 Rodneym Brooksem a jeho týmem. Jedná se o vrstvenou architekturu, kde jednotlivé stupně reprezentují určité chování. V jednotlivých vrstvách jsou modely chování zachycené konečnými automaty s časováním. Vrstvy mají vzestupnou prioritu. Vyšší vrstvy jsou postavené nad nižšími vrstvami z důvodu vytvoření komplexnějšího chování. Nižší vrstvy mají vyšší prioritu. Fungování systému jako celku je výsledkem interakce jeho jednotlivých částí.

Robot může mít ve spodní vrstvě zabudováno chování: vyhýbej se překážkám a ve vyšší vrstvě: pohybuj se náhodně po okolí. Když narazí na překážku, tak se jí vyhne díky přednosti nižší vrstvy. +more Vrstva, která umožňuje pohyb po okolí se ale vyznačuje komplexnějším chování.

Vlastnosti subsumpční architektury a systémů na ní postavených

Tělesnost Agenty jsou v prostředí nějak ztělesněny, mají tělo se svými senzory a aktuátory a pomocí nich vnímají změny prostředí a reagují na ně.

* Situovanost Agenty jsou součástí svého prostředí, reálného světa, se kterým přicházejí do interakce. Ta pak ovlivňuje agentovo chování.

* Inteligence Inteligence agenta je převážně tvořena střetem agenta s reálným prostředím, jeho reakcemi a podněty.

* Emergence Inteligence systému, jako celku, vzniká emergentně, tedy interakcí jeho jednotlivých částí.

* Žádná explicitní znalostní reprezentace Subsumpční architektura nedisponuje explicitním modelem světa. To znamená, že robot v sobě nemá uložený zjednodušený přehled o světě, který ho obklopuje. +more Výhody jsou zřejmé. Agenty nedělají predikce o světě, a tím pádem mohou velmi dobře fungovat v nepředvídatelném prostředí. Ušetří se čas nutný pro čtení a zápis dat. Dále se uspoří čas algoritmu, který tento model využívá. Také zmizí problémy s modelem světa, který nemusí odpovídat reálnému světu. Má to ale i své nevýhody. Systém je potom čistě reaktivní. To znamená, že pouze reaguje na to, co se ve světě děje. Jinými slovy mu svět určuje, co má udělat.

* Distribuovanost Chování je rozprostřeno mezi konečné automaty, které vykonávají různé úlohy. Díky tomu mohou reagovat na konkurenční události v prostředí. +more Celkové chování je aproximativním součtem jednotlivých konečných automatů. Subsumpční architektura je paralelní a asynchronní, protože konečné automaty operují nezávisle na sobě. Všechny konečné automaty běží neustále, a jelikož mohou mít vlastní časování, tak nepotřebují synchronizaci.

* Vrstevnatost Subsumpční architektura je tvořena vrstvami, kdy každá implementuje určité chování a skládá se z jednoho nebo více konečných automatů. Subsumpční architektura je považována za modulární, protože každý konečný automat vykonává nezávislou úlohu. +more Každý konečný automat má určitý počet vstupních a výstupních linek. Konečné automaty jsou tvořeny procesory, které si navzájem posílají zprávy a jsou schopny uchovávat datové struktury. Procesory fungují absolutně asynchronně a jsou si navzájem rovnocenné. Monitorují svoje vstupy a posílají zprávy na výstupy. Konečný automat bere v potaz vždy nejpozději přijatou zprávu. Z tohoto důvodu může být zpráva ztracena v případě, že nová zpráva dorazí dříve než byla starší zpracována. Uvnitř vrstvy neexistuje kontrola a mezi procesory neexistuje jiná forma komunikace, konkrétně zde není žádná sdílená paměť. Každý modul se stará pouze o svůj úkol. Vyšší vrstvy mají přístup k senzorům a ovlivňují chování nižších vrstev omezováním vstupů nebo potlačováním výstupů určitých konečných automatů na nižších úrovních. To je ten mechanismus, kterým vyšší vrstvy zahrnují roli nižších vrstev.

* Navigace Nejdůležitější schopnost agentů na bázi subsumpční architektury je pohybovat se ve světě dokola a vyhýbat se nehybným i pohyblivým předmětům. Navigace je jednou z hlavních úloh, kterou mají agenti aplikovánu a tato úloha je extrémně reaktivní (ve srovnání s ostatními kognitivními agenty). +more Navigace je většinou prováděna několika vrstvami. Nejnižší modul se vyhýbá objektům (platí to i pro ty, které se náhle objeví) a vyšší úroveň vede agenta určitým směrem a ignoruje překážky. Tato kombinace poskytuje snadný způsob, jak se dostat z místa A do místa B bez explicitního plánování cesty.

* Ostatní Agenty operují v reálném čase a jsou primárně vytvořeny pro pohyb ve skutečném, dynamickém, a komplexním světě.

Důvody pro vznik

Jedním z důvodů pro vytvoření subsumpční architektury byl fakt, že se autoři chtěli vypořádat s následujícími požadavky a potřebami na tvorbu autonomních mobilních robotů.

Mnoho cílů

Robot může mít více cílů, které jsou navzájem konfliktní a je potřeba je nějakým způsobem řešit. Robot se může například snažit dosáhnout určitého místa, které je před ním a zároveň se potřebuje vyhnout překážkám, které jsou na cestě. +more Dále se třeba potřebuje dostat na nějaké místo v co nejkratším čase a zároveň musí šetřit své energetické zdroje. Je tedy zřejmé, že důležitost a priorita cílů je relativní a kontextově závislá. Je určitě důležitější uhnout z kolejí, když jede vlak, než v té době kontrolovat kolejové pražce. Kontrolní systém musí dát přednost prioritním cílům, ale zároveň je nezbytné obstarávat i cíle s nižší prioritou (když robot uhýbá z kolejí - je důležité také zajistit, aby neztratil stabilitu a nespadl).

Více senzorů

Robot může mít více senzorů (kamery, infračervená čidla, akustická čidla, atd. ). +more Všechny senzory mohou potenciálně chybovat. Mimoto často neexistuje přímá analytická závislost mezi hodnotami ze senzoru a požadovanými fyzikálními veličinami. Některé senzory se mohou překrývat v těch oblastech, které měří. Často může dojít k nekonzistentnímu čtení - někdy díky chybě senzoru a jindy kvůli podmínkám měření - v případě, že je senzor použit mimo svoji oblast působnosti. Často není k dispozici přesná analytická charakteristika oblasti působnosti. Robot musí být schopen rozhodování za výše uvedených podmínek.

Robustnost

Robot musí být robustní. Když některé senzory selžou, tak se musí být schopen adaptovat a vypořádat se s tím, že se bude spoléhat pouze na ty fungující. +more Když se okolí drasticky změní, tak by měl být stále schopen dosáhnout alespoň nějakého rozumného chování - raději než zůstat v šoku sedět nebo se bezcílně a nesmyslně potulovat okolo. Vhodné také je, když může pokračovat v případě, že dojde k chybám na jeho procesorech.

Rozšiřitelnost

Když se robotovi přidá více senzorů a schopností, tak potřebuje více kapacity ke zpracování, jinak mohou být jeho původní schopnosti časem narušeny.

Charakteristika

S vědomím výše uvedených skutečností se autoři rozhodli k následujícímu postupu, který tvoří základ subsumpční architektury. Rozložili problém tvorby robota vertikálně na základě požadovaných vnějších projevů řídicího systému spíše než podle vnitřního fungování robota. +more Potom definovali takzvané kompetenční úrovně. Kompetenční úroveň je specifikace požadované úrovně chování robota s ohledem na všechna prostředí, ve kterých se pohybuje. Vyšší úroveň kompetence znamená specifičtější požadovanou úroveň chování. Hlavní myšlenka úrovní kompetence je, že je možné tvořit vrstvy kontrolního systému, které korespondují s danou úrovní kompetence a jednoduše přidat novou vrstvu do existující množiny.

R. Brooks a kolektiv definovali v roce 1986 následující úrovně kompetence:

* 0. vyhni se kontaktu s předměty (je jedno, jestli jsou pohyblivé nebo nehybné) * 1. +more toulej se bezcílně dokola bez střetu s předměty * 2. „prozkoumávej“ svět prohledáváním míst v dosažitelné vzdálenosti * 3. buduj mapu prostředí a plánuj cestu z jednoho místa do druhého * 4. zaznamenávej změny ve statickém prostředí * 5. uvažuj o světě v termínech identifikovatelných objektů a vykonávej úlohy spojené s těmito objekty * 6. formuluj a vykonávej plány, které vyžadují změnu stavu světa, žádoucím způsobem * 7. uvažuj o chování objektů ve světě a modifikuj podle toho plány.

Autoři nejprve vybudovali kompletní ovládací systém robota, který dosahuje kompetencí nulté úrovně a důkladně ho prověřili. Další vrstvu pojmenovali první úroveň kontrolního systému. +more Je schopna nakládat s daty z nulté vrstvy systému a je jí také dovoleno vkládat data do interních rozhraní nulté úrovně, kterými omezuje normální datový tok. Princip je takový, že nultá vrstva pokračuje v běhu a nic netuší nic o tom, že vrstva nad ní občas narušuje datové cesty. Tato vrstva je schopna s pomocí nulté vrstvy dosáhnout kompetencí první úrovně. Stejný proces je opakován k dosáhnutí vyšší úrovně kompetence. Podívej se na figuru 3. Ve chvíli, kdy byla stvořena první vrstva je již k dispozici fungující část kontrolního systému. Další vrstvy mohou být přidány později a systém nemusí být měněn. Autoři tvrdí, že tato architektura přirozeně vede k řešení problémů mobilních robotů, které byly vykresleny na začátku této sekce, následujícím způsobem.

* Mnoho cílů Jednotlivé vrstvy mohou pracovat na jednotlivých cílech souběžně. Mechanismus potlačení pak zprostředkovává akce, které jsou brány v úvahu. +more Výhoda je, že zde nemusí být předchozí rozhodnutí, který cíl bude uskutečněn.

* Více senzorů Všechny senzory nemusí být součástí centrální reprezentace. Do centrální reprezentace může být přidáno pouze takové čtení senzorů, které je identifikováno jako extrémně spolehlivé. +more V té samé chvíli však mohou být hodnoty senzoru používány robotem. Ostatní vrstvy je mohou zpracovávat a užívat výsledky k dosažení svých vlastních cílů, nezávisle na tom, jak s nimi nakládají jiné vrstvy.

* Robustnost Existence více senzorů evidentně přidává na robustnosti systému, když jejich výsledky mohou být rozumně využity. V subsumpční architektuře je k dispozici ještě další zdroj robustnosti. +more Nižší vrstvy, které byly dobře prověřeny, pokračují v běhu, i když jsou přidány vyšší vrstvy. Protože vyšší vrstva může potlačit pouze výstupy nižších vrstvy aktivním zasahováním pomocí náhradních dat, tak v případech, kdy nemůže vyprodukovat výsledky vhodným způsobem budou nižší úrovně stále produkovat výsledky, které jsou rozumné, třebaže jsou na nižší úrovni kompetence.

* Rozšiřitelnost Zřejmý způsob, jak řešit rozšiřitelnost, je nechat každou novou vrstvu běžet na vlastním procesoru.

Rozšíření

Brooks v roce 1989 dále rozpracoval subsumpční architekturu hlavně v oblasti omezování vstupů a potlačování výstupů konečnými automaty. V roce 1991 Brooks přišel s implementací hormonálního systému. +more Jednotlivé vrstvy měly být potlačeny nebo omezeny přítomností nebo absencí hormonu. V roce 1992 Mataric přichází s myšlenkou architektury založené na chování. Tato architektura měla řešit chybějící explicitní reprezentaci světa bez ztráty robustnosti a reaktivity.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top