Download - Robotic Motion Planning: RRT's
![Page 1: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/1.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Robotic Motion Planning:RRT’s
Robotics Institute 16-735http://www.cs.cmu.edu/~motion
Howie Chosethttp://www.cs.cmu.edu/~choset
![Page 2: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/2.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Overview
• Probabilistic RoadMap Planning (PRM) by Kavraki– samples to find free configurations– connects the configurations (creates a graph)– is designed to be a multi-query planner
• Expansive-Spaces Tree planner (EST) and Rapidly-exploring Random Tree planner (RRT)– are appropriate for single query problems
• Probabilistic Roadmap of Tree (PRT) combines both ideas
![Page 3: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/3.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Next HW Assignment
• Implement a PRM planner for a multi-link (at least four) robot arm. The arm can be a simple planar arm (which will simplify the graphics), or a 3D arm. The arm can be composed of line segments (which will make collision checking easier) rather thanfinite volume links. All you need to do is write code to detect the intersection between line segments and polygons. If you want, you can use collision checking software that is available on theweb.
• How was the previous?
• This is the last one
![Page 4: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/4.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Rapidly-Exploring Random Trees (RRTs)[Kuffner, Lavalle]
The Basic RRTsingle treebidirectionalmultiple trees (forests)
RRTs with Differential Constraintsnonholonomickinodynamic systemsclosed chains
Some Observations and AnalysisSome Observations and Analysisnumber of branches number of branches uniform convergenceuniform convergenceresolution completenessresolution completenessleaf nodes vs. interior nodesleaf nodes vs. interior nodes
Performance & Implementation IssuesPerformance & Implementation IssuesMetrics and Metric sensitivityMetrics and Metric sensitivityNearest neighborsNearest neighborsCollision CheckingCollision CheckingChoosing appropriate step sizesChoosing appropriate step sizes
![Page 5: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/5.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
High-Dimensional Planning as of 1999
Kavraki, Svestka, Latombe, Overmars ’95; Amato, Wu ’96; Simeon, Laumound, Nissoux ’99; Boor, Overmars, van der Stappen’99;
Barraquand, Latombe ’89; Mazer, Talbi, Ahuactzin, Bessiere ’92; Hsu, Latombe, Motwani ’97; Vallejo, Jones, Amato ’99;
EXAMPLE: Potential-Field
EXAMPLE: PRM
Single-Query:
Multiple-Query:
Greedy, can take a long time but good when you can dive into the
solution
Spreads out like uniformity but need lots of
sample to cover space
TENSION
![Page 6: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/6.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Rapidly-Exploring Random Tree
![Page 7: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/7.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Path Planning with RRTs(Rapidly-Exploring Random Trees)
BUILD_RRT (qinit) {T.init(qinit); for k = 1 to K do
qrand = RANDOM_CONFIG(); EXTEND(T, qrand)
}
EXTEND(T, qrand)
qnear
qnew
qinitqrand
[ Kuffner & [ Kuffner & LaValleLaValle , ICRA, ICRA’’00]00]
![Page 8: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/8.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Path Planning with RRTs(Some Details)
BUILD_RRT (qinit) {T.init(qinit); for k = 1 to K do
qrand = RANDOM_CONFIG(); EXTEND(T, qrand)
}
EXTEND(T, qrand)
qnear
qnew
qinitqrand
STEP_LENGTH: How far to sample1. Sample just at end point2. Sample all along3. Small Step
Extend returns1. Trapped, cant make it2. Extended, steps toward node3. Reached, connects to node
STEP_SIZE1. Not STEP_LENGTH2. Small steps along way3. Binary search
![Page 9: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/9.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
RRT vs. Exhaustive Search
• Discrete
• Continuous
A* may try all edges Probabilistically subsample all edges
Continuum of choices Probabilistically subsample all edges
![Page 10: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/10.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Naïve Random Tree
Start with middle
Sample near this node
Then pick a node at random in tree
Sample near it
End up Staying in middle
![Page 11: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/11.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
RRTs and Bias toward large Voronoi regions
http://msl.cs.uiuc.edu/rrt/gallery.html
![Page 12: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/12.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Biases
• Bias toward larger spaces• Bias toward goal
– When generating a random sample, with some probability pick the goal instead of a random node when expanding
– This introduces another parameter– James’ experience is that 5-10% is the right choice– If you do this 100%, then this is a RPP
![Page 13: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/13.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
RRT vs. RPP
goal
Greedy gets you
stuck here
RRT’s will pull away and better approximate cost-to-go
![Page 14: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/14.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Grow two RRTs towards each other
qinit
qgoal
qnew
qtarget
qnear
[ Kuffner, [ Kuffner, LaValleLaValle ICRA ICRA ‘‘00]00]
![Page 15: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/15.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
A single RRT-Connect iteration...
![Page 16: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/16.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
1) One tree grown using random target
![Page 17: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/17.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qtarget
2) New node becomes target for other tree
![Page 18: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/18.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qtarget
qnear
3) Calculate node “nearest” to target
![Page 19: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/19.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qnew
qtarget
qnear
4) Try to add new collision-free branch
![Page 20: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/20.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qnew
qtarget
qnear
5) If successful, keep extending branch
![Page 21: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/21.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qnew
qtarget
qnear
5) If successful, keep extending branch
![Page 22: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/22.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qnew
qtarget
qnear
5) If successful, keep extending branch
![Page 23: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/23.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
qnear
6) Path found if branch reaches target
![Page 24: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/24.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qinit
qgoal
7) Return path connecting start and goal
![Page 25: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/25.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Basic RRT-Connect
RRT_CONNECT (qinit, qgoal) {Ta.init(qinit); Tb.init(qgoal); for k = 1 to K do
qrand = RANDOM_CONFIG(); if not (EXTEND(Ta, qrand) = Trapped) then
if (EXTEND(Tb, qnew) = Reached) thenReturn PATH(Ta, Tb);
SWAP(Ta, Tb);Return Failure;
}
Instead of switching, use Ta as smaller tree. This helped James a lot
![Page 26: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/26.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
qnear
qrand
qrand
qnear
qquuqfq ′=′ at arrive to from action use --- ),(
)),(min(arg chose * qqdu rand ′= Is this the best?
Mixing position and velocity, actually mixing position, rotation and velocity is hard
![Page 27: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/27.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
So, what do they do?
• Use nearest neighbor anyway
• As long as heuristic is not bad, it helps (you have already given up completeness and optimality, so what the heck?)
• Nearest neighbor calculations begin to dominate the collision avoidance (James says 50,000 nodes)
• Remember K-D trees
![Page 28: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/28.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Articulated Robot
![Page 29: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/29.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Highly Articulated Robot
![Page 30: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/30.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Hovercraft with 2 Thusters
![Page 31: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/31.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Out of This World Demo
![Page 32: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/32.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Left-turn only forward car
![Page 33: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/33.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Analysis
The limiting distribution of vertices:• THEOREM: Xk converges to X in probability
Xk : The RRT vertex distribution at iteration kX : The distribution used for generating samples
• KEY IDEA: As the RRT reaches all of Qfree, the probability that qrandimmediately becomes a new vertex approaches one.
Rate of convergence:Rate of convergence:The probability that a path is found increases The probability that a path is found increases exponentially with the number of iterations.exponentially with the number of iterations.
“This is the bain or the worst part of the algorithm,” J. Kuffner
![Page 34: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/34.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Open Problems
Open Problems• Rate of convergence• Optimal sampling strategy?
Open Issues• Metric Sensitivity• Nearest-neighbor Efficiency
![Page 35: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/35.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Applications of RRTsRobotics ApplicationsRobotics Applications
mobile roboticsmobile roboticsmanipulationmanipulationhumanoidshumanoids
Other ApplicationsOther Applicationsbiology (drug design)biology (drug design)manufacturing and virtual prototyping (assembly analysis)manufacturing and virtual prototyping (assembly analysis)verification and validationverification and validationcomputer animation and realcomputer animation and real--time graphicstime graphicsaerospaceaerospace
RRT extensionsRRT extensionsdiscrete planning (STRIPS and Rubik's cube)discrete planning (STRIPS and Rubik's cube)realreal--time time RRTsRRTsanytime anytime RRTsRRTsdynamic domain dynamic domain RRTsRRTsdeterministic deterministic RRTsRRTsparallel parallel RRTsRRTshybrid hybrid RRTsRRTs
![Page 36: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/36.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Diffusion Limited Aggregation
• Often used to model natural physical processes (e.g. snow accumulation, rust, etc.)
![Page 37: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/37.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Exploring Infinite Space
![Page 38: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/38.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Polar Sampling
![Page 39: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/39.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
RRT SummaryAdvantages• Single parameter• Balance between greedy search and exploration• Converges to sampling distribution in the limit• Simple and easy to implement
Disadvantages• Metric sensitivity• Nearest-neighbor efficiency• Unknown rate of convergence• “long tail” in computation time distribution
![Page 40: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/40.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
Links to Further Reading
• Steve LaValle’s online book:“Planning Algorithms” (chapters 5 & 14)http://planning.cs.uiuc.edu/
• The RRT page:http://msl.cs.uiuc.edu/rrt/
• Motion Planning BenchmarksParasol Group, Texas A&Mhttp://parasol.tamu.edu/groups/amatogroup/benchmarks/mp/
![Page 41: Robotic Motion Planning: RRT's](https://reader034.vdocument.in/reader034/viewer/2022042619/5868c34f1a28abde3f8bf6cd/html5/thumbnails/41.jpg)
RI 16-735, Howie Choset with slides from James Kuffner
PRT (Prob. Roadmap of Trees)
• Basic idea:– Generate a set of trees in the configuration space– Merge the trees by finding nodes that can be connected
• Algorithm– pick several random nodes– Generate trees T1, T2 .... Tn (EST or RRT)– Merge trees
• generate a representative super-node• Using PRS ideas to pick a neighborhood of trees• ∆ is now the tree-merge algorithm
– For planning• generate trees from initial and goal nodes towards closest supernodes• try to merge with “roadmap” of connected trees
• Note that PRS and tree-based algorithms are special cases