170 likes | 299 Views
On Delaying Collision Checking in PRM Planning. Gilardo Sánchez and Jean-Claude Latombe January 2002. Presented by Randall Schuh 2003 April 23. Background. Most of a PRM planner’s time is spent checking collisions We can get better results by: Improving collision checking
E N D
On Delaying Collision Checking in PRM Planning Gilardo Sánchez and Jean-Claude Latombe January 2002 Presented by Randall Schuh 2003 April 23
Background • Most of a PRM planner’s time is spent checking collisions • We can get better results by: • Improving collision checking • Designing smarter sampling strategies • Avoiding testing all connections between milestones
SBL Planner • Single-query • Bi-directional • Lazy collision-checking
Experimental Foundations Observations from Hsu’s planner led to SBL: • Most local paths are not on the final path • Collision-free tests are most expensive • Short connections between two milestones have high prior probabilities of being free • If a connection is colliding, it’s midpoint has high probability of being in collision
Short connections between two milestones have high prior probabilities of being free
If a connection is colliding, it’s midpoint has high probability of being in collision
“Fat Obstacles” A short colliding segment with collision free endpoints is necessarily almost tangential to an obstacle region in C, an event that has small probability of happening.
Description of the SBL Planner SBL Algorithm • Install qinit and qgoal as the roots of Tinit and Tgoal respectively • Repeat s times • EXPAND • τ ← CONNECT • If τ ≠ nil then return τ • Return failure
EXPAND EXPAND Algorithm • Pick T to be either Tinit or Tgoal, each with P=½ • Pick a milestone m at random, with P π(m) ~ 1/η(m) • For i = 1,2,… until a new q been generated • Pick a configuration q uniformly at random from B(m, ρ/i) • If q is collision-free, then install it as a child of m in T
Without diffusion With diffusion Diffusion with a Grid
CONNECT CONNECT Algorithm • m ← most recently created milestone • m’ ← closest milestone to m in the other tree • If d(m,m’) < ρ then • Connect m and m’ by a bridge w • τ ← path connecting qinit and qgoal • Return TEST-PATH • Return nil
SBL Example qgoal qinit
Some Examples Nrobot = 3,000; Nobst = 50,000 Tav = 0.17 s Nrobot = 5,000; Nobst = 83,000 Tav = 4.42 s
Impact of Lazy Collision Checking Average performance with lazy collision checking Average performance without lazy collision checking Speed-ups ranging from 4 to 40
Obstacle Jumping Example qgoal qinit