Download - Complexiteit

Transcript
Page 1: Complexiteit

1

Complexiteit

• Bij motion planning is er sprake van drie typen van complexiteit– Complexiteit van de obstakels (aantal,

aantal hoekpunten, algebraische complexiteit, etc.)

– Kinetische complexiteit van de robot (aantal vrijheidsgraden)

– Complexiteit van de oplossing (is er een eenvoudig pad dat ver van alle obstakels vandaan blijft of niet)

Page 2: Complexiteit

2

Complexiteit

• Veel vrijheidsgraden maakt het probleem vaak makkelijker oplosbaar, maar het verhoogt vaak de complexiteit van de algoritmen.

• Het liefst willen we dat de complexiteit van het resultaat de belangrijkste maat is. Voor veel oplossingen geldt dit echter niet.

Page 3: Complexiteit

3

Compleetheid van oplossingen

• Compleet: Als er een oplossing is wordt deze binnen een begrensde tijd gevonden. Als er geen oplossing is wordt dit gerapporteerd.

• Probabilistisch compleet: Als er een oplossing is gaat de kans dat deze gevonden wordt naar 1 als de rekentijd naar oneindig gaat.

• Resolutie compleet: Als er een oplossing bestaat met een aangegeven clearence wordt deze binnen een begrensde tijd gevonden.

Page 4: Complexiteit

4

Configuratieruimte

• q is een configuratie voor de robot• m is het aantal parameters =

vrijheidsgraden• A(q) is de robot geplaatst in configuratie

q• C is de ruimte van alle configuraties• Dimensie van C is m

Page 5: Complexiteit

5

Rigid object

• De workspace W heeft een coordinate systeem of frame FW

• De robot A heeft een eigen frame FA dat mee beweegt

• Een configuratie geeft aan waar FA zich bevindt in FW

• De oorsprong van FA is het referentiepunt FW

FA

Page 6: Complexiteit

6

Rigid object

• Een configuratie kan ook gezien worden als een transformatie TRq die A(0) transformeert in A(q)

• TRq = t r voor een translatie t en rotatie r

A(0)

A(q)

Page 7: Complexiteit

7

Configuratie

• q = (T,) met T de positie en de orientatie

• T is een N-vector is een orthonormale NxN matrix met

determinant 1• De groep van deze matrices wordt

aangeduid met SO(N)

Page 8: Complexiteit

8

Rotaties

• Je kunt rotaties op verschillende manieren aangeven:– Als matrix (embedding in RNxN)– Als unitvector met rotatie– Als Euler hoeken (om bewegend of om vast

frame)– Als quaternionen

• Maakt interpolatie makkelijker

Page 9: Complexiteit

9

Paden

• Een pad is een continue afbeelding van [0,1] naar C met (0) = start en (1) = doel.

• Een robot heet “free-flying” als elk pad “feasible” is (bij afwezigheid van obstakels).

• C is connected, d.w.z., voor elk paar start,doel is er een pad (als geen obstakels)

• Vrije en semi-vrijepaden

Page 10: Complexiteit

10

Afstanden

• Wat is de afstand tussen twee configuraties q1 en q2?– Euclidische afstand in C

• Eigenlijk in een kaart in C• Hoe schaal je de rotationele dimensies?

– Hausdorff distance tussen A(q1) en A(q2) in de workspace

– Sweep volume

Page 11: Complexiteit

11

Obstakels

• Een obstakel Bi in de workspace correspondeert met een C-obstakel

CBi = {q in C waarvoor A(q) Bi snijdt}

A(q) is de robot a in configuratie q

Page 12: Complexiteit

12

Translatie

CB = B -A(0) = {x in W | b in B, a in A(0) zodat x = b-a}

Minkowski verschil

Page 13: Complexiteit

13

Complexiteit

• Complexiteit kan O(na2 nb

2) zijn. (Voor convex O(na+ nb).)

Page 14: Complexiteit

14

Rotatie

• Voor elke orientatie kun je dit berekenen.

Page 15: Complexiteit

15

De Rand

• De contact configuraties tussen A en B corresponderen NIET met de rand van CB!

A

B

CB

Page 16: Complexiteit

16

Berekenen (d=2)

• Voor translatie convex:– Loop beide randen af (O(na+ nb))

• Ook de hele free space heeft lineaire complexiteit– Merge steeds deelverzamelingen met plane

sweep.– Totale tijd O(n log2n)

Page 17: Complexiteit

17

Berekenen (d=2)

• Translatie en rotatie • Benadering

– Bepaal een aantal slices in de rotatie richting

– Voor elke slice bereken CB– Plak deze aan elkaar

• Kan ook voor de hele vrije ruimte gedaan worden

• Blaas de robot iets op om problemen te voorkomen

Page 18: Complexiteit

18

Exact Berekenen

• Bepaal alle contact surfaces– Een contact correspondeert met een feature

van A en een feature van B • d=2 : punt-lijn of lijn-punt• d=3 : punt-vlak, vlak-punt of lijn-lijn

– Alle configuraties waarbij zo’n contact optreedt vormen een (m-1)-dimensionale surface in C

– Deze surfaces verdelen C in gebieden– Test voor elk gebied of het in CB ligt of niet

• Je kunt dit voor alle obstakels samen doen

Page 19: Complexiteit

19

Exact Berekenen

Page 20: Complexiteit

20

Exact Berekenen

• Aantal feature paren is O(nanb)

• Arrangement bestaat uit O(nanb) surfaces

• Dit levert O((nanb)m) cellen die je snel kunt testen

• Surfaces hebben hoge algebraische graad• Complexiteit van de vrije ruimte is ook

inderdaad worst-case ((nanb)m)

Page 21: Complexiteit

21

Fatness

• Een obstakel B is fat als voor elke p in B en elke cirkel C met p als middelpunt die B niet omvat ten minste een bepaald percentage van C door B overdekt is.

Page 22: Complexiteit

22

Fatness

• Als robot en obstakels fat en van constante complexiteit dan is de complexiteit van de vrije ruimte lineair.

• Bewijs idee: bekijk het aantal mogelijke feature paren met het kleinste obstakel. Dit is constant.