• Nie Znaleziono Wyników

Warszawa,2018 Wykład3-Planowanieruchudrinż.JakubMożaryn,mgrinż.JanKlimaszewski Sterowaniemechanizmówwieloczłonowych

N/A
N/A
Protected

Academic year: 2021

Share "Warszawa,2018 Wykład3-Planowanieruchudrinż.JakubMożaryn,mgrinż.JanKlimaszewski Sterowaniemechanizmówwieloczłonowych"

Copied!
33
0
0

Pełen tekst

(1)

Sterowanie mechanizmów wieloczłonowych

Wykład 3 - Planowanie ruchu

dr inż. Jakub Możaryn, mgr inż. Jan Klimaszewski

Instytut Automatyki i Robotyki

Warszawa, 2018

(2)

Przykład planowania

1 2 3 4 5

A B C D E

h 0

1 2 2 3 3

1 2 3

2 3

cel robot

g g - koszt od węzła do celu

h - oszacowany koszt z węzła do robota (heurystyka)

węzeł otwarty (w kolejce do rozwinięcia) węzeł zamknięty

węzeł v jest rodzicem u (następny na drodze do celu)

u v

Rysunek:przykład planowania

(3)

Podstawowe składniki planowania

Stan

Stan - Zestaw współrzędnych opisujących całkowicie rozważany problem.

Przestrzeń stanu to zbiór wszystkich możliwych stanów. W zakresie MW stan można zazwyczaj opisać za pomocą współrzędnych uogólnionych.

Stan początkowy i cel

Stan początkowy i cel - W problemie planowania zazwyczaj znany jest początkowy stan układu. Stosując odpowiednie akcje rozwiązanie problemu powinno pozwolić na doprowadzenie układu do stanu docelowego układu.

(4)

Podstawowe składniki planowania

Czas

Czas - W problemach planowania czas może być elementem przestrzeni stanu (time-state space). Czas można też rozumieć jako sekwencyjną kolejność czynności koniecznych do wykonania w celu rozwiązania problemu - np. kolejne ruchy konieczne do ułożenia kostki rubika.

Akcja

Akcja - Stan może ulec zmianie w wyniku akcji. Akcja jest to funkcja, która zmienia stan. Np. akcja ”jedź do przodu”powoduje zmianę położenia robota.

Koszt akcji

Koszt akcji - Koszt związany z wykonaniem akcji. Np. czas trwania akcji.

(5)

Algorytmy, plannery i plany

Plan

Plan - Jeśli stan i akcje są deternimistyczne - plan to sekwencja akcji do wykonania. Jeśli przyszłych stanów nie da się łatwo przewidzieć plan może np. definiować akcje jako funkcję aktualnego stanu. Pierwszy przypadek można rozumieć jako ”otwartą pętlę sprzężenia”, drugi przypadek umożliwia ”zamknięcie pętli”.

Planer

Planer - Konstruktor planu. Jeśli planer jest automatyczny, planer to algorytm opracowujący plan.

Ścieżka

Ścieżka - Sekwencja stanów.

(6)

Zupełność, wykonalność i optymalność

Wykonalność planu

Wykonalność planu - Plan pozwalający na osiągnięcie przez układ stanu docelowego.

Optymalność planu

Optymalność planu - Plan wykonalny, który optymalizuje pewien ściśle określony wskaźnik związany z wykonaniem planu - np. minimalizuje drogę do celu.

Zupełność algorytmu

Zupełność algorytmu - Planer znajdzie rozwiązanie, jeśli ono istnieje.

Zupełność probabilistyczna algorytmu

Zupełność probabilistyczna algorytmu - Prawdopodobieństwo znalezienia rozwiązania przez planer dąży do 1, gdy czas działania algorytmu dąży do nieskończoności.

(7)

Podział algorytmów planowania

Planowanie w środowisku deterministycznym.

Planowanie w obecności niepewności.

Planowanie z uwzględnieniem więzów różniczkowych.

Metody pozostałe.

(8)

Podział algorytmów planowania - wiedza o środowisku

Wiedza pełna

wystarczy planowanie globalne (offline)

planowanie optymalne (planowanie ścieżki o najniższym koszcie, np.

A*)

planowanie szybsze ale suboptymalne (anytime, np. ARA*)

Wiedza niepełna

