RRT-Connect
AdvancedA path planner that grows two random trees, one from the start and one from the goal, and greedily connects them.
RRT-Connect was introduced by James Kuffner and Steven LaValle at ICRA 2000 as a bidirectional version of the rapidly-exploring random tree (RRT). A plain RRT grows only one tree from the start and occasionally attempts to connect to the goal; RRT-Connect instead grows a tree from both the start and the goal. Each round, one tree extends one step toward a random sample to create a new node, and then the other tree extends step by step toward that new node until it connects or is blocked by an obstacle — the ‘CONNECT’ heuristic. A connection means a path has been found, and the two trees then swap roles for the next round. This greedy connection strategy is usually fast in spaces that aren't too cluttered, which suits arms with six or seven degrees of freedom that just need to answer a single ‘get from A to B’ query. It is probabilistically complete but doesn't aim for the shortest path, so the result is often zigzagging and needs post-processing to smooth. The open-source planning library OMPL implements it as RRTConnect, and MoveIt can call it directly.
ExampleMoveIt's official Panda arm configuration lists RRTConnectkConfigDefault among its OMPL planners. After it plans a collision-free path, the path still typically needs smoothing and time parameterization before it is sent to the robot.
- Also called
- Bidirectional RRT, RRTConnect
- Related
- Rapidly-exploring Random Tree · Rapidly-exploring Random Tree · Sampling-Based Planning · Probabilistic Completeness · Open Motion Planning Library (OMPL) · Path Smoothing (Shortcutting)
- Sources
- OMPL: ompl::geometric::RRTConnect(Kuffner & LaValle, ICRA 2000, pp. 995–1001)
S. M. LaValle, Planning Algorithms, Chapter 5(bidirectional RDT/RRT)
moveit_resources: panda_moveit_config/config/ompl_planning.yaml