On Delaying Collision Checking in PRM Planning G. Sánchez and J. Latombe presented by Niloy J. Mitra
Background PRM spends a large amount of time checking for collisions Most connection paths go unused Collision free paths take longer to verify Shorter connections have higher probability of being free paths
Improvement possible by Introducing better collision checking Designing smarter sampling strategies Avoiding testing all connections between milestones
SBL Planner Single-query Bi-directional Lazy collision-checking
Experimental Foundation 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 likely to be collision-free
If a connection is colliding, it’s midpoint likely to collide
“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 1. Install q init and q goal as the roots of T init and T goal respectively 2. Repeat s times 1. EXPAND 2. τ ← CONNECT 3. If τ ≠ nil then return τ 3. Return failure
EXPAND EXPAND Algorithm 1. Pick T to be either T init or T goal, each with P= Pick a milestone m at random, with P π (m) ~ 1/ η (m) 3. For i = 1,2,… until a new q been generated 1. Pick a configuration q uniformly at random from B(m, ρ/i) 2. If q is collision-free, then install it as a child of m in T
Diffusion with a Grid Without diffusionWith diffusion
CONNECT CONNECT Algorithm 1. m ← most recently created milestone 2. m’ ← closest milestone to m in the other tree 3. If d(m,m’) < ρ then 1. Connect m and m’ by a bridge w 2. τ ← path connecting q init and q goal 3. Return TEST-PATH 4. Return nil
SBL Example q init q goal
N robot = 5,000; N obst = 83,000 T av = 4.42 s N robot = 3,000; N obst = 50,000 T av = 0.17 s Some Examples
Impact of Lazy Collision Checking Average performance with lazy collision checking Average performance without lazy collision checking Speed-ups ranging from 4 to 40
Some More Examples
More Examples
Obstacle Jumping Example q init q goal
Comments Simple algorithm Big speed gain