Approximate Cell Decomposition Allard Kamphuisen Niels Gorisse Motion Planning 15 januari 2003 Universiteit Utrecht Approximate Cell Decomposition
Inhoud Introductie Divide-and-Label Approximate-and-Decompose
Introductie (1/9) Enkele definities A : robot C : configuratie space C = Rn óf C = Rn X S1 CB : ruimte van object (C-obstacle) in C qgoal, qinit
Introductie (2/9) k : een cel, deel van de decompositie van C alle cellen samen => totale C-space Type cellen EMPTY: intersectie interior met CB is leeg FULL: interior ligt volledig in een CB MIXED: alle andere gevallen
Introductie (3/9) Decompositie voorbeeld
Introductie (4/9) G : Connectivity graph bevat EMPTY en MIXED cellen er is een lijnstuk indien 2 cellen elkaar raken [ indien adjacent, intersectie is niet nul in Rm-1] channel : rij opeenvolgende EMPTY/MIXED cellen E-channel : alleen EMPTY cellen M-channel : alleen MIXED cellen
Introductie (5/9) E-channel voorbeeld
Introductie (6/9) Het First-Cut Algoritme 1. Maak een rectangloid decompositie van de totale ruimte, en maak een connectivity graph G 2. Zoek een channel in G waarbij de eerste cel qinit bevat en de laatste qgoal. Is dit een E-channel, ga naar stap 4. M-channel: stap 3. 3. Decompose iedere MIXED cell in het gevonden pad. Ga naar stap 2. 4. Maak een pad door in het channel steeds naar het midden van de snijlijn van iedere volgende cel te gaan. Indien de daarop volgende cel tegen dezelfde edge ligt: ga eerst naar het middelpunt.
Introductie (7/9) First-cut voorbeeld (zonder cut)
Introductie (8/9) Stap 2 wetenswaardigheden toch doorgaan met een korter M-channel als een lang E-channel gevonden is Backtracking indien een cel na decompositie een ‘blind alley’ blijkt te zijn Backtracking gebruikt labeling van paden voor hogere efficiëntie Decompositie (stap 1 en 3) technieken: Divide-and-label Approximate-and-decompose
Introductie (9/9) Nadeel: Voordelen: geen upper bound voor de worst-case upper bound is te introduceren dmv. gelimiteerde verhouding totale volume t.o.v. het totale volume van alle gevonden E en F cellen cellen groter zijn dan een minimum Voordelen: makkelijk te implementeren draait redelijk efficiënt
Divide-and-Label (1/7) 2m-Tree Decomposition ieder blad is een EMPTY, FULL of MIXED cel MIXED cel : 2m children idee: iedere dimensie wordt in 2-en gehakt m = dimensie van de C-space vaak maximum aan hoogte van de tree
Divide-and-Label (2/7) Quadtree (m=2) voorbeeld
Divide-and-Label (3/7) Octree (m=3) voorbeeld
Divide-and-Label (4/7) Hoe berekenen we de status van een cel? C-sentence : omschrijving van gebied CB conjuncties en disjuncties van C-constraints C-constraint eij : aijx + bijy + cij <= 0 C-constraint is dus een vlak voorbeeld: S = e1 | (e2 & e3)
Divide-and-Label (5/7) C-constraints voorbeeld
Divide-and-Label (6/7) Berekenen status van een cel: k is ‘inside’ (FULL): aijx + bijy + cij <= 0 k is ‘outside’ (EMPTY): aijx + bijy + cij >= 0 k is ‘cut’ (MIXED): alle andere gevallen efficient door weglating van sentences
Divide-and-Label (7/7) C-constraints in meerdere dimensies bv. in C = R3 : aijx + bijy + cijz + dij <= 0 C-constraints met hoeken, bv. C = R2 x S1 We nemen een verzameling C-sentences aij(T)x+ bij(T)y + cij(T) <= 0 waarbij T (theta) een interval van hoeken is. Vervolgens voor iedere hoek in T de status bekijken en dan samenvoegen tot 1 status.
Probleem van de Divide-and-Label methode De Approximate-and-Decompose Methode Probleem van de Divide-and-Label methode Cellen worden opgedeeld zonder informatie te gebruiken van de C-objekten. Dit levert een decompositie op met meer MIXED cellen die een grotere gebied opspannen dan nodig is. We zouden eigenlijk een decompositie wensen zoals in a), waar b) de Divide- and-Label decompositie weergeeft.
De Approximate-and-Decompose Methode Een nieuw principe: Bounding en Bounded approximations. Bounding approximation: Een collectie niet overlappende rectangloïden waarvan de union de C-objekten begrenst (Figuur 1 a). Bounded approximation: Een collectie niet overlappende rectangloïden waarvan de union begrenst wordt door de C-objekten (Figuur 1 b). Figuur 1: Bounding en Bounded approximations Figuur 2: Gewenste decompositie Gewenste decompositie: EMPTY Cellen = complement van bounding approx. FULL Cellen = bounded approx. MIXED Cellen = bounding approx. - bounded approx.
De Approximate-and-Decompose Methode De Approximate-and-Decompose methode voor R2 x S1. 1) De 3D C-ruimte (R2 x S1) wordt over de rotatie-as in segmenten opgedeeld. Ieder segment wordt vervolgens apart behandeld. 2) Ieder segment wordt naar 2D geprojekteerd. Omdat het referentie punt OA van de robot in bepaalde oriëntaties dichter bij het objekt kan komen dan in andere oriëntaties zal een “inner-projection” en een “outer-projection” berekend worden (berekenwijze volgt). 3) Gebruik makende van de inner- en outer-projections kunnen we op deze 2D projectie het eerder genoemde “bounding en bounded approximations” principe toepassen. 4) Ten slotte wordt deze 2D approximation naar 3D opgeblazen.
De Approximate-and-Decompose Methode Het berekenen van inner en outer projections. Er bestaan 2 vormen van contact tussen robot en objekt: - Type A, Waarin een vertex van het objekt een edge van de robot snijdt. - Type B, Waarin een vertex van de robot een edge van het objekt snijdt. Methode: - Bereken de projecties van alle contact punten van type A en type B (die binnen het rotatie bereik van de cel liggen). - Track de inner en de outer boundary.
De Approximate-and-Decompose Methode Berekening van Type A projektie: De locus van Referentie- punt OA wordt berekend voor een type A contact.
De Approximate-and-Decompose Methode Berekening van Type B projektie: De locus van Referentie- punt OA wordt berekend voor een type B contact.
De Approximate-and-Decompose Methode De union van deze projekties wordt genomen (en welke dit zijn en hoe ze eruit zien is afhankelijk van het rotatie bereik van de cel) en de inner en outer boundaries worden berekend.
De Approximate-and-Decompose Methode De Approximate-and-Decompose methode voor R2 x S1. 1) De 3D C-ruimte (R2 x S1) wordt over de rotatie-as in segmenten opgedeeld. Ieder segment wordt vervolgens apart behandeld. 2) Ieder segment wordt naar 2D geprojekteerd. Omdat het referentie punt OA van de robot in bepaalde oriëntaties dichter bij het objekt kan komen dan in andere oriëntaties zal een “inner-projection” en een “outer-projection” berekend worden (berekenwijze volgt). 3) Gebruik makende van de inner- en outer-projections kunnen we op deze 2D projectie het eerder genoemde “bounding en bounded approximations” principe toepassen. 4) Ten slotte wordt deze 2D approximation naar 3D opgeblazen.
Overzicht van de methode
De Approximate-and-Decompose Methode