Roboty funkcje motoryczne
Sponsored Links
This presentation is the property of its rightful owner.
1 / 65

Roboty Funkcje Motoryczne PowerPoint PPT Presentation


  • 111 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Roboty Funkcje Motoryczne

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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

  • 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:


15

1

14

2

13

3

12

4

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, lub1 skręć w lewo o 40 st./sec.

Przypadek 3: Jeśli sonary 2, 3, lub 4 skręć w prawo o 20 st./sec.

0

Przykład Zachary Dodds


Przykład 0: Owady

Pajak robot

Rodney Brooks @ MIT (1985)

planowanie i rozumowanie

„behawioralna” dekompozycja zadania

identyfikacja obiektu

wyczuwanie

zbudowanie mapy

działanie

poznawanie

eksploracja

unikanie przedmiotów

Insekt robot

Zauważ: równoległe operacje


Przypomnienie: Celowość

Metoda Celowa

kontrola motoru

„funkcjonalna” dekompozycja zadania

wykonanie zadania

modelowanie świata

działanie

planowanie

percepcja

wyczuwanie

Metoda reakcyjna

planowanie i rozumowanie

identyfikacja obiektu

wyczuwanie

zbudowanie mapy

działanie

„behawioralna” dekompozycja zadania

poznawanie

eksploracja

unikanie przedmiotu


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

Szpara

do góry

nogami

+woda

Jasno

s

Ciemno

s

Do góry

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 (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?


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

    • Jedna fotokomórka:

      • Kieruje do źródła światła

Ładowanie

Dleft

Drear

Dfront

Dright

Przeszkoda


Przykład 3: Subsumption

  • Wędrowanie dookoła:

    • Nieprzerwany ruch

Silniki

Wędrowanie


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

Silniki

Omijanie


Przykład 3: Subsumption

  • Łączenie dwóch pierwszych warstw

Czujniki

Omijanie

Silniki

Wędrowanie

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

Fotokom.

Bateria

Silniki

Ładowanie


Przykład 3: Subsumption

  • Łączenie warstw

Fotokom.

Bateria

Ładowanie

Czujniki

Unikanie

S

Silniki

Wędrowanie

S


Przykład 3: Subsumption

  • Łączenie warstw (lepszy model)

Fotokom.

Bateria

Ładowanie

Czujniki

Unikanie

S

Silniki

Wędrowanie

S


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.


Turn Right

Avoid

Wander

Move Forward

Turn Left

Example 6

A robot’s different states and transition between states.


Charger

Dleft

Drear

Dfront

Dright

Obstacle

Potential Fields

  • Vector summation

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


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, 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 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


  • Login