Inteligentne Systemy Autonomiczne Roboty Funkcje Motoryczne W oparciu
Inteligentne Systemy Autonomiczne Roboty Funkcje Motoryczne W oparciu o wykład Dr. Hadi Moradi University of Southern California Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie
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 • Spójrz na 9 wartości zewnętrznych sonaru – które są najbliższe? Przypadek 1: Jeśli sonary 12, 13 lub 14 to skręć w lewo o 20 st/sec. 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. 2 3 4 1 0 15 14 13 12 Przykład Zachary Dodds
Przykład 0: Owady Pajak robot planowanie i rozumowanie identyfikacja obiektu zbudowanie mapy poznawanie eksploracja unikanie przedmiotów działanie „behawioralna” dekompozycja zadania wyczuwanie Rodney Brooks @ MIT (1985) Insekt robot Zauważ: równoległe operacje
„behawioralna” dekompozycja zadania działanie kontrola motoru wykonanie zadania planowanie modelowanie świata planowanie i rozumowanie identyfikacja obiektu zbudowanie mapy poznawanie eksploracja unikanie przedmiotu działanie Metoda reakcyjna percepcja „funkcjonalna” dekompozycja zadania wyczuwanie Metoda Celowa wyczuwanie Przypomnienie: Celowość
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 Wykonane jako jedno zadanie Image courtesy of Boulette’s robotics
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 Wykonane jako dwa zadania Image courtesy of Boulette’s robotics
Przykład 2: Arbitraż • Co będzie jeśli dodamy trzecie zadanie i więcej – Będzie poruszał się do przodu aż uderzy w przeszkodę – Następnie ominie przeszkodę i będzie kontynuował ruch – Podąży w kierunku wskazanym przez kompas
Przykład 2: Arbitraż • Zadanie: – Pewne problemy przechodzą z jednego zadania do drugiego (sterowanie silnikiem). Image courtesy of Boulette’s robotics
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ż Image courtesy of Boulette’s robotics
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 brak wody do góry nogami +woda Szpara Jasno Ciemno Do góry s s s pełzanie
Arbitraż • Arbitration: rozwiązuje kolidujące reakcje bodziec odpowiedź: – Subsumption: Zwycięzca bierze wszystko (Rodney Brooks, MIT, 1985) – Pola potencjałów: Ważona suma odpowiedzi. Big Dog robot – Boston Dynamics (3 min 28 sek)
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. • 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
Architektura Podporządkowana • Q: Jak wprowadzić priorytet w sprzęcie?
Architektura Podporządkowana • Wyższy poziom steruje niższymi warstwami: – Hamowanie: powstrzymanie transmisji – Narzucanie: zastępuje wiadomość wiadomością narzuconą – Zerowanie: przywraca zachowanie do stanu pierwotnego
Architektura Podporządkowana • Przykład: – Niższe poziomy: Umiejętności przetrwania i podstawowe funkcje motoryczne • Ruch • Unikanie przeszkód – Złożone zachowania • Szukanie • Zbieranie • Buduj na warstwie poprzedniej (budowa warstwowa) • Wszystkie warstwy są typu bodziec-reakcja, bez planowania
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 Ładowanie Dleft Drear Dfront Dright – Jedna fotokomórka: • Kieruje do źródła światła Przeszkoda
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 Czujniki Omijanie Silniki
Przykład 3: Subsumption • Łączenie dwóch pierwszych warstw Czujniki Omijanie Wędrowanie S Silniki
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ę) Fotokom. Bateria Ładowanie Silniki
Przykład 3: Subsumption • Łączenie warstw Fotokom. Bateria Ładowanie Czujniki Unikanie Wędrowanie S S Silniki
Przykład 3: Subsumption • Łączenie warstw (lepszy model) Fotokom. Bateria Ładowanie Czujniki Unikanie Wędrowanie S S Silniki
Architektura Podporządkowana • 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 : 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
Przykład 4: Robot Dywanowy • Wyjścia – Motoryczne (różnicowy) – Brzęczyk • Patynie: Jaka hierarchie działań chciałbyś określić dla tego robota?
Pytania?
Roboty Funkcje Motoryczne Uzupełnienia
Example 5: Brook’s 3 Layer
Another Example runaway behavior
Another Example wander behavior runaway behavior
Another Example navigate behavior wander behavior runaway behavior
AFSM: Augmented Finite State Machine • Subsumption composed of networks of finite state machines augmented with timers – Timers allow state change after a predefined period of time • An AFSM can: – be in one state at a time. – Receive one or more inputs – Send one or more outputs
AFSM and Layers • Layers are connected so the higher level can suppress inputs or inhibit the outputs of a lower layer. • Coupling between layers, even AFSMs, can be: – Through wires – Through the world (an action based the output of a lower level) • Idea: Instead of storing the world internally, use it externally.
Example 6 Turn Right Wander Move Forward Avoid Turn Left A robot’s different states and transition between states.
Potential Fields • Vector summation Charger Dleft Drear n As the battery level drops, the vector toward light gets bigger Dfront Dright Obstacle
Reactive Control • Motivated by animal behavior • Advantages: – Real-time – Less sensitive to imperfect data – No need for internal representation • Disadvantage: – Hard to achieve goal-oriented tasks – Limited intelligence – No learning – World and goal must not change
Designing in Subsumption • Qualitatively specify the overall behavior needed for the task • Decompose that into specific and independent behaviors (layers) • The layers should be bottom-up and consisting of disjoint actions • Ground low-level behaviors in the robot’s sensors and effectors • Incrementally build, test, and add
World is its own best model • Base for reactive systems • Use the world as its own best model! – Its complete – No need for internal representation • • Large Slow Expensive Static • Can we always do this? i. e. using world rather than an internal representation.
Subsumption Conclusion • Advantages: – Reactivity • Speed • Real-time (while upper layers do long range planning) – Parallelism – Incremental design – Robustness – Generality • Disadvantages: – Inflexibility at run-time – Expertise needed in design – Can result in spaghetti control system
Reactive control: Programming Hints • DO NOT HACK AIMLESSLY – Before you do any coding: • Think about the problem. • Decompose the necessary actions into behaviors. • Understand how those behaviors relate to one another and under what conditions they should be active. • Design a method for selecting and executing appropriate behaviors. • Completely record your ideas in your notebook before you code. • Even bad ideas are "good" if you gain experience from their failure. • Be sure to keep good notes so that experience isn't lost.
Reactive control: Programming Hints • KEEP IT SIMPLE – Reactive controllers can get out of hand quickly. – Become hard to debug. – Keep your solution as simple as possible. • A solution based on three basic behaviors/competencies, for example, is better than one with six. – Clean flow of control is superior to a rat's nest of callbacks and dependencies. – Remember all that advice about avoiding spaghetti code? It holds here ten fold.
Reactive control: Programming Hints • TEST, AND TEST AGAIN – Test your solutions. • Not only simple examples. – Design your own test example. – Don't select your tests randomly. • Consider your solution and try to predict if there any situations that may be difficult for it to deal with. – Design a test to exercise the controllers in any scenarios that concern you. – Be sure to record your speculations as well as the results of any tests you do in your notebook. – Trade tests and scenarios with other students in the class.
Reactive control: Programming Hints • CONSTANTS AREN'T -- VARIABLES WON'T – Noise in sensors. • Sample sensors for a short period of time and averaging them to get "real" values. • Check sensors against ranges of values, rather than against specific numbers • Checking a noisy sensor with an equality relation is a recipe for disaster if the sensor is noisy – Commands are not performed exactly • wheels can slip – Avoid commanding large motions.
Practice Example: Subsumption Design • A robot capable of moving forward while not colliding with anything could be represented with a single layer, Level 0. • The robot has multiple sonars, each pointing in a different direction. • The robot has two actuators, one for driving forward and one for turning.
Practice Example: Subsumption Design
Practice Example: Subsumption Design • Consider building a robot which actually wandered around instead of sitting motionless, but was still able to avoid obstacles. • Under subsumption, a second layer of competence (Level 1) would be added. • Level 1 consists of a WANDER module which computes a random heading every n seconds. • Adding a new avoid module offers an opportunity to create a more sophisticated response to obstacles.
Practice Example: Subsumption Design When to accept the heading vector from which layer?
Practice Example: Subsumption Design • The issue now appears to be when to accept the heading vector from which layer. • Subsumption makes it simple: the output from the higher level subsumes the output from the lower level. • Subsumption is done in one of two ways: – Inhibition – Suppression
Practice Example: Subsumption Design • Now consider adding a third layer to permit the robot to move down corridors. • The LOOK module examines the sonar polar plot and identifies a corridor. • The STAYINMIDDLE subsumes the WANDER module.
Practice Example: Subsumption Design
- Slides: 65