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
Tot nu toe ARobot WWorkspace BiObstakel i CBiConfiguratie Ruimte van Bi CConfiguratie Ruimte qconfiguratie Nieuw ARobot WWorkspace Bi(t)Obstakel i op tijd t CBi(t)Configuratie Ruimte van Bi op tijdstip t CTConfiguratie Tijd Ruimte q(t)Configuratie op tijd t ; q(0) = qinit; q(T) = qgoal
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
Configuration Time Space and Connectivity Graph
Snelheids restrictie Vmax In 2D een driehoek In 3D een kegel t y A
Planning met snelheidsrestricties Exact cell decomposition Approximate cell decomposition Velocity tuning
Exact cell decomposition t y A t y B t y A B Voorbeeld in 2D
Approximate cell decomposition (1)
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 t y A t y A
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.
Centralized Planning (2)
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 A 1, …, A p p iteraties Bepaal in iteratie i pad van A i rekening houdend met obstakels Bj en robots A 1, …, A i-1. Motion A i plannen alsof A i beweegt tussen stationaire objecten B j 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 A 1 en A 2 : 1 : s 1 є [0,1] 1 (s 1 ) є C 1 free 2 : s 2 є [0,1] 2 (s 2 ) є C 2 free S 1 xS 2 –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 1 en 2 in w 1 en w 2 segmenten: Elk segment is even lang S 1 xS 2 –space verandert in array met w 1 x w 2 cells Elke cell is EMPTY of FULL Cell is EMPTY als A 1 en A 2 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 S 1 xS 2 –space: (s 1 ’, s 2 ’) en (s 1 ’’, s 2 ’’) (s 1 ’, s 2 ’) en (s 1 ’’, s 2 ’’) zijn incomparable (s 1 ’- s 1 ’’)(s 2 ’- s 2 ’’) < 0 Als (s 1 ’, s 2 ’) en (s 1 ’’, s 2 ’’) incomparable en s 1 ’ s 2 ’’ ), dan is de SW-conjugate punt (s 1 ’, s 2 ’’) 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 S 1 xS 2 –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 = (A 1, …, A p ) Elk object A 1 t/m A p verbonden door joints: Revolute joint Prismatic joint Mechanische stops Geen kinematische loop
Articulated Robots Workspace W = A 0 A representeren als een tree: Node = A 0 t/m A p Arc = joints Root = A 0
Articulated Robots Configuratie van A: q = (q 1, …, q p ) Als A j een kind van A i : C j (i) = configuration space van A j t.o.v. A i q j є C j (i) Als tussen A j en A i revolute joint, dan C j (i) = S 1 Als tussen A j en A i prismatic joint, dan C j (i) = R C = R x … x R x S 1 …x S 1
Articulated Robots 2 soorten C-obstacles: Tussen A j en obstakel B j Tussen A j en A j Mechanische stop beperkt aantal waarden van q i : I i = (q i -, q i + ), vb. I 1 = [0, π] Doel: vind een free path tussen q init en q goal 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 q init en q goal
Approximate cell decomposition Aannamen: A = (A 1, …, A p ) en q = (q 1,…, q p ) A i en A i+1 verbonden door revolute of prismatic joint Interval I i = (q i -, q i + ) A i en A j botsen nooit! Wel obstakels B i A i (q 1,…, q i ) = region die A i in workspace inneemt
Approximate cell decomposition Benadering van C-obstacle region in I 1 x …x I p Elke interval I i verdelen in kleinere intervals δ i,ki met ki = 1, 2, … Vb. I 1 = [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 (q 1,…, q p ) 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 q 1,…, q i A i snijdt met obstakel, dan q i+1,…, q p niet bekijken
Approximate cell decomposition Verdeel elk interval I i in intervallen die EMPTY of FULL zijn Verdeel EMPTY intervallen in kleinere intervals δ i,ki met ki = 1, 2, … Behoort q = (q 1,…, q p ) tot free space?
Approximate cell decomposition Hoe bepaal je welke intervallen van I i EMPTY of FULL zijn? Voor welke waarden q i snijdt A i (q 1,…, q i ) obstakels als q 1,…, q i-1 varieert over δ 1,k1 x … x δ i-1,ki-1 Oplossing: Bepaal middelpunten q 1,m1,…, q i-1,mi-1 van δ 1,k1, …, δ i-1, ki-1. Voor welke waarden snijdt A i (q 1,m1,…, q i-1,mi- 1, q i ) obstakels.
Approximate cell decomposition Verbetering (2): Verdeel interval I i in intervallen die FULL, C/EMPTY of P/EMPTY zijn. S i (q 1,…, q i )= region bestreken door objecten A i+1, …, A p Als q i+1,…, q p varieren over I i+1,…,I p En A 1, …, A i in configuratie q 1,…, q i zijn
Approximate cell decomposition Configuratie q i behoort tot interval: FULL: A i (q 1,…, q i ) snijdt obstakels als q 1,…, q i-1 varieert over δ 1,k1 x … x δ i-1,ki-1 C/EMPTY: A i (q 1,…, q i ) U S i (q 1,…, q i ) snijdt geen obstakels als q 1,…, q i-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 q init en q goal