520 likes | 637 Views
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.
E N D
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 Nadeel van het niet toestaan van cycles: a en b kunnen dicht bij elkaar liggen, maar verbonden zijn via een lang Pad. 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 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 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…