The Visibility Voronoi Complex and Its Applications - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

The Visibility Voronoi Complex and Its Applications

Description:

The Visibility Voronoi Complex and Its Applications. Ron Wein. Jur P. van den Berg (U. Utrecht) ... Given a robot translating on the plane amidst a set P1, ... – PowerPoint PPT presentation

Number of Views:20
Avg rating:3.0/5.0
Slides: 21
Provided by: hezi2
Category:

less

Transcript and Presenter's Notes

Title: The Visibility Voronoi Complex and Its Applications


1
The Visibility Voronoi Complex and Its
Applications
  • Ron Wein
  • Jur P. van den Berg (U. Utrecht)
  • Dan Halperin

January 2005
2
Motivation
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).

3
Application
Motion planning for coherent groups of entities
(Kamphuis and Overmars, 2004).
4
Visibility 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
5
The 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
6
Voronoi 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
7
Voronoi Diagram of Polygons
Monotone chain
Voronoi vertex
Chain minimum
8
The 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.

9
Properties 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).

10
The 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.

11
Bitangents 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.
12
Computing 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 .

13
Handling 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
14
Handling 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 .

15
Tangency 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.
16
Life-Cycle of an Edge
17
Complexity 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).
18
Querying 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.
19
Representation of the VV(c) Arcs
20
Representation 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.
Write a Comment
User Comments (0)
About PowerShow.com