Title: Dynamic-Domain%20RRTs
1Dynamic-Domain RRTs
Anna Yershova, Steven M. LaValle 03/08/2006
2Basic Motion Planning Problem
- Given
- 2D or 3D world
- Geometric models of obstacles
- Geometric models
- Configuration space
- Initial and goal configurations
- Task
- Compute a collision free path that connects
initial and goal configurations
3Rapidly-exploring Random Trees (RRTs)
- Introduced by LaValle and Kuffner, ICRA 1999.
- Applied, adapted, and extended in many works
Frazzoli, Dahleh, Feron, 2000 Toussaint, Basar,
Bullo, 2000 Vallejo, Jones, Amato, 2000 Strady,
Laumond, 2000 Mayeux, Simeon, 2000 Karatas,
Bullo, 2001 Li, Chang, 2001 Kuffner, Nishiwaki,
Kagami, Inaba, Inoue, 2000, 2001 Williams, Kim,
Hofbaur, How, Kennell, Loy, Ragno, Stedl,
Walcott, 2001 Carpin, Pagello, 2002 Branicky,
Curtiss, 2002 Cortes, Simeon, 2004 Urmson,
Simmons, 2003 Yamane, Kuffner, Hodgins, 2004
Strandberg, 2004 ... - Also, applications to biology, computational
geography, verification, virtual prototyping,
architecture, solar sailing, computer graphics,
...
4The RRT Construction Algorithm
- GENERATE_RRT(xinit, K, ?t)
- T.init(xinit)
- For k 1 to K do
- xrand ? RANDOM_STATE()
- xnear ? NEAREST_NEIGHBOR(xrand, T)
- if CONNECT(T, xrand, xnear, xnew)
- T.add_vertex(xnew)
- T.add_edge(xnear, xnew, u)
- Return T
xnear
xnew
xinit
The result is a tree rooted at xinit
5A Rapidly-exploring Random Tree (RRT)
6Voronoi Biased Exploration
Is this always a good idea?
7Voronoi Diagram in R 2
8Voronoi Diagram in R 2
9Voronoi Diagram in R 2
10Refinement vs. Expansion
refinement
expansion
Where will the random sample fall? How to control
the behavior of RRT?
11Limit Case Pure Expansion
- Let X be an n-dimensonal ball,
- in which r is very large.
- The RRT will explore n 1 opposite directions.
- The principle directions are vertices of a
regular (n 1)-simplex
12Determining the Boundary
Expansion dominates
Balanced refinement and expansion
The tradeoff depends on the size of the bounding
box
13Controlling the Voronoi Bias
- Refinement is good when multiresolution search is
needed - Expansion is good when the tree can grow and not
blocked by obstacles - Main motivation
- Voronoi bias does not take into account obstacles
- How to incorporate the obstacles into Voronoi
bias?
14Bug Trap
Small Bounding Box
Large Bounding Box
- Which one will perform better?
15Voronoi Bias for the Original RRT
16Visibility-Based Clipping of the Voronoi Regions
Nice idea, but how can this be done in
practice? Even better Voronoi diagram for
obstacle-based metric
17A Boundary Node
- (a) Regular RRT, unbounded Voronoi region
- (b) Visibility region
- (c) Dynamic domain
18A Non-Boundary Node
- (a) Regular RRT, unbounded Voronoi region
- (b) Visibility region
- (c) Dynamic domain
19Dynamic-Domain RRT Bias
20Dynamic-Domain RRT Construction
21Dynamic-Domain RRT Bias
Tradeoff between nearest neighbor calls and
collision detection calls
22Recent Efforts
- Adaptive tuning of the radius
- the radius is not fixed but is increased with
every extension success and is decreased with
every failure - Nearest neighbor calls
- kd-tree based implementation
- O(log n) instead of naïve O(n) query time
- Uniform sampling from dynamic domain
- Rejection-based method is not efficient for high
dimensions - Uniform distribution should be generated directly
23Adaptive Tuning of Parameter
24Adaptive Tuning of Parameter
25Nearest Neighbor Calls Uniform Sampling
- Efficient implementation using kd-trees
- O(log n) query time instead of naïve O(n) query
time
26KD-trees
The kd-tree is a powerful data structure that is
based on recursively subdividing a set of points
with alternating axis-aligned hyperplanes. The
classical kd-tree uses O(dn lgn) precomputation
time, O(dn) space and answers queries in time
logarithmic in n, but exponential in d.
l1
l3
l2
l4
l5
l7
l6
l8
l9
l10
27Kd-trees. Construction
l9
l1
l5
l6
l3
l2
l3
l2
l10
l8
l4
l5
l7
l6
l7
l4
l8
l9
l10
28Kd-trees. Query
4
6
l9
l1
7
l5
l6
8
l3
l2
l3
l2
5
9
10
3
l10
l8
l4
l5
l7
l6
l7
2
1
l4
11
l8
l9
l10
29Shrinking Bug Trap
Large Medium
Small
30Shrinking Bug Trap
The smaller the bug trap, the better the
improvement
31Wiper Motor (courtesy of KINEO)
- 6 dof problem
- CD calls are expensive
32Molecule
- 68 dof problem was solved in 2 minutes
- 330 dof in 1 hour
- 6 dof in 1 min. 30 times improvement comparing to
RRT - CD calls are expensive
33Labyrinth
- 3 dof problem
- CD calls are not expensive
343D grid
- 6 dof problem
- CD calls are not expensive
35Spiral
- 6 dof problem
- CD calls are not expensive
36Conclusions
- Controlling Voronoi bias is important in RRTs.
- Provides dramatic performance improvements on
some problems. - Does not incur much penalty for unsuitable
problems. - Work in Progress
- Application to planning under differential
constraints. - Application to planning for closed chains.