On Delaying Collision On Delaying Collision Checking in PRM PlanningChecking in PRM Planning
Gilardo Sánchez and Jean-Claude Latombe
January 2002
Presented by Randall Schuh
2003 April 23
BackgroundBackground
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
Experimental FoundationsExperimental 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 Short connections between two milestones have high prior probabilities of being freehave high prior probabilities of being free
0.00
0.20
0.40
0.60
0.80
1.00
1.200.
02
0.06 0.1
0.14
0.18
0.22
0.26 0.3
0.34
0.38
0.42
0.46 0.5
0.54
0.58
0.62
0.66 0.7
Length of the segment
Rat
io o
f re
ject
ion
s /
tota
l
If a connection is colliding, it’s midpoint has high If a connection is colliding, it’s midpoint has high probability of being in collisionprobability of being in collision
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.000.
02
0.06
0.1
0.14
0.18
0.22
0.26
0.3
0.34
0.38
0.42
0.46
0.5
0.54
0.58
0.62
0.66
0.7
Length of the segment
Rat
io r
eje
cte
d m
idp
oin
ts /
tota
l
““Fat Obstacles”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 PlannerDescription of the SBL Planner
SBL Algorithm1. Install qinit and qgoal as the roots of Tinit and Tgoal
respectively
2. Repeat s times1. EXPAND
2. τ ← CONNECT
3. If τ ≠ nil then return τ
3. Return failure
EXPANDEXPAND
EXPAND Algorithm1. Pick T to be either Tinit or Tgoal, 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 generated1. 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
CONNECTCONNECT
CONNECT Algorithm1. m ← most recently created milestone
2. m’ ← closest milestone to m in the other tree
3. If d(m,m’) < ρ then1. Connect m and m’ by a bridge w
2. τ ← path connecting qinit and qgoal
3. Return TEST-PATH
4. Return nil
Nrobot = 5,000; Nobst = 83,000
Tav = 4.42 s
Nrobot = 3,000; Nobst = 50,000
Tav = 0.17 s
Some ExamplesSome Examples
Impact of Lazy Collision CheckingImpact of Lazy Collision Checking
Average performance with lazy collision checkingAverage performance with lazy collision checking
Average performance without lazy collision checking
Speed-ups ranging from 4 to 40
Example Running Milestones in Milestones Total Nr of Collision Checks Sampled Comput. Time for Std. DeviationTime(secs) Roadmap in Path Collision Checks on the Path Milestones Coll-Check (secs) for running time
1a 0.60 159 13 1483 342 245 0.58 0.381b 4.45 1609 39 11211 411 7832 4.21 2.481c 4.42 1405 24 7267 277 3769 4.17 1.861d 0.17 33 10 406 124 47 0.17 0.071e 6.99 4160 44 12228 447 6990 6.30 3.55
Example Running Milestones in Milestones Total Nr of Collision Checks Sampled Comput. Time for Std. DeviationTime(secs) Roadmap in Path Collision Checks on the Path Milestones Coll-Check (secs) for running time
1a 2.82 22 5 7425 173 83 2.81 3.01 1b 106.20 3388 32 300060 421 9504 105.56 59.30 1c 18.46 771 16 38975 219 3793 18.35 15.34 1d 1.03 29 9 2440 123 46 1.02 0.70 1e 293.77 6737 24 666084 300 11971 292.40 122.75