RRT and its variants

Bryant Chandler

What are advantages and disadvantages of A*?

RRT - Rapidly Exploring Random Tree

  1. Randomly sample a point
  2. Find the nearest neighbor
  3. Create a new node, no longer than max segment from nearest neighbor in the direction of the sampled point
  4. Connect to nearest neighbor as parent

RRT - Implementation Considerations

  1. How will you represent nodes in the tree?
  2. How will you represent obstacles?
  3. How will you choose a max segment length?
  4. How will you find the nearest neighbor?
  5. How will you detect obstacle collisions?
  6. How will you visualize the tree?
  7. How will you compute a path once you have found one?

RRT* (* for optimal)

  1. A point is sampled and all nodes in a neighborhood are found
  2. The neighbor that would provide the lowest cost is selected and becomes parent of sampled point
  3. All other neighbors are checked to see if they would reduce cost by rewiring to the new node as their parent

RRT* Replanning Limitation

  1. Robot starts at red headed to purple
  2. At green it realizes that it really wants to go to blue
  3. The only way to get there is to replan (expensive)

Online RRT*

  • Requirements
    • Sample indefinitely without becoming intractible
    • Allow both start and end points to move
  • Solution
    • Run RRT* to saturate configuration space
      • A fixed threshold based on area
    • Continue sampling and rewiring without adding new nodes

Move Start Point

A tree with the start node as a square

A new start node (blue square) is made parent of the original and its neighbors are found

Neighbors are rewired to the new start node

Online Sampling

Sample a point (highlighted in pink) and find all nodes in its neighborhood

Find the node in the neighborhood that has the lowest cost (blue)

Rewire all neighbors to the best node if it would improve their cost

Impact of ORRT* on # of Nodes

  • Moving the start point acts like a memory leak
  • Eventually becomes a significant problem

Online Pruning

Prune a leaf node in the vicinity of the new root after moving start

FMT* - Fast Marching Tree

Execution Efficiency

Online Pruning Efficiency

Time-Varying Cost

ORRT*

OFMT*

CS 470 RRT

By Bryant Chandler

CS 470 RRT

  • 690