Title: Probabilistic Motion Planning
1Probabilistic Motion Planning
2Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
3Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
4Exact General-Purpose Path Planners
- Schwarz and Sharir, 1983 Exact cell
decomposition based on Collins technique
- Canny, 1987 Silhouette method
5Complete Solutions
- Small dofs
- Tailored solutions for specific problems.
- Example
- Non convex polygon (k sides)
- Translating and rotating
- Planar polygonal environment (O(n)).
- Constructing F in T((kn)3 log kn)
- Single query in O((kn)2?), for any ? gt 0.
6Complete Solutions
- Advantages
- Complete
- Specifically, handles narrow / tight passages.
- Bounded running time.
- Behavior well characterized.
- Insight
7Complete Solutions
- Disadvantages
- High complexity
- Hard to understand
- Hard to implement
- Inflexible to changing scenarios
- (different geometrical settings)
8Complete Solutions
- Existing complete algorithms become practically
useless unless dofs is low (between 3 and 5). - Complete solutions cannot be used for rigid
objects translating and rotating is 3D. - Nor for 6-dof manipulator arms.
9Real Applications
- Many dofs
- Problems may be more complex
10Extensions to the Basic Problem
- Nonholonomic constraints
- Dynamic constraints
- Optimal planning
- Uncertainty in control and sensing
- Moving obstacles
- Multiple robots
- Movable objects
- Deformable objects
- Goal is to gather data by sensing
11Application Graphic Animation of Digital Actors
James Kuffners PhD
12Application Design for Manufacturing
General Motors
General Electric
General Motors
13Application Computer-Assisted Surgical Planning
Joel Browns PhD
Rhea Tombropouloss PhD
14Application Prediction of Molecular Motions
Amit Singhs PhD
15Planner Wish List
- Complete
- Handles narrow / tight passages.
- Bounded running time.
- Behavior well characterized.
- Low complexity
- Not too hard to understand
- Not too hard to implement
- Scalable
16Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
17Principle of Randomized Planning
(Probabilistic Roadmap)
free space
Kavraki, Svetska, Latombe,Overmars, 95
18Probabilistic Scheme
- General Idea
- Trade a limited amount of
- completeness
- against a major gain in
- computing efficiency.
19Probabilistic Scheme
- Probabilistic Completeness
- If a solution path exists,
- the planner will find one
- in bounded time,
- with high probability.
- (weaker completeness but still interesting.)
20Probabilistic Scheme
- Probabilistic completeness become particularly
interesting if - ?
- the running time grows slowly with the
- inverse of the failure probability.
21Probabilistic Scheme
n dofs
A holonomic robot
C configuration space
Cfree free space
qinit, qgoal query configurations
22Probabilistic Scheme
- C is the cube 0, 1n.
- Each configuration is an n-tuple
- (q1, , qn).
23Probabilistic Scheme
- Cfree is implicitly given by a
- function CLEARANCE C??
- Maps any configuration q to the distance of the
robot placed according to q and - the obstacles
- two bodies of the robots
- (whichever is smaller)
24Probabilistic Scheme
- Cfree is implicitly given by a
- function CLEARANCE C??
- For complete planners, we computed an complete
and explicit representation of Cfree. - With prms, we only get one glimpse at a time of
Cfree.
25Probabilistic Scheme
- CLEARANCE(q) is the clearance of q.
- In case where the robot collides with an obstacle
or with itself, CLEARANCE(q) returns 0 or a
negative number. - CLEARANCE(q) gt 0 implies q ? Cfree .
-
- (Collision Detection)
26Probabilistic Scheme
- Maximal Curve Tracing Constant
- ? robot A
- ? positive constant ? s.t.,
- when A moves along a straight line in C between
any two configurations q and q - No point of A traces a curve segment longer than
??maxqi qi
27Probabilistic Scheme
from (?1, ?2) to (?1, ?2)
28Probabilistic Scheme
- Adjacency
- Configurations q, q with clearances ?, ?,
- resp., are adjacent if
- ??maxqi qi lt ½ max ?, ? .
29Probabilistic Scheme
?
?2
?
?1
30Probabilistic Scheme
- Clearly, if two configurations are adjacent, then
the straight line joining them lies entirely in
Cfree . - Why the ½ coefficient in
- ??maxqi qi lt ½ max ?, ?
- ?
31Probabilistic Scheme
d
q
q
? ? d, ? 1 maxqi qi lt d
32Probabilistic Scheme
- Note that the map
- C?C ? max qi qi
- is in the L? distance in C.
- We could choose other distances in C to define
adjacency. - Of course, the constant ? depends on this choice.
- (Choice of Metric)
33Probabilistic Scheme
- Pick configurations in C at random
- retain configurations in Cfree (along with
- q-init and q-goal) as nodes of graph G
- connect adjacent configurations by links
- of G.
- Return YES if q-init and q-goal belong to the
same connect component of G. - Return NO if no path has been found after having
generated c configurations (c an input parameter).
34Probabilistic Scheme
- Then answer YES is always correct
- whenever the planner returns YES, there actually
exists a collision-free path connecting q-init to
q-goal.
35Probabilistic Scheme
- Indeed - after a finite amount of computation
(defined by the parameter c) - the planner may
still not have found a path between q-init and
q-goal, even if one exists.
36Probabilistic Scheme
- The key component
- of this planning scheme is
- the sampling strategy.
- (begin with uniform)
37Probabilistic Scheme
- We are interested in the multi-query case so we
will invest preprocessing time to construct a
roadmap of configurations.
38Toward an Analysis
- Efficiency may be evaluated through
experimentation. - Formal analysis is desirable
- to compare planners
- to stress their strengths and weaknesses.
- Ideally a planner's outcome should be YES with
the highest probability whenever a free path
exists. - This outcome should be generated in minimal time.
39Toward an Analysis
- Analysis
- relate probability of an incorrect answer to
running time. - Given a small positive number ?, bound planner
running time by a function of ?.
40Toward an Analysis
- What relation makes a planner good?
- ?
- If function grows slowly with 1/?, the planner is
particularly interesting. - We get arbitrarily close to full completeness at
a reasonable cost.
41Toward an Analysis
- Assume for simplicity that CLEARANCE takes
constant time. - Is that a realistic assumption?
- ?
42Toward an Analysis
- Assume for simplicity that CLEARANCE takes
constant time. - Running time mainly depends on
- ?
- of sample confs.
- of pairs checked for adjacency
43Toward an Analysis
- sample configurations ? c.
- Only a fraction of them, f, are in Cfree, hence
in the constructed graph G. - In practice, often f ?? c.
- The planner should strive to get the greatest
ration f/c - But, the distribution of the generated free
configurations is also crucial to eventually find
a path.
44Toward an Analysis
- adjacency checks is at most proportional to f
2. - However, the planner may choose not to test all
pairs of free configurations for adjacency.
45Toward an Analysis
- It seems likely that no strong property can be
proven for any given planner, if we do not make
some assumption about Cfree. - Moreover, no single planner is likely to be the
most efficient for all possible problems. - This suggests that planners should be analyzed
under some well specified assumptions.
46Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
47Probabilistic Roadmap Planner
- Preprocessing
- Constructing a network R of configurations
- Query Processing
- Connecting qinit, qgoal to two milestones.
- Checking of these two milestones are in the same
connected component of R.
48Probabilistic Roadmap Planner
- Configurations in R are called milestones.
- The milestones are a subset of all sample
configurations generated. - (The roadmap is not exactly G from the scheme.)
49Probabilistic Roadmap Planner
- Planner uses simple algorithm Connect to
construct the links of R. - Connector
- Given two milestones m1 and m2, is the
straight-line segment connecting them in Cfree. - Dichotomically breaking the segments into shorter
sub-segments. - Stops breaking when a pair of milestones are
adjacent, or if one of them is not free.
50Probabilistic Roadmap Planner
- For simplicity, assume that connect only tries
straight paths. - It could try other canonical paths as well.
- A configuration sees another configuration if the
straight-line segment joining them lies entirely
in Cfree.
51Probabilistic Roadmap Planner
- We limit the number of generated milestones to c.
- We construct an initial roadmap containing r
milestones. - We then expand the initial roadmap into a final
one containing s gt r milestones. - s and r are input parameters.
52Probabilistic Roadmap Planner
- The first r milestones are chosen uniformly over
Cfree. - The remaining s-r milestones are selected in
small regions considered difficult parts of
Cfree.
53Probabilistic Roadmap Planner
- i ? 0
- While i lt r do
- (a) Pick a configuration q in C at
- random
- (b) If CLEARANCE(q) gt 0 then
- i. Store q as a milestone of the roadmap
- ii. i ? i 1
- For every pair of milestones m1 and m2, whose
distance is less than d, do Connect(m1, m2). - Invoke Resample to expand the roadmap by s-r
milestones.
Input parameter
quadratic in r, usually, r ltlt sampled
54Probabilistic Roadmap Planner
- Resample selects milestones with probability
inversely proportional to their degrees in the
roadmap. - For each selected milestone, Resample
- picks some new milestones at random in a
neighborhood of it, - invokes Connect to try and link each of these new
milestones to other milestones. - Terminates total milestones is s.
55Probabilistic Roadmap Planner
- Roadmaps generated using expansion are
consistently better - subsequent queries were processed more quickly
- less incorrect NO answers
- Uniformly sampling ? of the milestones and
expanding with the remaining ? gave good results.
56Probabilistic Roadmap Planner
- Query-Processing (q-init, q-goal)
- 1. For i init, goal do
- (a) If there exists a milestone m that sees q(i)
- then m(i) ? m
- (b) Else
- i. Repeat g times
- Pick a configuration q at random in the
- neighborhood of q(i) until q sees both q(i) and
a - milestone m.
- ii. If all g trails failed then return NO and
halt, - else m(i) ? m
- 2. If m-init and m-goal are in the same component
of the - roadmap then return YES else return NO.
57Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
58Analysis
- Q If roadmap is only a glimpse of Cfree, how do
we explain experimental success? - ?
- A There usually exist many collision-free paths
joining two configurations (!!!) - Q How realistic is this intuition?
- ?
59Analysis
- Intuition
- There usually exist many collision-free paths
joining two configurations - Capturing assumption
- Cfree satisfies some geometric properties
60Analysis
- Key number affecting running time -number of
milestones in the constructed roadmap. - Single generated milestone maybe several
randomly picked configurations in C. - We implicitly assume µ(Cfree ) / µ(C) is not too
small. - µ(X) volume of X
- Bounding number of milestones is not sufficient
does not account for running time of Connect.
61Visibility Volume Assumption
- For any configuration q in Cfree, let S(q)
consist of all those configurations q in Cfree
that q sees. - Configuration q is ?-good if
- µ(S(q)) ??µ(Cfree)
- Cfree is ?-good if all its configurations are
?-good. - We assume Cfree is ?-good
62Visibility Volume Assumption
- Q What is the underlying intuition?
- ?
- A It is easy to pick a set of configuration
that, collectively, can see most of Cfree .
63Why Does it Work?
64Visibility Volume Assumption
- Q What does it fail to prevent?
65Narrow Passage Issue
66Analysis
- Therefore, we will use a variant of the algorithm
that embeds a complex planner. - This complex planner is error-free (discovers a
path between two confs. whenever one exists). - Of necessity, complex planner is expensive to
run. - Use sparingly (and only to preprocessing).
67Analysis
- i ? 0
- While i lt r do
- (a) Pick a configuration q in C at
- random
- (b) If CLEARANCE(q) gt 0 then
- i. Store q as a milestone of the roadmap
- ii. i ? i 1
- For every pair of milestones m1 and m2, whose
distance is less than d, do Connect(m1, m2).
- Pick a representative milestone from each
component of the current roadmap. (V set of
representatives). Invoke Permeation(V) to improve
the connectivity.
- Invoke Resample to expand the roadmap by s-r
milestones.
68Analysis
- The results of preprocessing
- Two nodes are in the same component iff the
- corresponding milestones are in the same
- component of Cfree.
- This is theoretical and assumes Permeation is
complete. In practice this is not the case.
69Analysis
- Old-Query-Processing (q-init, q-goal)
- 1. For i init, goal do
- (a) If there exists a milestone m that sees q(i)
- then m(i) ? m
- (b) Else
- i. Repeat g times
- Pick a configuration q at random in the
- neighborhood of q(i) until q sees both q(i) and
a - milestone m.
- ii. If all g trails failed then return NO and
halt, - else m(i) ? m
- 2. If m-init and m-goal are in the same component
of the - roadmap then return YES else return NO.
70Analysis
- New-Query-Processing (q-init, q-goal)
- 1. For i init, goal do
- (a) If there exists a milestone m that sees q(i)
- then m(i) ? m
- (b) Else
- i. Repeat g times
- Pick a configuration q at random in S(q(i))
- until q sees both q(i) and a milestone m.
- ii. If all g trails failed then return FAILURE
and - halt, else m(i) ? m
- 2. If m-init and m-goal are in the same component
of the - roadmap then return YES else return NO.
71PrePro Performance Guarantee
- A set of milestones M is Adequate
- µ(Cfree - S(M)) ½???Cfree
- If each milestone were a source of light, we
would like a fraction of at least 1-? of Cfree to
be illuminated.
72PrePro Performance Guarantee
- Let K be a positive constant large enough that
for any x?(0, 1, - (1-x)(K/x)(log1/x log2/?) x?/2
- THEOREM 1
- ??(0, 1 If s (K/?)(log1/? log 2/?), then
preprocessing generates an adequate set of
milestones with probability at least 1-?.
73PrePro Performance Guarantee
- By Theorem 1 most of Cfree is likely to be
visible from some milestones in the roadmap. - Queries can be answered quickly.
- Adequacy is not sufficient to imply that the
roadmap is a good representation of the
connectivity of Cfree. - The use of the complex planner is inevitable to
ensure a good probability that the query
processing outcomes YES or NO.
74Query Performance Guarantee
- ? ?0,1 is the failure probability we are
willing to tolerate during a query. - g log (2/?)
- THEOREM 2
- If the set of milestones chosen during
preprocessing is adequate, then the probability
that the query-processing algorithm outputs
FAILURE is at most ?.
75Query Performance Guarantee
- Expected number of sample loop iterations in
the query-processing algorithm is at most 2.
76Query Performance Guarantee
- Theorems 1 and 2 fit the multi-query case.
- We blend them for a single query
- We bound the probability for a FAILURE by (1-?)
? ?
77Analysis
- Permeation determines which milestones in V are
reachable from each other. - Partitions V into subsets
- All milestones in the same subset belongs to the
same component of Cfree. - No two milestones in different subsets are in the
same component of Cfree.
78Analysis
- If pV, there are O(p2) invocations of the
complex planner. - Far fewer may suffice!
79Analysis
- Abstract version of Permeation
- Input is a graph N with p vertices
- K disjoint cliques
- determine the clique partition
- Adjacency matrix representation
- cost is measured by the number of examined
entries - Edge probe model (used in evasive graph
properties).
80Analysis
- NC(p, k) - the non-deterministic complexity of
this problem. - Only verify some partition is the right one.
- At least one probe on each of the p vertices.
- Verify each of the pairs (k above 2) of cliques
is in fact disconnected - THEOREM 3
- For 1kp, NC(p, k) T(p k2)
81Analysis
- Deterministic-Permeation(V)
- 1. Mark all vertices of N as being LIVE
- 2. Initialize x ? 1.
- 3. While x p do
- (a) G(x)
- (b) For y x 1 to p do
- i. If vertex y is marked LIVE then probe the edge
(x, y) in N. - ii. if edge (x, y) is probed and found present
the mark y as DEAD and - add y to G(x).
- (c) Output x Union G(x) as being a clique
- (d) Mark x as being DEAD
- (e) Set x to the smallest numbered LIVE vertex,
of p1 if there are no - LIVE vertices left.
82Analysis
- T(p, k) - worst-case deterministic complexity
- THEOREM 4
- Deterministic-Permeation correctly solves the
permeation problem using O(pk) probes. - Theorem 5
- For 1kp, T(p, k) O(pk).
83Analysis
- Randomized-Permeation(V)
- 1. Permute the vertices randomly. Rename the
nodes by 1, ..., n in the order of generated
list. - 2. Invoke Deterministic-
- Permeation(V).
84Analysis
- Worst case when all cliques are about p/k
- Worst case is O(pk)
- Best case when there is one giant clique and all
others are singletons. - Best case is T(p k2)
85Other Assumptions
- Path Clearance Assumption
- Expansiveness
86Outline
- Introduction
- Probabilistic Scheme
- Probabilistic Roadmap Planner
- Analysis
- Improved Solutions
87Penetration
- Allow some penetration distance of the robot into
the obstacle (dilated Cfree) - Push milestones and links into Cfree.
- Rationale
- Dilatation widens narrow passages
- Easier to capture free space connectivity
88Gaussian
- Rationale
- Samples needed in difficult regions
- We want the probability to depend on the amount
of forbidden configurations nearby. - Define a Gaussian on the configuration space.
89Gaussian
- Avoid computations in the configuration space
(PRM paradigm). - In practice
- Sample pairs of configuration such that the
second is at distance d from the first. - Discard pairs where both are free or both are
forbidden. - From remaining pairs, keep free configuration.
90Gaussian
91Gaussian
Uniform Sampling
92Gaussian
Gaussian Sampling
93OBPRM
- Obstacle Based Probabilistic Roadmap Method
- Heuristics for generating nodes on or near
C-obstacles.
94OBPRM
- Prototype Node-Generation
- 1. cin colliding robot cfg with
- C-obstacle X
- 2. D m random directions emanating out from
- cin
- 3. for each d in D
- cout free cfg in direction d (if exists)
- find contact cfg on (cin,cout) by binary
search - endfor
95