450 likes | 610 Views
Multiple Moving Objects. Siu-Siu Ha Marlies Mooijekind. Indeling. Dynamic Motion Planning Multiple Robots Articulated Robots. Dynamic motion planning. Positie obstakel en robot uitzetten tegen tijd. Configuratie-ruimte C is alle configuraties van de robot:
E N D
Multiple Moving Objects Siu-Siu Ha Marlies Mooijekind
Indeling • Dynamic Motion Planning • Multiple Robots • Articulated Robots
Dynamic motion planning Positie obstakel en robot uitzetten tegen tijd. Configuratie-ruimte C is alle configuraties van de robot: Configuratie-tijd ruimte: C x tijd
Configuration Space and Configuration Time Space of Obstacle B
Path Planning in CT • Met exact cell decomposition • Over het algemeen compleet, maar niet practisch omdat complexiteit te hoog is. • Met approximate cell decomposition
Approximate Cell Decomposition • Decompositie in rechthoekige cellen • Full, Empty, Mixed • Nu extra dimensie: Tijd
y A t Snelheids restrictie Vmax • In 2D een driehoek • In 3D een kegel
Planning met snelheidsrestricties • Exact cell decomposition • Approximate cell decomposition • Velocity tuning
y y B A t t y B A t Exact cell decomposition • Voorbeeld in 2D
y y A A t t Approximate cell decomposition (2) • Vanwege het discretiseren van de channels in gridvorm, is er geen garantie dat een CT-pad dat aan de snelheidsrestricties voldoet, gevonden wordt. • Mogelijke oplossing: fijner discretiseren
Velocity tuning • 2-fasen methode • Pad voor A van qinit naar qgoal langs stationaire obstakels in W. • Snelheid bijstellen van A langs het pad om botsing met verplaatsende obstakels te vermijden.
Path-Time space (PT) (1) • Pad van qinit naar qgoal door basis motion planning (stationaire obstakels). • (l) = positie robot; l [0, L] . • PTB: tijd [0, T] uitgezet tegen de lengte van het pad, [0, L]. • PT-obstakels: Op bepaalde tijd op een punt op het pad is een obstakel. • Vind vrije PT-pad tussen (0,0) en (L,T)
Path-Time space (PT) (2) • Variant Visibility Graph methode
Multiple Robots • Verschillende stationaire obstakels in W • Verschillende robots bewegen in dezelfde Workspace • Centralized planning • Decoupled planning
Composite Configuration Space (1) • Elke robot Ai, i [1, p] heeft een configuratie ruimte Ci • C-obstakels die corresponderen met botsing van Ai met • een stationaire obstakel • een andere robot, deze kan niet gerepresenteerd worden een vaste regio in Ci
Composite Configuration Space (2) • Beschouw de objecten A1 tot Ap als één object: A = {A1,...,Ap} • Dan configuratie van A: q = (q1,...,qp); qi Ci • A’s configuratie ruimte C = C1 x ... X Cp • CBij : C-obstakel door interactie Ai met Bi • CAij : C-obstakel door interactie Ai met Aj • Vrij pad in C vinden tussen qinit en qgoal
Centralized Planning (1) • Pad in de composite configuration space vinden • Tijd complexiteit is exponentieel aan dimensies composite configuration space. Niet practisch.
Decoupled planning • Plan pad voor elke robot apart en coordineer deze paden. • Voordeel: lagere dimensie • Nadeel: niet compleet • Methoden: • Prioritized planning • Path coordination
Prioritized planning • Robots A1, …, Ap • p iteraties • Bepaal in iteratie i pad van Ai rekening houdend met obstakels Bj en robots A1 , …, Ai-1. • Motion Ai plannen alsof Ai beweegt tussen stationaire objecten Bj en i-1 bewegende objecten = Dynamic motion planning • Random prioriteiten toekennen
Path coordination • Twee stappen: • Genereer free path voor elke robot zonder rekening te houden met andere robots • Coordineer paden z.d.d. robots niet botsen m.b.v. een coordination diagram
Path coordination • Twee robots A1 en A2: 1: s1 є [0,1] 1(s1) є C1free 2: s2є [0,1] 2(s2) є C2free • S1xS2–space [0,1]x[0,1] • Schedule = pad dat (0,0) en (1,1) verbindt • Schedule = coordinatie van paden • Doel: vind een free schedule z.d.d. de robots niet botsen
Path coordination • Obstacle region in S1xS2–space = alle paren (s1,s2) z.d.d. A1 in configuratie 1(s1) en A2 in configuratie 2(s2) elkaar snijden • Vind schedule dat obstacle region niet snijdt • Nadeel: obstacle-regions kunnen erg complex worden
Path coordination • Deel pad 1en 2 in w1 en w2segmenten: • Elk segment is even lang • S1xS2–space verandert in array met w1 x w2 cells • Elke cell is EMPTY of FULL • Cell is EMPTY als A1 en A2 voor geen enkele van deze configuraties snijden • Dit is een coordination diagram
Path coordination • Free schedule is een pad van (0,0) naar (1,1) dat • over de randen van EMPTY cellen loopt • diagonaal door de EMPTY cellen • Boundary is dus collision free • M.b.v. SW-closure kan een nondecreasing schedule gevonden worden zonder zoeken!
Path coordination • Twee punten in S1xS2–space: (s1’, s2’) en (s1’’, s2’’) • (s1’, s2’) en (s1’’, s2’’) zijn incomparable (s1’- s1’’)(s2’- s2’’) < 0 • Als (s1’, s2’) en (s1’’, s2’’) incomparable en s1’<s1’’ (dus s2’>s2’’ ), dan is de SW-conjugate punt (s1’, s2’’) • Een connected region R is SW-closed elke SW-conjugate van twee punten in R zit ook in R • SW-closure van S = kleinste SW-closed region R dat S bevat
Path coordination • Bepaal SW-closure van elke obstacle region in S1xS2–space
Path coordination • Bepaal een schedule dat de SW-closure niet snijdt: • Begin in (0,0) • while (1,1) niet bereikt if cell EMPTY then doorkruis cell diagonaal else if cell eronder EMPTY then ga naar rechts else ga omhoog • Free schedule bestaat alleen als (0,0) en (1,1) niet in SW-closure liggen
Articulated Robots • A = (A1, …, Ap) • Elk object A1 t/m Ap verbonden door joints: • Revolute joint • Prismatic joint • Mechanische stops • Geen kinematische loop
Articulated Robots • Workspace W = A0 • A representeren als een tree: • Node = A0 t/m Ap • Arc = joints • Root = A0
Articulated Robots • Configuratie van A: q = (q1, …, qp) • Als Aj een kind van Ai: Cj(i) = configuration space van Aj t.o.v. Ai • qj є Cj(i) • Als tussen Aj en Ai revolute joint, dan Cj(i) = S1 • Als tussen Aj en Ai prismatic joint, dan Cj(i) = R • C = R x … x R x S1…x S1
Articulated Robots • 2 soorten C-obstacles: • Tussen Aj en obstakel Bj • Tussen Aj en Aj • Mechanische stop beperkt aantal waarden van qi: Ii = (qi-, qi+), vb. I1 = [0, π] • Doel: vind een free path tussen qinit en qgoal • Methoden: • Silhouette methode • Freeway methode • Approximate cell decomposition • Potentiaal velden
Approximate cell decomposition • Maak conservatieve benadering van free space (= subset van “echte” free space) • door discretisatie van motion van joints • Maak connectivity graph van de conservatieve benadering • Zoek naar channel tussen qinit en qgoal
Approximate cell decomposition • Aannamen: • A = (A1, …, Ap) en q = (q1 ,…, qp) • Ai en Ai+1 verbonden door revolute of prismatic joint • Interval Ii = (qi-, qi+) • Ai en Aj botsen nooit! • Wel obstakels Bi • Ai (q1 ,…, qi) = region die Ai in workspace inneemt
Approximate cell decomposition • Benadering van C-obstacle region in I1 x …x Ip • Elke interval Ii verdelen in kleinere intervals δi,ki met ki = 1, 2, … • Vb. I1 = [0, π]: • δ1,1 = [0, ¼ π], δ1,2 = [¼ π, ½ π], δ1,3 = [½ π, ¾π], δ1,4 = [¾π, π],
Approximate cell decomposition • Cell δ1,k1 x … x δp,kp behoort tot C-obstacle region: • Als region bestreken door A wanneer (q1 ,…, qp) varieert over δ1,k1 x … x δp,kp snijdt met een obstakel • Anders behoort δ1,k1 x … x δp,kp tot free space • Alle cells bekijken levert benadering van C-obstacle region
Approximate cell decomposition • Nadeel: alle cells bekijken is niet efficient • Verbetering (1): • Als voor gegeven waarden q1 ,…, qi Ai snijdt met obstakel, dan qi+1 ,…, qp niet bekijken
Approximate cell decomposition • Verdeel elk interval Ii in intervallen die EMPTY of FULL zijn • Verdeel EMPTY intervallen in kleinere intervals δi,ki met ki = 1, 2, … • Behoort q = (q1 ,…, qp) tot free space?
Approximate cell decomposition • Hoe bepaal je welke intervallen van Ii EMPTY of FULL zijn? • Voor welke waarden qi snijdt Ai(q1 ,…, qi) obstakels als q1 ,…, qi-1 varieert over δ1,k1 x … x δi-1,ki-1 • Oplossing: • Bepaal middelpunten q1,m1 ,…, qi-1,mi-1 van δ1,k1 , …, δi-1, ki-1. Voor welke waarden snijdt Ai(q1,m1 ,…, qi-1,mi-1, qi) obstakels.
Approximate cell decomposition • Verbetering (2): Verdeel interval Ii in intervallen die FULL, C/EMPTY of P/EMPTY zijn. • Si(q1 ,…, qi)= region bestreken door objecten Ai+1, …, Ap • Als qi+1 ,…, qp varieren over Ii+1 ,…,Ip • En A1, …, Ai in configuratie q1 ,…, qi zijn
Approximate cell decomposition • Configuratie qi behoort tot interval: • FULL: Ai(q1 ,…, qi) snijdt obstakels als q1 ,…, qi-1 varieert over δ1,k1 x … x δi-1,ki-1 • C/EMPTY: Ai(q1 ,…, qi) U Si(q1 ,…, qi) snijdt geen obstakels als q1 ,…, qi-1 varieert over δ1,k1 x … x δi-1, ki-1 • P/EMPTY: in de overgebleven gevallen • Alleen P/EMPTY intervallen verdelen in kleinere intervallen
Approximate cell decomposition • Tree = representatie van free space in vorm van cellen • Maak connectivity graph die adjacency relatie van cellen representeert • Zoek naar channel tussen qinit en qgoal