multiple moving objects
DESCRIPTION
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: - PowerPoint PPT PresentationTRANSCRIPT
Multiple Moving Objects
Siu-Siu Ha
Marlies Mooijekind
Indeling
Dynamic Motion PlanningMultiple RobotsArticulated 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
A Robot
W Workspace
Bi Obstakel i
CBi Configuratie Ruimte van Bi
C Configuratie Ruimte
q configuratie
Nieuw
A Robot
W Workspace
Bi(t) Obstakel i op tijd t
CBi(t) Configuratie Ruimte van Bi op tijdstip t
CT Configuratie 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 decompositionVelocity 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 tuning2-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 RobotsVerschillende stationaire obstakels in WVerschillende robots bewegen in
dezelfde Workspace
Centralized planningDecoupled 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 dimensieNadeel: niet compleetMethoden:
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 coordinationTwee 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 w2
segmenten: 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