Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie W oparciu o wykład Dr. Hadi Moradi University of Southern California Roboty Funkcje Motoryczne
Zakres wykładu Proste sterowanie reakcyjne Sterowanie reakcyjne (reactive control) Arbitraż Przejmowanie cech (Subsumption) Rozszerzone Automaty Skończone – (AFSM: Augmented Finite State Machine) Pola potencjałów Trochę sugestii na temat programowania kontrolerów reakcyjnych
Proste sterowanie reakcyjne Zamknięta pętla pomiędzy sensorami a efektorami robota Brak wewnętrznej reprezentacji dla zwykłego sterowania reakcyjnego Składa się z: –Sytuacji (bodźce) –Akcji (reakcja) Najprostsza forma: sytuacje wykluczające się wzajemnie lub unikalne –Jedna akcja w odpowiedzi na każdą sytuacje: If( bumper == 1) && (timer < 10 ) then avoid() If( bumper == 0) && (timer==10) then seek_light() –Zwane niezależnymi regułami zachowania
Proste sterowanie reakcyjne Najprostsza forma: –Podzielić postrzegany świat na zbiory wzajemnie wykluczających się sytuacji –Rozpoznać sytuację w której się jest –Zareagować na nią Ruch weza:
Przykład: Sterowanie jako funkcja postrzeganych danych Przypadek 1: Jeśli sonary 12,13 lub 14 to skręć w lewo o 20 st/sec. Spójrz na 9 wartości zewnętrznych sonaru – które są najbliższe? Przypadek 2: Jeśli sonary 15, 0, lub 1 skręć w lewo o 40 st./sec. Przypadek 3: Jeśli sonary 2, 3, lub 4 skręć w prawo o 20 st./sec Przykład Zachary Dodds
Przykład 0: Owady Rodney MIT (1985) unikanie przedmiotów eksploracja poznawanie zbudowanie mapy identyfikacja obiektu planowanie i rozumowanie wyczuwanie działanie „behawioralna” dekompozycja zadania Zauważ: równoległe operacje Insekt robot Pajak robot
Metoda Celowa Metoda reakcyjna Przypomnienie: Celowość wyczuwanie działanie percepcja modelowanie świata planowanie wykonanie zadania kontrola motoru „funkcjonalna” dekompozycja zadania unikanie przedmiotu eksploracja poznawanie zbudowanie mapy identyfikacja obiektu planowanie i rozumowanie wyczuwanie działanie „behawioralna” dekompozycja zadania
Proste reagowanie: Przykład 1 Unikanie przeszkód –Ruchome przeszkody –Stałe przeszkody Przeszkody: –Prawa strona Ruch w lewo po zakrzywionej ścieżce –Lewa strona Ruch w prawo po zakrzywionej ścieżce
Proste sterowanie reakcyjne Zadanie: Potrzebujemy kombinację wszystkich możliwych czuciowych sytuacji. Pytanie: Ile wynosi liczba kombinacji dla ‘n’ czujników? Odpowiedz: Jeśli czujniki binarne: 2 n Planowanie uniwersalny lub całkowite odwzorowanie: Wszystkie możliwe sposoby + optymalne akcje dla każdego sposobu Planowanie reakcyjne jest w czasie kompilacji, nie w czasie wykonywania
Proste sterowanie reakcyjne Wady: –Trudno określić wszystkie możliwe sytuacje –Ogromna przestrzeń czuciowa/wejsciowa –Ogromna tabela relacji sytuacji do akcji Wolniejsze wyszukiwanie Większe zapotrzebowanie na pamięć Rozwiązanie: –Mały wybrany zbiór specyficznych sytuacji i akcji –Automatyczne akcje pokrywające resztę
Zachowanie zależne Automatyczne ogólne akcje pokrywające większość sytuacji –Dopóki (prawda) jedz_naprzód () Wyspecjalizowane reguły dla szczególnych sytuacji –jeśli(zderzak==1) wtedy unikaj() Zauważ: Wiele reguł może być wywołanych jednocześnie. Q: Która określa wyjście?
Trochę pytań Jak uczyć się automatycznie? –Wygeneruj pary sytuacyjno-akcyjne Jak automatycznie zmniejszać przestrzeń wejść? Autonomia działania –Tokyo Lecture 3 time 1:24:00-1:32:00
Przykład 2: Arbitraż Chcemy zaprogramować mobilnego robota który będzie: –Poruszał się do przodu aż uderzy w przeszkodę –Następnie ominie przeszkodę i będzie kontynuował ruch Image courtesy of Boulette ’ s robotics Wykonane jako jedno zadanie
Arbitraż Wiele reguł może być wywołanych jednocześnie –Reguły mogą wygenerować kolidujące rozkazy dla efektorów. –Jak zdecydować którą regułę wykonać? Rozwiązanie: –Ustalona hierarchia priorytetów –Hierarchia dynamiczna (zmienia się w czasie działania) –Uczenie (priorytety są poznawane w trakcie działania) –Pole potencjału (suma wektorów)
Przykład 2: Arbitraż Zadanie arbitra: rozdział zadań Tylko podprogram sterujący silnikiem ma bezpośredni dostęp do silnika. –Jeśli rozkaz_silnika = rozkaz_naprzód wtedy włącza ruch naprzód Anulowanie ma najwyższy priorytet
Przykład 2: Arbitraż Zalety –Nie ma konfliktu dostępu do silnika –Dostęp przekazany do najwyższych priorytetów –Złożoność programu nie rośnie gwałtownie wraz ze wzrostem liczby zadań Jest to nazywane architekturą podporządkowaną (subsumption).
Przykład 2+1: Ślimak Wyjada glony ze skał –Na skałach blisko wody Idzie wyżej ponad wodę Pozostaje żywy: –Pozostaje w szczelinach Szuka ciemności Jeśli jest do góry nogami w wodzie –Szuka światła Zmienia położenie z prądem fal
Przykład 2+1: Ślimak Do góry Ciemno Jasno Szpara brak wody do góry nogami +woda s s s pełzanie
Architektura Podporządkowana (Subsumption) Architektura Podporządkowana jest metodologią rozwoju robotów ze sztuczną inteligencją. Jest ona w dużym stopniu związana z robotyką bazującą na zachowaniu. Termin został wprowadzony przez Rodney Brooks i jego kolegów w 1986.Rodney Brooks Architektura Podporządkowana była szeroko stosowana w autonomicznych robotach i w innych zastosowaniach sztucznej Inteligencji czasu rzeczywistego. Architektura podporzadkowana –Tokyo Lecture 5 time 1:10:50-1:18:00
Przykład 3: Subsumption Zbuduj robota unikającego przeszkód przy poszukiwaniu światła: –Dwa silniki: napęd i sterowanie –4 czujniki odległości Dleft, Dright, Dfront, Drear –Jedna fotokomórka: Kieruje do źródła światła Przeszkoda Drear Dfront Dleft Dright Ładowanie
Przykład 3: Subsumption Wędrowanie dookoła: –Nieprzerwany ruch Wędrowanie Silniki
Przykład 3: Subsumption Unikanie przeszkody: –Unikanie w określonej odległości –Obrót w prawo jeśli przeszkoda z lewej strony –Obrót w lewo jeśli z prawej Żadnego ustalonego kierunku, tylko w prawo albo w lewo Omijanie CzujnikiSilniki
Przykład 3: Subsumption Łączenie dwóch pierwszych warstw Omijanie Czujniki Wędrowanie Silniki S
Przykład 3: Subsumption Szukanie światła w celu podładowania –Jeśli baterie są słabe, –Idź w kierunku światła (wykorzystaj fotokomórkę) Ładowanie BateriaSilniki Fotokom.
Przykład 3: Subsumption Łączenie warstw Ładowanie Bateria Fotokom. Unikanie Czujniki S Wędrowanie Silniki S
Przykład 3: Subsumption Łączenie warstw (lepszy model) Ładowanie Bateria Fotokom. Unikanie Czujniki S Wędrowanie Silniki S
Hierarchia warstw kontrolnych –Najniższe warstwy zajmują się najbardziej podstawowymi zadaniami –Ostatnio dodane warstwy wykorzystują już istniejące. –Każdy komponent sprzyja i nie przeszkadza silnemu powiązaniu między wyczuwaniem i działaniem. Motywowana przez rozwój Budowana od podstaw Komponenty wykonują zadania (bez planowania) Zadania równoległe Żadnych potrzeb dla wewnętrznych modeli Architektura Podporządkowana
Architektura Podporządkowana : Warstwy Rozpoczynamy od podstawowych funkcji motorycznych Budujemy nowe warstwy na starych Istniejące warstwy niższego poziomu pozostają bez zmian Rozwój przyrostowy: –Buduj –Testuj –Dodaj Niższe warstwy kontynuują działanie niezależnie do wyższych warstw Jeśli zachowania wyższego poziomu zawiodą, wówczas powrót do poziomu podstawowego. Tolerancja błędu.
Współdziałanie Warstw Wyższe warstwy zakładają istnienie niższych –Odbierają sygnały sensoryczne z niższych warstw –Hamują wyjścia niższych warstw –Blokują wejścia niższych warstw Wyjście z wyższej warstwy może podporządkować wyjścia niższych warstw –Podporządkowanie wyjścia = arbitraż reguł –Wyjścia kontrolowane przez hierarchie zachowań Inteligentne roboty (prof. Masayuki Inaba U. Tokyo) –Tokyo Lecture 3 time 1:33:30-1:53:20
Przykład 4: Robot Dywanowy Wiele sensorow: –Swiatla –Odległości na podczerwień –Zderzak –Dźwięku Wiele zachowan: –Jazda –Wodzenie za światłem –Odjeżdżanie –Unikanie
Przykład 4: Robot Dywanowy
Wyjścia –Motoryczne (różnicowy) –Brzęczyk Patynie: Jaka hierarchie działań chciałbyś określić dla tego robota?