Architektury subsumpcji

https://aie24.pl/

Architektura subsumpcji jest strukturą do składania sterowników reaktywnych z automatów skończonych. Węzły w tych maszynach mogą zawierać testy dla pewnych zmiennych czujnika, w którym to przypadku ślad wykonania automatu skończonego jest uzależniony od wyniku takiego testu. Łuki mogą być oznaczone komunikatami, które będą generowane podczas ich przechodzenia i które są wysyłane do silników robota lub do innych maszyn skończonych. Dodatkowo automaty skończone posiadają wewnętrzne liczniki czasu (zegary), które kontrolują czas potrzebny do przebycia łuku. Powstałe maszyny nazywane są rozszerzonymi maszynami skończonymi (AFSM), gdzie rozszerzenie odnosi się do użycia zegarów. Przykładem prostego AFSM jest czterostanowa maszyna, o której właśnie mówiliśmy, pokazana na rysunku (b).

Ten AFSM implementuje sterownik cykliczny, którego wykonanie w większości nie opiera się na sprzężeniu zwrotnym z otoczenia. Faza wymachu do przodu jednak opiera się na sprzężeniu zwrotnym z czujnika. Jeśli noga utknęła, co oznacza, że ​​nie udało mu się wykonać zamachu do przodu, robot cofa nogę, podnosi ją nieco wyżej i ponownie próbuje wykonać zamach do przodu. W ten sposób kontroler jest w stanie reagować na nieprzewidziane okoliczności wynikające z interakcji robota i jego otoczenia. Architektura subsumcji oferuje dodatkowe elementy podstawowe do synchronizacji AFSM i łączenia wartości wyjściowych wielu, potencjalnie sprzecznych AFSM. W ten sposób umożliwia programiście komponowanie coraz bardziej złożonych sterowników w sposób oddolny. W naszym przykładzie możemy zacząć od AFSM dla poszczególnych odnóg, a następnie AFSM dla  koordynowanie wielu nóg. Ponadto możemy zaimplementować zachowania wyższego poziomu, takie jak unikanie kolizji, które może obejmować cofanie się i skręcanie. Pomysł komponowania sterowników robotów z AFSM jest dość intrygujący. Wyobraź sobie, jak trudne byłoby wygenerowanie tego samego zachowania za pomocą dowolnego algorytmu planowania ścieżki w przestrzeni konfiguracji opisanego w poprzedniej sekcji. Najpierw potrzebowalibyśmy dokładnego modelu terenu. Przestrzeń konfiguracyjna robota z sześcioma nogami, z których każda jest napędzana przez dwa niezależne silniki, ma łącznie 18 wymiarów (12 wymiarów dla konfiguracji nóg oraz sześć dla lokalizacji i orientacji robota względem otoczenia). Nawet gdyby nasze komputery były wystarczająco szybkie, aby znaleźć ścieżki w tak wielowymiarowych przestrzeniach, musielibyśmy się martwić o nieprzyjemne efekty, takie jak zjeżdżanie robota po zboczu. Z powodu takich efektów stochastycznych pojedyncza ścieżka przez przestrzeń konfiguracyjną byłaby prawie na pewno zbyt krucha, a nawet regulator PID może nie poradzić sobie z takimi nieprzewidzianymi okolicznościami. Innymi słowy, celowe generowanie zachowań ruchowych jest w niektórych przypadkach po prostu zbyt złożonym problemem dla współczesnych algorytmów planowania ruchu robotów. Niestety architektura subsumpcji ma swoje własne problemy. Po pierwsze, AFSM są napędzane przez surowe dane wejściowe z czujnika, układ, który działa, jeśli dane z czujnika są wiarygodne i zawierają wszystkie informacje niezbędne do podejmowania decyzji, ale zawodzi, jeśli dane z czujników muszą być integrowane w nietrywialny sposób w czasie. Kontrolery w stylu subsumpcji były zatem stosowane głównie do prostych zadań, takich jak podążanie za ścianą lub poruszanie się w kierunku widocznych źródeł światła. Po drugie, brak namysłu utrudnia zmianę celów robota. Robot z architekturą subsumpcji zwykle wykonuje tylko jedno zadanie i nie ma pojęcia, jak modyfikować swoje elementy sterujące, aby dostosować je do różnych celów . Po trzecie, w wielu rzeczywistych problemach polityka, której chcemy, jest często zbyt złożona, aby ją jednoznacznie zakodować. Pomyśl o przykładzie , gdzie autonomiczny samochód musi negocjować zmianę pasa z kierowcą. Możemy zacząć od prostej polityki, która idzie na pas docelowy. Ale kiedy testujemy samochód, dowiadujemy się, że nie każdy kierowca na docelowym pasie zwolni, aby wpuścić samochód. Możemy wtedy dodać trochę więcej złożoności: sprawić, by samochód ruszył w kierunku docelowego pasa, poczekać na formularz odpowiedzi kierowcy na tym pasie, a następnie kontynuuj lub cofaj się z powrotem. Ale potem testujemy samochód i zdajemy sobie sprawę, że popychanie musi nastąpić z inną prędkością w zależności od prędkości pojazdu na docelowym pasie, od tego, czy na docelowym pasie znajduje się inny pojazd, od tego, czy jest jakiś pojazd. za samochodem na początku i tak dalej. Liczba warunków, które musimy wziąć pod uwagę, aby określić właściwy kierunek działania, może być bardzo duża, nawet dla tak zwodniczo prostego manewru. To z kolei stawia wyzwania skalowalności dla architektur opartych na subsumpcji. Podsumowując, robotyka jest złożonym problemem z wieloma podejściami: deliberatywnym, reaktywnym lub ich mieszanką; oparte na fizyce, modelach kognitywnych, danych lub ich mieszaninie. Właściwe podejście jest nadal przedmiotem debaty, badań naukowych i umiejętności inżynieryjnych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *