Roboty Funkcje Motoryczne
description
Transcript of Roboty Funkcje Motoryczne
Roboty Funkcje Motoryczne
Janusz A. Starzyk Wyzsza Szkola Informatyki i Zarzadzania w Rzeszowie
W oparciu o wykład Dr. Hadi Moradi
University of Southern California
Inteligentne Systemy Autonomiczne
Zakres wykładu 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 reakcyjneProste 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 reakcyjneProste 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.
012
3
4
1514
13
12
Przykład Zachary Dodds
Przykład 0: Owady
Rodney Brooks @ MIT (1985)
unikanie przedmiotów
eksploracja
poznawanie
zbudowanie mapy
identyfikacja obiektu
planowanie i rozumowanie
wycz
uw
ani
e
dzi
ała
nie„behawioralna” dekompozycja zadania
Zauważ: równoległe operacje
Insekt robot
Pajak robot
Metoda Celowa
Metoda reakcyjna
Przypomnienie: Celowość
wycz
uw
an
ie
dzi
ała
nie
perc
epcj
a
modelo
wanie
św
iata
pla
now
anie
wyko
nanie
za
dania
kontr
ola
m
oto
ru
„funkcjonalna” dekompozycja zadania
unikanie przedmiotu
eksploracja
poznawanie
zbudowanie mapy
identyfikacja obiektu
planowanie i rozumowanie
wycz
uw
ani
e
dzi
ała
nie
„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 reakcyjneProste sterowanie reakcyjne
• Zadanie: Potrzebujemy kombinację wszystkich możliwych czuciowych sytuacji.
• Pytanie: Ile wynosi liczba kombinacji dla ‘n’ czujników?
• Odpowiedz: Jeśli czujniki binarne: 2n
• 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 reakcyjneProste 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żneZachowanie 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ń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
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 dwa zadania
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ż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
Do góry
Ciemno
Jasno
Szparabrak wody
do góry nogami+woda
s
s
s
pełzanie
Arbitraż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 (3min 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?
• 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
Architektura Podporządkowana
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
OmijanieCzujniki Silniki
Przykład 3: Subsumption
• Łączenie dwóch pierwszych warstw
OmijanieCzujniki
Wędrowanie SilnikiS
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ę)
ŁadowanieBateria Silniki
Fotokom.
Przykład 3: Subsumption
• Łączenie warstw
ŁadowanieBateria
Fotokom.
UnikanieCzujniki S
Wędrowanie SilnikiS
Przykład 3: Subsumption
• Łączenie warstw (lepszy model)
ŁadowanieBateria
Fotokom.
UnikanieCzujniki S
Wędrowanie SilnikiS
• 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 : WarstwyArchitektura 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 WarstwWspół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 DywanowyPrzykł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 DywanowyPrzykład 4: Robot Dywanowy
Przykład 4: Robot DywanowyPrzykł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
runaway behavior
wander behavior
Another Example
runaway behavior
wander behavior
navigate behavior
AFSM: Augmented Finite State Machine
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 LayersAFSM 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
A robot’s different states and transition between states.
Wander Avoid
Turn Right
Turn Left
Move Forward
Potential FieldsPotential Fields
• Vector summation
Obstacle
Drear Dfront
Dleft
Dright
Charger
As the battery level drops, the vector toward light gets bigger
Reactive ControlReactive 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 HintsReactive 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 HintsReactive 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 HintsReactive control:
Programming Hints
• TEST, 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 are 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 HintsReactive 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