Download presentation
Presentation is loading. Please wait.
Published byAntoon Aerts Modified over 5 years ago
1
The Visibility– Voronoi Complex and Its Applications
Ron Wein Jur P. van den Berg (U. Utrecht) Dan Halperin Pisa May 2005
2
Motivation Plan a “natural looking” collision-free motion path for a robot translating on the plane amidst a set P1, … , Pm of configuration-space obstacles, given start and goal configurations 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 Kamphuis and Overmars (2004) Motion planning for coherent groups of entities (computing a backbone path).
4
Resulting paths have no clearance
Visibility 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 Dijkstra’s algorithm. Resulting paths have no clearance
5
The “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
6
The VV(c)-Diagram 1. Dilate the obstacles (Minkowski sums).
2. Compute visibility edges between dilated vertices. 4. Compute visibility edges emanating from chain points. 3. Add Voronoi chains between chain-points.
7
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 (between chain points), we get a path with the maximal possible clearance (locally).
8
The Evolution of the VV(c)-Diagram
9
The VV-Complex The VV(c)-diagram interpolates between the visibility graph and the Voronoi diagram of the obstacles. c = 0 c > 0 c = 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.
10
The VV-Complex (II) Suppose the clearance value grows from 0 to . We can 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. 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, T(u) stores the incident edges to u indexed by their validity range Similarly, there is also a tree T(p) for each chain point p.
11
Bitangents to Dilated Vertices
uvll v 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: Assign 0 to be the minimum value of its validity range. Initialize an empty event queue Q . Construct Ll(u) and Lr(u) for each obstacle vertex u. 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 .
13
Visibility Events u v w uvll uwlr 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. u v w uwrl uvrl
14
Chain 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 causes tangency events and endpoint events. All these events are handled at O(n2 log n) time in total. a p2(a) p1(a)
15
“Life-Cycle” of an Edge
16
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 Dijkstra’s 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.
17
Implementation and Experiments
We have implemented a CGAL-based application that can robustly construct the VV(c)-diagram for a given c-value. We employ: CGAL’s segment Voronoi diagram package (Karavelas). CGAL’s arrangement package with the conic-arc traits (W.). The GMP and CORE number types. Diagram construction takes 3–60 seconds. Query time is 0.02—0.1 seconds (compared with 0.5–1 seconds that a smoothing phase would consume).
18
Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.