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)
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.
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.
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
5 Rigid object De workspace W heeft een coordinate systeem of frame F W De robot A heeft een eigen frame F A dat mee beweegt Een configuratie geeft aan waar F A zich bevindt in F W De oorsprong van F A is het referentiepunt FWFW FAFA
6 Rigid object Een configuratie kan ook gezien worden als een transformatie TR q die A(0) transformeert in A(q) TR q = t r voor een translatie t en rotatie r A(0) A(q)
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)
8 Rotaties Je kunt rotaties op verschillende manieren aangeven: –Als matrix (embedding in R NxN ) –Als unitvector met rotatie –Als Euler hoeken (om bewegend of om vast frame) –Als quaternionen Maakt interpolatie makkelijker
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
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
11 Obstakels Een obstakel B i in de workspace correspondeert met een C-obstakel CB i = {q in C waarvoor A(q) B i snijdt} A(q) is de robot a in configuratie q
12 Translatie CB = B -A(0) = {x in W | b in B, a in A(0) zodat x = b-a} Minkowski verschil
13 Complexiteit Complexiteit kan O(n a 2 n b 2 ) zijn. (Voor convex O(n a + n b ).)
14 Rotatie Voor elke orientatie kun je dit berekenen.
15 De Rand De contact configuraties tussen A en B corresponderen NIET met de rand van CB! A B CB
16 Berekenen (d=2) Voor translatie convex: –Loop beide randen af (O(n a + n b )) Ook de hele free space heeft lineaire complexiteit –Merge steeds deelverzamelingen met plane sweep. –Totale tijd O(n log 2 n)
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
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
19 Exact Berekenen
20 Exact Berekenen Aantal feature paren is O(n a n b ) Arrangement bestaat uit O(n a n b ) surfaces Dit levert O((n a n b ) m ) cellen die je snel kunt testen Surfaces hebben hoge algebraische graad Complexiteit van de vrije ruimte is ook inderdaad worst-case ((n a n b ) m )
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.
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.