RRT-Blossom RRT with local flood-fill behavior Maciej Kalisiak DGP Laboratory University of Toronto Michiel van de Panne Imager Laboratory University of British Columbia
Highly-constrained terrain
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 terrain
Flood-fill traits to emulate ► generally, a flood-fill: has a constant rate of fill does not visit a location more than once ► in RRT context this translates to: make sure tree gains an edge on each iteration do not re-explore the same space twice
Key modifications ► receding edges allow edges that recede from the target point ► re-exploration prevention do not revisit same space with multiple nodes ► node “blossoming” avoid duplicate work by immediately and permanently keeping or discarding tested edges
Receding edges ► often provide useful information → worth keeping ► RRT does not allow receding edges ► RRT-CT † allows receding edges, but does not guard against resultant re-exploration † P.Cheng & S.M.LaValle, Reducing Metric Sensitivity in Randomized Trajectory Design, IROS 2001
Re-exploration (“regression”) ► RRT guarantees no edge/node overlap ► receding edges break this guarantee ► now possible: multiple tree nodes exploring same space ► re-exploration = wasted effort (often huge!)
Preventing re-exploration ► generally, re-exploration non-trivial to detect ► approximation that works well: ► prevention: do not instantiate edges which satisfy the above edge regresses if its leaf node is closer to a tree node other than its parent
Blossoming ► instantiate all valid edges out of chosen node ► avoids duplicate edge computation and testing ► RRT: “memoryless” recomputes good & bad edges ► RRT-CT: remembers only bad edges recomputes good edges ► RRT-Blossom: “remembers” all edges by instantiating all valid edges out of node, no need to remember anything
Viability issue ► dead-end branches can “block” needed edges can prevent discovery of solution! ► fix for re-exploration check: ignore such nonviable branches ► viability discovered on-the-fly
Experiments: agents pointcarbike kinematickinodynamic
Experiments: terrains T complex rooms tunnel
Results: point (holonomic)
Results: car (nonholonomic)
Results: bike (kinodynamic)
Take-away ► RRT-Blossom: more robust RRT highly-constrained terrain → big speedup deep local minima → big speedup regular terrain → comparable performance ► performs well in both settings kinematic kinodynamic ► more at