Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

9
Rapidly Exploring Random Trees for Path Planning: RRT- Connect Dave Lattanzi

Transcript of Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Page 1: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Rapidly Exploring Random Trees for Path Planning: RRT-Connect

Dave Lattanzi

Page 2: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Background

“Complete” algorithms (Dijkstra) are slow• especially in higher dimensional

configuration space

Kuffner and LaValle proposed using randomized methods

Published in IEEE, 2000

Page 3: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Basic Concept

Use randomly exploring trees

Build trees from both start and finish nodes

Path is found when the two trees connect

Page 4: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Building a Random Tree

Tree building = graph building

Start the tree at a given node

Pick a random node in the graph of the map

Find the nearest node in the tree

Extend from nearest node by steps towards random node as long as possible

Add the new edge and vertex to the tree

Page 5: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Random Tree Pseudocode

Def BuildTree(start_node, Nnodes, Δstep):

Initialize(Tree, start_node)

For i = 1 to Nnodes:

Get(random_node)

nearest_node = Nearest(random_node, tree)

new_node = Extend(nearest_node, Δstep)

Tree.add(new_node)

Return Tree

Page 6: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

RRT-Connect

Build a tree from start and end nodes

Path is found when two trees meet

Page 7: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

RRT Connect Pseudocode

Def RRT(start_node, end_node, K (total nodes in map), Δstep):

Initialize(startTree, start_node)

Initialize(endTree, end_node)

for i = 1 to K:

ExtendTree(startTree, Δstep)

ExtendTree(endTree, Δstep)

if Connect(startTree,endTree) = True:

Return Path

Page 8: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

From Kuffner’s website

Page 9: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.

Advantages and Disadvantages

Fast!

Will always find a path if possible

No parameter tuning

But:

Computational time is highly variable

Path is not repeatable or predictable

Lots of hunting for nearest neighbors in big lists