rrt-blossom rrt with local flood-fill behavior maciej kalisiak dgp laboratory university of toronto...
DESCRIPTION
Purpose ► highly-constrained environments less room to move → smaller search space → motion planning should be easier ► Rapidly-Exploring Random Trees (RRT) popular motion planning algorithm does poorly in highly-constrained terrain ► RRT-Blossom variation of RRT well adapted to such terrainTRANSCRIPT
RRT-BlossomRRT-BlossomRRT with local flood-fill RRT with local flood-fill
behaviorbehavior
Maciej KalisiakDGP Laboratory
University of [email protected]
Michiel van de PanneImager Laboratory
University of British [email protected]
Highly-constrained terrainHighly-constrained terrain
PurposePurpose►highly-constrained environmentshighly-constrained environments
less room to moveless room to move → → smaller search spacesmaller search space → → motion planning should be easiermotion planning should be easier
►Rapidly-Exploring Random Trees (Rapidly-Exploring Random Trees (RRTRRT)) popular motion planning algorithmpopular motion planning algorithm does poorly in highly-constrained terraindoes poorly in highly-constrained terrain
►RRT-BlossomRRT-Blossom variation of RRT well adapted to such terrainvariation of RRT well adapted to such terrain
Flood-fill traits to emulateFlood-fill traits to emulate►generally, a flood-fill:generally, a flood-fill:
has a constant rate of fillhas a constant rate of fill does not visit a location more than oncedoes not visit a location more than once
► in RRT context this translates to:in RRT context this translates to: make sure tree gains an edge on make sure tree gains an edge on eacheach iteration iteration do not re-explore the same space twicedo not re-explore the same space twice
Key modificationsKey modifications►receding edgesreceding edges
allow edges that recede from the target pointallow edges that recede from the target point►re-exploration preventionre-exploration prevention
do not revisit same space with multiple nodesdo not revisit same space with multiple nodes►node “blossoming”node “blossoming”
avoid duplicate work by immediately and avoid duplicate work by immediately and permanently keeping or discarding tested edgespermanently keeping or discarding tested edges
Receding edgesReceding edges
► often provide useful information → worth keepingoften provide useful information → worth keeping► RRTRRT does not allow receding edges does not allow receding edges► RRT-CTRRT-CT† allows receding edges, but does not allows receding edges, but does not
guard against resultant re-explorationguard against resultant re-exploration
† P.Cheng & S.M.LaValle, Reducing Metric Sensitivity in Randomized Trajectory Design, IROS 2001
Re-explorationRe-exploration(“regression”)(“regression”)
► RRTRRT guarantees no guarantees no edge/node overlapedge/node overlap
► receding edges break this receding edges break this guaranteeguarantee
► now possible: multiple tree now possible: multiple tree nodes exploring same spacenodes exploring same space
► re-exploration = wasted effort re-exploration = wasted effort (often huge!)(often huge!)
Preventing re-explorationPreventing re-exploration► generally, re-exploration non-trivial to detectgenerally, re-exploration non-trivial to detect► approximation that works well:approximation that works well:
► prevention: do not prevention: do not instantiate edges which instantiate edges which satisfy the abovesatisfy the above
edge regresses if its leaf node is closer to a tree node other than its parent
BlossomingBlossoming► instantiate instantiate allall valid edges out of chosen node valid edges out of chosen node► avoids duplicate edge computation and testingavoids duplicate edge computation and testing► RRTRRT: “memoryless”: “memoryless”
recomputes good & bad edgesrecomputes good & bad edges► RRT-CTRRT-CT: remembers only bad edges: remembers only bad edges
recomputes good edgesrecomputes good edges► RRT-BlossomRRT-Blossom: “remembers” all edges: “remembers” all edges
by instantiating all valid edges out of node, no need by instantiating all valid edges out of node, no need to remember anythingto remember anything
Viability issueViability issue► dead-end branches can “block” needed edgesdead-end branches can “block” needed edges
can prevent discovery of solution!can prevent discovery of solution!► fix for re-exploration check:fix for re-exploration check:
ignore such nonviable branchesignore such nonviable branches► viability discovered on-the-flyviability discovered on-the-fly
Experiments: agentsExperiments: agents
point car bike
kinematic kinodynamic
Experiments: terrainsExperiments: terrains
T
complex
rooms
tunnel
Results: pointResults: point(holonomic)(holonomic)
Results: carResults: car(nonholonomic)(nonholonomic)
Results: bikeResults: bike(kinodynamic)(kinodynamic)
Take-awayTake-away►RRT-BlossomRRT-Blossom: more robust RRT: more robust RRT
highly-constrained terrain → big speeduphighly-constrained terrain → big speedup deep local minima → big speedupdeep local minima → big speedup regular terrain → comparable performanceregular terrain → comparable performance
►performs well in both settingsperforms well in both settings kinematickinematic kinodynamickinodynamic
►more atmore athttp://www.dgp.toronto.edu/~mac/rrt-blossom/http://www.dgp.toronto.edu/~mac/rrt-blossom/