konieczna eksploracja i aktualizacja mapy oraz planu (online) nie da się zapewnić planu optymalnego w skali całej misji (jedynie dla aktualnej wiedzy o świecie)

planowanie globalne przyrostowe (wykorzystanie wiedzy z wcześniejszego planowania)

plan optymalny dla aktualnej wiedzy (np. D*, D* Lite) plan suboptymalny dla aktualnej wiedzy (anytime, np. AD*) planowanie lokalne (uczące się, np. LRTA*)

planowanie w czasie rzeczywistym

(9)

Planowanie w środowisku deterministycznym

Istotne aspekty:

więzy są holonomiczne postaci f (x , y , z, t) ­ 0 lub f (x , y , z, t) = 0.

Wybrane metody:

planowanie bez dyskretyzacji przestrzeni konfiguracyjnej,

planowanie bazujące na próbkowaniu (dyskretyzacja przestrzeni w trakcie działania planera),

planowanie ze sprzężeniem zwrotnym.

(10)

Planowanie w obecności niepewności

Istotne aspekty:

niepewność wykonania akcji, niepewność stanu,

modelowanie niepewności.

Wybrane metody:

planowanie w obliczu niepewności wykonania akcji, planowanie w obliczu niepewności stanu.

(11)

Planowanie z uwzględnieniem więzów różniczkowych

Istotne aspekty:

konstrukcja planu uwzględnia np. więzy postaci f (x , y , z, ˙x , ˙y , ˙z, t) ­ 0 lub f (x , y , z, ˙x , ˙y , ˙z, t) = 0,

może uwzględniać kryteria stabilności i optymalności (równanie Hamiltona-Jacobiego-Bellmana).

Wybrane metody:

metody bazujące na próbkowaniu, metody ze sprzężeniem zwrotnym,

metody odsprzęgające do planowania trajektorii.

(12)

Planowanie dla potrzeb MW

Istnieje wiele podejść do planowania. W najprostrzym przypadku, aby otrzymać trajektorię dla MW konieczne będzie:

1 ustalenie przestrzeni konfiguracyjnej (C-space),

2 dyskretyzacja przestrzeni konfiguracyjnej,

3 planowanie w przestrzeni dyskretnej,

4 wyznaczenie planu ciągłego:

generowanie ścieżki (bez uwzględnienia modelu dynamiki i więzów różniczkowych) w postaci sekwencji stanów jako wyniki planowania, generowanie trajektorii (uwzględniając model dynamiki i więzy różniczkowe) na podstawie sekwencji stanów.

(13)

Przestrzeń konfiguracyjna MW

Przestrzeń konfiguracyjną C można rozumieć jako uogólnienie S do przestrzeni ciągłej. Planowanie może odbyć się w przestrzeni:

zewnętrznej (kartezjańskiej), zmiennych uogólnionych.

(14)

Przestrzeń konfiguracyjna robot 2-DOF

(15)

Definicja problemu (1)

W uproszczeniu problem planowania możemy zdefiniować następująco:

Stan Stan układu opisany jest przez wektor współrzędnych konfiguracyjnych:

S =

 q1

q2

. . .

, S ∈ S (1)

S jest zbiorem policzalnym,

S = {S1, S2, . . . , Sn} – zbiór stanów

Stan początkowy i cel Opis problemu planowania powinien definiować cel jako Sgoal ∈ S oraz stan początkowy Sstart ∈ S.

(16)

Definicja problemu (2)

Akcja Zastosowanie akcji powoduje zmianę stanu:

S0= f (S , U) (2)

, gdzie U - skończony zestaw możliwych akcji.

Przestrzeń akcji Skończona przestrzeń akcji U(S ) definiuje jake akcje są możliwe do wykonania dla stanu S .

Zbiór wszystkich możliwych akcji dla wszystkich stanów można zdefiniować jako:

