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: 1. Most local paths are not on the final path 2. Collision-free tests are most expensive 3. Short connections between two milestones have high prior probabilities of being free 4. 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 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=½ 2. 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 Examples 2
Some Examples 3
Obstacle Jumping Example q init q goal