Roboty Funkcje Motoryczne

65
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

description

Roboty Funkcje Motoryczne. Inteligentne Systemy Autonomiczne. 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 - PowerPoint PPT Presentation

Transcript of Roboty Funkcje Motoryczne

Page 1: 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

Page 2: Roboty Funkcje  Motoryczne

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

Page 3: Roboty Funkcje  Motoryczne

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

Page 4: Roboty Funkcje  Motoryczne

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:

Page 5: Roboty Funkcje  Motoryczne

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

Page 6: Roboty Funkcje  Motoryczne

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

Page 7: Roboty Funkcje  Motoryczne

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

Page 8: Roboty Funkcje  Motoryczne

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

Page 9: Roboty Funkcje  Motoryczne

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

Page 10: Roboty Funkcje  Motoryczne

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ę

Page 11: Roboty Funkcje  Motoryczne

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?

Page 12: Roboty Funkcje  Motoryczne

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

Page 13: Roboty Funkcje  Motoryczne

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

Page 14: Roboty Funkcje  Motoryczne

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

Page 15: Roboty Funkcje  Motoryczne

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

Page 16: Roboty Funkcje  Motoryczne

Przykład 2: Arbitraż

• Zadanie:– Pewne problemy

przechodzą z jednego zadania do drugiego (sterowanie silnikiem).

Image courtesy of Boulette’s robotics

Page 17: Roboty Funkcje  Motoryczne

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)

Page 18: Roboty Funkcje  Motoryczne

Przykład 2: Arbitraż

Image courtesy of Boulette’s robotics

Page 19: Roboty Funkcje  Motoryczne

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

Page 20: Roboty Funkcje  Motoryczne

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).

Page 21: Roboty Funkcje  Motoryczne

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

Page 22: Roboty Funkcje  Motoryczne

Przykład 2+1: Ślimak

Do góry

Ciemno

Jasno

Szparabrak wody

do góry nogami+woda

s

s

s

pełzanie

Page 23: Roboty Funkcje  Motoryczne

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)

Page 24: Roboty Funkcje  Motoryczne

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

Page 25: Roboty Funkcje  Motoryczne

Architektura Podporządkowana

• Q: Jak wprowadzić priorytet w sprzęcie?

Page 26: Roboty Funkcje  Motoryczne

• 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

Page 27: Roboty Funkcje  Motoryczne

• 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

Page 28: Roboty Funkcje  Motoryczne

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

Page 29: Roboty Funkcje  Motoryczne

Przykład 3: Subsumption

• Wędrowanie dookoła:– Nieprzerwany ruch

Wędrowanie Silniki

Page 30: Roboty Funkcje  Motoryczne

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

Page 31: Roboty Funkcje  Motoryczne

Przykład 3: Subsumption

• Łączenie dwóch pierwszych warstw

OmijanieCzujniki

Wędrowanie SilnikiS

Page 32: Roboty Funkcje  Motoryczne

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.

Page 33: Roboty Funkcje  Motoryczne

Przykład 3: Subsumption

• Łączenie warstw

ŁadowanieBateria

Fotokom.

UnikanieCzujniki S

Wędrowanie SilnikiS

Page 34: Roboty Funkcje  Motoryczne

Przykład 3: Subsumption

• Łączenie warstw (lepszy model)

ŁadowanieBateria

Fotokom.

UnikanieCzujniki S

Wędrowanie SilnikiS

Page 35: Roboty Funkcje  Motoryczne

• 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

Page 36: Roboty Funkcje  Motoryczne

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.

Page 37: Roboty Funkcje  Motoryczne

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

Page 38: Roboty Funkcje  Motoryczne

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

Page 39: Roboty Funkcje  Motoryczne

Przykład 4: Robot DywanowyPrzykład 4: Robot Dywanowy

Page 40: Roboty Funkcje  Motoryczne

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?

Page 41: Roboty Funkcje  Motoryczne

Pytania?

Page 42: Roboty Funkcje  Motoryczne

Roboty Funkcje Motoryczne

Uzupełnienia

Page 43: Roboty Funkcje  Motoryczne

Example 5: Brook’s 3 Layer

Page 44: Roboty Funkcje  Motoryczne

Another Example

runaway behavior

Page 45: Roboty Funkcje  Motoryczne

Another Example

runaway behavior

wander behavior

Page 46: Roboty Funkcje  Motoryczne

Another Example

runaway behavior

wander behavior

navigate behavior

Page 47: Roboty Funkcje  Motoryczne

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

Page 48: Roboty Funkcje  Motoryczne

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.

Page 49: Roboty Funkcje  Motoryczne

Example 6

A robot’s different states and transition between states.

Wander Avoid

Turn Right

Turn Left

Move Forward

Page 50: Roboty Funkcje  Motoryczne

Potential FieldsPotential Fields

• Vector summation

Obstacle

Drear Dfront

Dleft

Dright

Charger

As the battery level drops, the vector toward light gets bigger

Page 51: Roboty Funkcje  Motoryczne

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

Page 52: Roboty Funkcje  Motoryczne

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

Page 53: Roboty Funkcje  Motoryczne

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.

Page 54: Roboty Funkcje  Motoryczne

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

Page 55: Roboty Funkcje  Motoryczne

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.

Page 56: Roboty Funkcje  Motoryczne

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.

Page 57: Roboty Funkcje  Motoryczne

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.

Page 58: Roboty Funkcje  Motoryczne

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.

Page 59: Roboty Funkcje  Motoryczne

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.

Page 60: Roboty Funkcje  Motoryczne

Practice Example: Subsumption Design

Page 61: Roboty Funkcje  Motoryczne

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.

Page 62: Roboty Funkcje  Motoryczne

Practice Example: Subsumption Design

When to accept the heading vector from which layer?

Page 63: Roboty Funkcje  Motoryczne

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

Page 64: Roboty Funkcje  Motoryczne

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.

Page 65: Roboty Funkcje  Motoryczne

Practice Example: Subsumption Design