Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.
-
Upload
melvyn-james -
Category
Documents
-
view
212 -
download
0
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/1.jpg)
Rapidly Exploring Random Trees for Path Planning: RRT-Connect
Dave Lattanzi
![Page 2: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/2.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/3.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/4.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/5.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/6.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/7.jpg)
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.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/8.jpg)
From Kuffner’s website
![Page 9: Rapidly Exploring Random Trees for Path Planning: RRT-Connect Dave Lattanzi.](https://reader035.fdocuments.in/reader035/viewer/2022072015/56649ed05503460f94bddc5f/html5/thumbnails/9.jpg)
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