U = [

S∈S

U(S ) (3)

Planowanie Celem planowania jest znalezienie planu, czyli sekwencji akcji transformujących stan początkowy Sstart do stanu docelowego Sgoal.

(17)

Wybrane metody dyskretyzacji przestrzeni konfiguracyjnej

Mapa drogowa Regularna siatka Diagram Voronoi Graf widoczności Drzewa przeszukujące

(18)

Dyskretyzacja przestrzeni konfiguracyjnej

Mapa drogowa Regularna siatka

(19)

Dyskretyzacja przestrzeni konfiguracyjnej

Diagram Voronoi Graf widoczności

qstart

qgoal

(20)

Losowe generowanie mapy drogowej

Algorytm PRM (Probabilistic Roadmap) 1:function constructRoadmap 2: V = ∅

3: E = ∅

4: while not construction time elapsed do 5: Srand= pickAtRandom(Cfree) 6: N = getNeighbourhood(Srand, V ) 7: N = sortByIncreasingDistance(N, Srand) 8: V = V ∪ Srand

9: for each configuration Sn∈ N do

10: if not sameComponent(qrand, Sn, G ) and connect(Srand, Sn) then 11: E = E ∪ edge(Srand, Sn)

(21)

Dyskretyzacja za pomocą regularnej siatki

Przestrzeń przeszukiwania podzielona na równe komórki Zbiór akcji stanowią ruchy do sąsiednich komórek

8 najbliższych 16 najbliższych

dalszych (akcje zakładają przejście przez kilka komórek)

Planowanie w przestrzeni przybliżonej - zupełność przy zadanej rozdzielczości (dyskretyzacji przestrzeni poszukiwań).

(22)

Wybrane metody przeszukiwania grafu

Metody ogólne przeszukiwania grafu w przód

wstecz wszerz w głąb Algorytm Dijkstry Algorytm A*

Algorytm Bellmana-Forda

(23)

Szukanie planów wykonalnych - przeszukiwanie w przód vs wstecz

Algorithm 1 Forward search.

1:function Forward-search(Sstart, Sgoal) 2: umieść Sstartna liście węzłów OPEN ← Sstart

3: pobierz z OPEN węzeł u 4: if u = Sgoal then

5: zakończ

6: for all v ∈ neighbours(u) do 7: if g (v ) > g (u) + cost(u, v ) then 8: ustaw g (v ) = g (u) + cost(u, v ) 9: ustaw parent(v ) = u

10: umieść v na liście OPEN 11: idź do linijki 3

Algorithm 2 Backward search.

1:function Backward-search(Sstart, Sgoal) 2: umieść Sgoalna liście węzłów OPEN ← Sgoal

3: pobierz z OPEN węzeł u 4: if u = Sstart then

5: zakończ

6: for all v ∈ neighbours(u) do 7: if g (v ) > g (u) + cost(v , u) then 8: ustaw g (v ) = g (u) + cost(v , u) 9: ustaw parent(v ) = u

10: umieść v na liście OPEN 11: idź do linijki 3

cost(u, v ) – koszt akcji zmiany stanu z u do v

(24)

Szukanie planów wykonalnych - algorytm A* (Hart, Nilsson, Raphael 1968)

Algorithm 3 A* search.

1:function A-star-search(Sstart, Sgoal) 2: umieść Sstartna liście węzłów OPEN ← Sstart 3: pobierz z OPEN węzeł u o najmniejszej wartości

f (u) = g (u) + h(u, Sgoal) 4: if u = Sgoal then

5: zakończ

6: for all v ∈ neighbours(u) do 7: if g (v ) > g (u) + cost(u, v ) then 8: ustaw g (v ) = g (u) + cost(u, v ) 9: ustaw parent(v ) = u

10: umieść v na liście OPEN 11: idź do linijki 3

Algorithm 4 Get plan.

1:function getPlan(Sstart) 2: Π = hi

3: v = Sstart 4: while v 6= NULL do 5: Π = hΠ, v i 6: v = parent(v ) 7: return Π

h(u, v ) – heurystyczne oszacowanie odległości między u i v

(25)

Losowe drzewa przeszukujące

Algorytm RRT (Rapidly Exploring Random Trees) function KinodynamicRRT(Sstart, Sgoal, K , ∆t)

V = Sstart E = ∅

for i = 1 to K do

Srand= pickAtRandom(Cfree) Snear= nearest(Srand, T )

(Snew, unew) = selectControl(Snear, Srand, ∆t) if Snew∈ C/ obsthen

V = V ∪ Snew

E = E ∪ edge(Snear, Snew, unew) if kSnew− Sgoalk <  then

return success

(26)

Losowe drzewa przeszukujące

Algorytm RRT (Rapidly Exploring Random Trees)

(27)

Generowanie planu ciągłego dla MW

Generowanie ścieżki (bez uwzględnienia modelu dynamiki i więzów różniczkowych) w postaci sekwencji stanów jako wyniki planowania, generowanie trajektorii (uwzględniając model dynamiki i więzy różniczkowe) na podstawie sekwencji stanów.

(28)

Trajektoria

Trajektoria jest to funkcja opisująca stan układu w czasie.

Prędkosć i przyspieszenie układu można wyznaczyć poprzez różniczkowanie trajektorii po czasie.

Dla trajektorii gładkiej prędkosć muci być ciągła, inaczej realizacja trajektorii wymagałaby nieskończonych przyspieszeń.

Wyznaczanie trajektorii Q(t) na podstawie zestawu punktów S (efekt planowania w przestrzeni dyskretnej) można wykonać wieloma metodami.

Najprościej określić sposób wyznaczania trajektorii pomiędzy dwoma punktami, a następnie zastosować to podejście do wszystkich punktów planu.

(29)

Metody wyznacznia trajektorii między dwoma punktami

Cubic Polynomial Trajectories Quintic Polynomial Trajectories.

Linear Segments with Parabolic Blends (LSPB).

(30)

Wielomian trzeciego stopnia między dwoma punktami - cechy

Przyspieszenie zmienia się liniowo z czasem i jest ciągłe.

Dwa ograniczenia na stan początkowy i końcowy.

Dwa ograniczenia na początkową i końcową prędkość.

Do ustalenia większej liczby ograniczeń (np. przyspieszenia) potrzebne są wielomiany wyższego stopnia.

(31)

Wielomian trzeciego stopnia między dwoma punktami - równiania

Definicja trajektorii pomiędzy dwoma stanami Q(t0) i Q(tf) za pomocą wielomianu trzeciego stopnia:

Q(t) =

 q1(t) q2(t) . . .

 (4)

qi(t) = ai 0+ ai 1· t + ai 2· t2+ ai 3· t3 (5) , gdzie ai 0, ai 1, ai 2, ai 3 - parametry wielomianu dla qi(t), dalej zapis uproszczony:q(t) oraz a0, a1, a2, a3.

Różniczkując po czasie otrzymujemy prędkość i przyspieszenie:

˙

q(t) = v (t) = a + 2a · t + 3a · t2 (6)

(32)

Wielomian trzeciego stopnia między dwoma punktami - ograniczenia

Potrzebne są cztery ograniczenia w celu znalezienia parametrów a0, a1, a2, a3.

Dwa ograniczenia na stan początkowy i końcowy:

q(t0) = a0+ a1· t0+ a2· t02+ a3· t03 (8) q(tf) = a0+ a1· tf + a2· tf2+ a3· tf3 (9) Dwa ograniczenia na początkową i końcową prędkość:

v0= v (t0) = a1+ 2a2· t0+ 3a3· t02 (10) vf = v (tf) = a1+ 2a2· tf + 3a3· tf2 (11)

(33)

Generowanie trajektorii z wielu punktów

Generowanie trajektorii dla sekwencji stanów S należy wykonać:

wyznaczając parametry wielomianu pomiędzy dwoma kolejnymi stanami,

dla każdej współrzędnej stanu,

przyjmując założenia o ciągłości prędkości w kolejnych punktach.

Cytaty

Powiązane dokumenty

Algorytmy generuj¸ace obiekty s¸a u˙zywane w przypadku, gdy chcemy sprawdzi´c wszystkie obiekty danej klasy lub wtedy, gdy chcemy wylosowa´c obiekt danej klasy.. Przypu´s´cmy, na

Gdy uda Wam się już doprowadzić wszystko do działania, przeczytajcie uważnie .noregalloc.s i upew- nijcie się, że wygląda sensownie – na tym etapie jest to jedyny

Razem z klasą generującą kod będziecie potrzebować przynajmniej trzy klasy: tablice symboli, klasę alokującą rejestry i klasę

[r]

Potwierdzone publikacje zostały przeniesione z części II wykazu „Publikacje wymagające zatwierdzenia dyscypliny” do części I „Publikacje do wykazania na

Następnie kliknij Określ dyscyplinę naukową wybranych publikacji.. Zatwierdzenie dyscypliny naukowej

Generowanie reguł klasyfikujących algorytmem AQ... Kolejne kroki

zało˙zenie, ˙ze ka˙zdy kompleks zawieraj ˛ acy si ˛e w pewnym cz˛estym kompleksie jest tak˙ze cz˛estym kompleksem znajduje za- stosowanie w algorytmie Apriori , który rozpoczynaj