Title: The Visibility Voronoi Complex and Its Applications
1The Visibility Voronoi Complex and Its
Applications
- Ron Wein
- Jur P. van den Berg (U. Utrecht)
- Dan Halperin
Nachsholim May 2005
2Motivation
Given a robot translating on the plane amidst a
set P1, , Pm of configuration-space obstacles,
and given start and goal configurations s and g,
we wish to plan a natural looking
collision-free motion path for the robot between
s and g.
- By natural looking we mean the path should be
- Short not containing unnecessary long detours.
- Having some clearance not getting to close to
an obstacle. - Smooth not containing sharp turns (C1-smooth).
3Application
Kamphuis and Overmars (2004)
Motion planning for coherent groups of entities
(computing a backbone path).
4Visibility Graphs
Lozano-Pérez (1979)
Used to plan shortest paths. Constructed in O(n2
log n) time, where n is the total number of
vertices. Output-sensitive O(n log n S)
algorithms also exist. Query time is O(n log n
S), using Dijkstras algorithm.
Resulting paths have no clearance
5The Retraction Method
ÓDúnglaing and Yap (1985), Rohnert (1991)
Construct the Voronoi diagram of the obstacles in
O(n log n). Query time is O(log n k).
Paths may be too long and may contain sharp turns
6The VV(c)-Diagram
7Properties of the VV(c)-Diagram
- Outputs shortest paths which keep the preferred
amount of clearance from the obstacles, where
possible. - Paths are smooth.
- In case of narrow passages (between chain
points), we get a path with the maximal possible
clearance (locally).
8The VV-Complex
The VV(c)-diagram interpolates between the
visibility graph and the Voronoi diagram of the
obstacles.
- The VV-complex encodes all VV(c)-diagrams for all
c values. - Easily queried for any given c, without the need
to construct the VV(c)-diagram. - Constructed in O(n2 log n) time, handling ?(n2)
events.
9The VV-Complex (II)
Suppose the clearance value grows from 0 to ?. We
can associate with each edge e we encounter a
validity rangeR(e) cmin(e), cmax(e) of
c-values for which this edge is valid. The
VV-complex of the scene of polygonal obstacles
P1, , Pm is therefore
- The Voronoi diagram V of the obstacles.
- A set T of interval trees For each obstacle
vertex u (and for each chain point p), T(u) (or
T(p)) store the incident edge to u (to p) indexed
by their validity range.
10Bitangents to Dilated Vertices
v
uvll
uvrl
uvlr
u
uvrr
For each obstacle vertex u we keep two circular
lists Ll(u) and Lr(u) of left and right
bitangents, sorted by their slopes.
11Computing the VV-Complex (Initialization)
- Compute the visibility graph of the obstacles P1,
, Pm. - Examine each bitangent edge in the visibility
graph and assign 0 to be the minimum value of its
validity range. - Initialize an event queue Q , construct Ll(u) and
Lr(u) for each obstacle vertex u, and compute the
initial visibility events based on adjacencies in
these lists. - Compute the Voronoi diagram of P1, , Pm.
- For each Voronoi arc a that contains the minimum
clearance value cmin of its chain ?a, insert the
chain event ?cmin, a? into Q .
12Visibility Events
- Occur when two edges uv and uw become equally
sloped. - We assign a maximal value for the validity range
of the blocked edges. - Some edges may become valid, and we assign a
minimal value for their validity ranges. - There are ?(n2) visibility events, each takes
O(log n) to handle.
13Chain Events
- Occur when a chain start appearing in the
VV(c)-diagram.We create two chain points
associated with this chain. - There are ?(n) chain events, each takes O(n log
n) to handle. - The motion of the chain points along the chain
causestangency events and endpoint events. - All these events are handled at O(n2 log n) time
in total.
14Life-Cycle of an Edge
15Querying the VV-Complex
Given a start configuration s, a goal
configuration g and a preferred clearance value
c
- For each Voronoi chain compute the chain points
(two at most) that correspond to the given
c-value. - Perform radial sweep from s and from g and obtain
their incident visibility edges. - Execute Dijkstras algorithm from s. The graph is
implicitly maintained, as we obtain the incident
edges of each vertex x we encounter from T(x). We
do this until reaching g.
The total query time is O(n log n k), where k
is the number of edges encountered during the
search.
16Implementation and Experiments
We have implemented a CGAL-based application that
can robustly construct the VV(c)-diagram for a
given c-value. We employ
- CGALs segment Voronoi diagram package
(Karavelas). - CGALs arrangement package with the conic-arc
traits. - The GMP and CORE number types.
Diagram construction takes 360 seconds. Query
time is 0.020.1 seconds (compared with 0.51
seconds that a smoothing phase would consume).
17Thank you!