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
January 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
Motion planning for coherent groups of entities
(Kamphuis and Overmars, 2004).
4Visibility Diagrams
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
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
6Voronoi Arcs
There are O(n) arcs in the Voronoi diagram of a
set of polygons with a total of n vertices
u
u
w
v
t
u
w
v
v
Vertexedge
Edgeedge
Vertexvertex
7Voronoi Diagram of Polygons
Monotone chain
Voronoi vertex
Chain minimum
8The VV(c)-Diagram
Given a set of convex pairwise-disjoint polygonal
obstaclesP1, , Pm and a preferred clearance
value c, construct the following graph
- Compute the Voronoi diagram V of the obstacles.
- Dilate every obstacle Pi with a disc of radius c
i.e. calculate the Minkowski sum Mi(c) Pi ?
Bc. - Compute the union M(c) ?i Mi(c).
- Compute the visibility graph G(c) of circular
arcs and reflex vertices in the boundary of M(c). - Compute M(c) ? V and merge the resulting portions
of the Voronoi diagram with G(c) to form the
final VV(c)-diagram.
9Properties 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, we get a path with
the maximal possible clearance (locally).
10The VV-Complex
Suppose the clearance value grows from 0 to ?. We
wish to associate with each edge e we encounter a
validity range R(e) cmin(e), cmax(e) of
c-values for which this edge is valid. Having
done so, we define the VV-complex of the scene of
polygonal obstacles P1, , Pm that stores
- 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.
11Bitangents 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.
12Computing 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 , sorting the events
by their increasing c-order. - For each obstacle vertex u, initialize Ll(u) and
Lr(u). For each pair of neighboring edges e1, e2
in these lists compute a c-value c where these
edges become equally sloped (if one exists), and
insert the visibility event ?c, e1, e2? into Q . - 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 .
13Handling Visibility Events
- Assign c to be the maximal c-value of the
validity range of the edges uv and vw. - Remove the other event involving uv from Q and
delete this edge from L(u). Examine the new
adjacency created in this list and insert the
corresponding visibility event into the queue. - Repeat step 2 for the opposite edge vu.
- If the edges uw and vw do not have a minimal
value assigned to their validity range yet,
assign c to it.
v
w
u
v
w
u
14Handling Chain Events
- Initiate two chain points p1(?a) and p2(?a)
associated with the Voronoi chain, which will
move toward as endpoints z1 and z2,
respectively. - Let u be the obstacle vertex that induces a. For
each outgoing edge e ux, compute a c-value c
for which e becomes incident to one of the chain
points pi(?a). Insert the tangency event ?c, e,
pi(?a)? into the event queue. - If a is a vertexvertex arc, repeat step 2 for
the other vertex v. - Insert the endpoint events ?c(z1), p1(?a), z1?
and ?c(z2), p2(?a), z2? into Q .
15Tangency and Endpoint Events
Tangency event An edge e ux (x may be either
a dilated obstacle vertex or a chain point)
becomes tangent to Bc(u) at a chain point p(?).
We replace e by a reincarnate p(?)x. Endpoint
event A chain point p(?a) reached the endpoint
z of the arc a, and moves to the next arc in the
chain ?a. The associated visibility events need
to be recomputed.
When we have several event occurring at the same
c-value, we deal with endpoint events first, then
with visibility events, then we handle chain
events and finally tangency events.
16Life-Cycle of an Edge
17Complexity Analysis
- The initialization takes O(n2 log n) time.
- O(n2) visibility events, each takes O(log n) time
to handle. - O(n) chain events, each takes O(n log n) time to
handle. - Each chain event spawns as many as O(n) tangency
events, so in total we have O(n2) tangency
events, each one is handled in O(log n). - O(n) endpoint events, each takes O(n log n) time
to handle.
The total preprocessing time is O(n2 log n).
18Querying 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.
19Representation of the VV(c) Arcs
20Representation of the VV(c) Arcs (II)
In case all obstacle vertices have rational
coordinates and the squared clearance value is
also rational, the VV(c)-diagram can be
represented by conic arcs with rational
coefficients.