Post on 19-Jan-2016
description
Motion planning for Car-like robots using a probabilistic
learning approach
Overview
• Introductie• The learning phase• The query phase• Toepassing op directed graphs• Definitie car-like robots• Toepassing op general car-like robots• Toepassing op forward car-like robots• Conclusie
Introductie
Twee soorten robots:
• General car-like robots
• Forward car-like robots
Introductie
Twee stappen in motion planning:
• Learning phase (bouwen van roadmap)
• Query phase (vinden van een pad)
Introductie
Twee manieren om een collision vrij pad
door een workspace te vinden:
• Single shot (bereken 1 pad)
• Learning (bouw structuur, query deze)
The learning phase
• Random point generation• Set of neighbors N(c) voor elk punt c• In order of increasing distance: connect c met
neighborpoints…
Maar alleen als:
• De twee punten nog niet geconnect zijn (cycles zijn verboden)
• De local planner een feasible path vindt
The learning phase
The learning phase
Nadeel van het niet toestaan van cycles: a en b kunnendicht bij elkaar liggen, maar verbonden zijn via een langPad.
Op te lossen door:
• Cycles toe te staan (meer local method calls)• Forest achteraf smooth maken (gunstig effect op query)• Smooth maken in query phase
The learning phase
Keuzen om te maken in de motion planning:
• Wat voor local method (snel&dom / traag&slim) ?
• Hoe de neighbor-set te definen ? (veel neighbors = traagheid)
• Wat voor metric ? (moet kans op local method-failure reflecteren)
The query phase
• Vindt een minimaal pad om startconfig s te connecten met de graaf
• Vindt een minimaal pad om goalconfig g te connecten met de graaf
• Loop at random wat paden af (random presteert beter dan straightforward methoden)
The query phase
Paden kunnen lelijk zijn doordat de graaf een forest is, of
vanwege de random-walks. De oplossing is smoothing:
• Selecteer random configs (c1,c2)
• Gebruik local planner om (c1,c2) te smoothen
• Is nieuw pad Qnew korter dan Qold? -> Qnew is het nieuwe pad
Toepassing op directed graphs
• In undirected graph kan edge alleen worden toegevoegd als er een pad (a,b) en een pad (b,a) is
• Local method = symmetrisch als deze bij het vinden van (a,b) ook (b,a) vindt
• Als local method symmetrisch is, kan het beste een undirected graph worden gebouwd
• Als local method niet symmetrisch is, kan het beste een directed graph worden gebouwd
Toepassing op directed graphs
• Een robot A heeft de reversibility property als elk feasible pad voor A feasible blijft als het omgekeerd wordt
• Maw: als A een velocity v kan halen, kan hij ook een velocity -v halen
Toepassing op directed graphs
• Observatie: als A de reversibility property heeft, kan de local method symmetrisch gemaakt worden door paden te reversen waar nodig
• Dit impliceert dat als A de reversibility property heeft, er een undirected graph gebruikt kan worden
• Voor forward car-like robots is er een directed graph nodig
Toepassing op directed graphs
Learning phase in directed graphs:
• Er worden twee neighbor-sets gebruikt: FN(c) en BN(c).
• FN(c): Probeer paden (c,*)
• BN(c): Probeer paden (*,c)
Toepassing op directed graphs
Learning phase in directed graphs:
• Edges zijn niet langer redundant wanneer ze deel uitmaken van cycles
• Edge-redundantie doet zich voor wanneer er meerdere paden naar een punt zijn te vinden
Toepassing op directed graphs
Toepassing op directed graphs
Learning phase in directed graphs:
• Om redundantie te voorkomen, moeten de neighbor-definities strakker worden aangetrokken
• Een nearby node n is nu slechts een forward neighbor van c als geldt dat er geen andere node n` is zodat D(c,n`) < D(c,n)
Toepassing op directed graphs
Query phase in directed graphs:
• Zelfde wijze als bij undirected graphs
• Verschil 1: wanneer er random-walks vanuit de goalnode worden geprobeerd, geldt dat deze paden feasible-when-reversed moeten zijn
• Verschil 2: Query mapping-berekeningen zijn wat duurder
Definitie car-like robots
• Solide planair object (polygoon)
• Front point F (fixed)
• Rear point R (fixed)
• Max steering angle Umax (kleiner dan ½ PI)
Definitie car-like robots
• (x,y,theta): R staat op (x,y), orientatie van (R,F) is theta
• Positieve v = velocity richting F
• Negatieve v = velocity richting R
• (U,v) = control van A
• U heeft waarde Umax of waarde -Umax
• v heeft waarde 1 of -1
Definitie car-like robots
• Als U = 0, dan beweegt A translationeel over een lijn
• Als U != 0, dan beweegt A rotationeel om een punt
• Als |U| = Umax, dan beweegt A volgens een extreme rotational path
Definitie car-like robots
• Het te bouwen pad zal bestaan uit sequenties van translationele paden en extreem rotationele paden
• De gebruikmaking van slechts extreem rotationele paden beperkt het aantal mogelijke oplossingen niet
Toepassing op general car-like robots
Er zijn 4 dingen aan te passen:
• De local method• De metric• De random walks in query phase
• Guiding node adding by geometry of the workspace
Toepassing op general car-like robots
Local method:
• Simpele methode: construeer voor (c1,c2) een pad, en retourneer dit als er geen obstakel-intersectie is
• De paden die geconstrueerd worden zijn RTR-paden
Toepassing op general car-like robots
Toepassing op general car-like robots
De metric:
• De lengte van het pad (c1,c2) is gedefinieerd als de lengte van het korste RTR-pad hiertussen
• Het aantal metric-berekeningen groeit kwadratisch, vandaar is er de ‘metric grid optimization’
Toepassing op general car-like robots
Random walks in query phase:
• NW = max walks per query
• LW = max lengte per walk
• Cs = startpunt voor random walk
• lW = random lengte uit range [0..LW]
• (U,v) = een random control
Toepassing op general car-like robots
Random walks in query phase:
• Voer de motion uit in control (U,v)
Stop als:
• Collision detected -> nieuw control, herhaal procedure
• Lengte lW is bereikt -> stop random walk
Toepassing op general car-like robots
Random walks in query phase:
• Voor NW en LW moeten experimenteel goede waarden worden gekozen
Toepassing op general car-like robots
Guiding node adding by geometry of the workspace:
• Gebruikmaking van ‘geometric node adding strategy’
• Plaats nodes op ‘handige’ punten, bijvoorbeeld in het midden van gangen
Toepassing op general car-like robots
Guiding node adding by geometry of the workspace:
Toepassing op general car-like robots
Resultaten…
Toepassing op forward car-like robots
Er zijn 4 dingen aan te passen:
• De local method• De metric• De random walks in query phase
• Guiding node adding by geometry of the workspace
Toepassing op forward car-like robots
The local method:
• RTR-forward-paden worden op dezelfde wijze geconstrueerd als RTR-paden
• Maak een RTR-forward-pad tussen (c1,c2) en retourneer dit mits er geen obstakel-intersectie is
Toepassing op forward car-like robots
De metric:
• Blijft onveranderd
• Afstand tussen c1 en c2 is de lengte van het kortst mogelijke RTR-forward-pad tussen
• Wederom grid-optimalisatie
Toepassing op forward car-like robots
Random walks in query phase:
• Er zijn twee typen random walks: forward-walks, en backward-walks
• Forward-walks: feasible paden vanuit startconfig s
• Backward-walks: feasible-when-reversed paden vanuit goalconfig g
Toepassing op forward car-like robots
Random walks in query phase:
• Wederom wordt er een random control (U,v) gekozen
• Echter, voor v wordt slechts de positieve waarde 1 gekozen
Toepassing op forward car-like robots
Guiding node adding by geometry of the workspace:
• Geometric node adding strategy is nog steeds toepasbaar, maar…
• Er wordt een methode toegepast die ervoor zorgt dat er geen nodes worden ge-add die waarschijnlijk toch niet worden gebruikt in de query phase
Toepassing op forward car-like robots
Guiding node adding by geometry of the workspace:
• Area(B) = een collectie van configuraties ci
• Voor ci geldt: er ontstaat een collision met B wanneer er vertrokken wordt (forwards/backwards) vanuit elke inkomende/uitgaande edge
Toepassing op forward car-like robots
Guiding node adding by geometry of the workspace:
• Observatie: als x een element is van area(B), kan x geen deel uitmaken van een feasible path (= niet geblokt) tussen c1 en c2 (x = c1 of x = c2)
• Conclusie: alle nodes die geblokt zijn door B (= area(B)) mogen weggegooid worden
Toepassing op forward car-like robots
Guiding node adding by geometry of the workspace:
• Experimenten wijzen uit dat dit laatste meestal wel standhoudt, zolang er gewerkt wordt met convexe objecten
• Idee: voorafgaande aan learning phase zou je objecten convex kunnen maken…
Toepassing op forward car-like robots
Resultaten…
Conclusie
• Snel
• Simpel
• Geschikte methode om paden te vinden voor car-like robots
Vragen ?