### The Voronoi Diagram

```The Voronoi Diagram
David Johnson
Voronoi Diagram
• Creates a roadmap that maximizes
clearance
– Can be difficult to compute
– We saw an approximation in Medial Axis PRM
Voronoi region for points
• Points are “sites”
• Voronoi diagram of points
s in set S
– Partition of space into
regions VR(s) such that for
all points [x,y] in VR(s),
d([x,y],s) < d([x,y],t) for all t
in S not = s
– Cell boundary where
D(Obs1) = D(Obs2) for the
two closest obstacles
Examples
• Voronoi Applet
• Voronoi art
• Different metrics are possible
– Manhattan
• Accessibility
away from obstacle to the
cell boundary
• Departability
in
• Connectivity
– Free space smoothly
deforms onto the GVD,
topology is preserved
Computing Voronoi regions
• The Voronoi cell boundaries are
composed of bisectors of sites.
• Bisector B(s,t) is locus of points d(p,s) =
d(p,t)
• Bisector of two points is what shape?
Another view
• Prairie fire analogy
– Set each site on fire
– Fire burns outwards at
same rate
• Could use something like
a wavefront algorithm to
approximate this
• Other approaches
– Fortune’s algorithm
– Incremental construction
This is analogous to
GPU computation
• Use graphics for fast 2D Voronoi diagram
• Path planning example
• Potential field example
• Voronoi2D.exe
Extend to Generalized Sites
• Generalized Voronoi
Diagram (GVD)
– Sites are not just
points
– Everything else is the
same
Generalized Voronoi Diagram
• Edges formed based on three types of
interaction:
Edge-Edge
Edge-Vertex
Vertex-Vertex
Polygonal Boundaries
Wave propagation idea generalizes
3D
•
•
•
•
•
•
•
bisector type
point – point
point – edge
point – triangle
edge – edge
edge – triangle
triangle - triangle plane
portion of
plane
parabolic cylinder
paraboloid
hyperbolic paraboloid
parabolic cylinder
3D Gets Complex
Generalized Voronoi Diagram Computation
Exact Algorithm
Analytic Boundary
Approximate Algorithms
Discretize Sites
Discretize Space
Exact Computation for Polylines
• Diagram is
composed of
segments or portions
of parabolas
• Many robustness
issues
(CGAL)
GVD Approximation – Method 1
• Approximation – Discretize Obstacles
– Convert each obstacle into a set of points by selecting samples
along boundaries.
– Compute regular Voronoi diagram on resulting point sets.
– Will produce some diagram edges that are not traversable. Must
prevent travel along these portions.
– Can be slow to compute, depending on samples.
Yellow portions are
not traversable since
they are inside the
obstacle.
This is no longer
a curve.
GVD Approximation – Method 1
• Approximation – Discretize Obstacles (continued)
– Consider computing the GVD for the following example:
GVD Approximation – Method 1
• Approximation – Discretize Obstacles (continued)
– Compute sample points along obstacle border.
GVD Approximation – Method 1
• Approximation – Discretize Obstacles (continued)
– Here is the Voronoi Diagram for the point set:
GVD Approximation – Method 1
• Approximation – Discretize Obstacles (continued)
– Can discard (ignore) all edges of GVD that are defined by two
consecutive points from the same obstacle:
edges that lie
completely interior
to any obstacle
(i.e., green ones
here).
GVD Approximation – Method 1
• Approximation – Discretize Obstacles (continued)
– Resulting GVD edges can be searched for a path from start to goal
(e.g., store GVD as graph, run Dijkstra’s shortest path algorithm)
GVD Approximation – Method 2
• Approximation – Discretize Space
– Convert the environment into a grid.
– Compute the Voronoi diagram on resulting grid by propagating
wavefront from obstacles.
– Remember which obstacle point the shortest path came from for
each non−obstacle grid cell.
– Can be slow to compute, depending on samples.
A finer grid
produces a more
but takes longer
GVD Approximation – Method 2
• Approximation – Discretize Space (continued)
– Create a grid from the environment
GVD Approximation – Method 2
• Approximation – Discretize Space (continued)
– Compute the Voronoi diagram by running a wavefront
GVD Approximation – Method 2
• Approximation – Discretize Space (continued)
– Compute a path in the Voronoi diagram
GVD Approximation – Method 2
•
Applet - http://www.cs.columbia.edu/~pblaer/projects/path_planner/applet.shtml
Green path is discretized
space path (i.e., grid).
Red path is discretized
obstacles path (i.e., previous).
Hierarchical Approximations
The Medial Axis
• A related concept to GVD
– Fills the interior of an object
– Only defined for closed shapes
– Instead equality of distance to two objects, it
is where distance to self is equal
Another medial axis definition
• medial axis or skeleton is locus of centers of maximal
circles that are bitangent to shape boundary
Real Example
Skeleton classification
• Normal points
• End points
• Branch Points
Computing Medial Axis for
Curves
• Start at end point
– Local maximum in
curvature
• Numerical methods to
trace the bi-tangent
circle
• Branch at tritangencies
Planning Using GVDs
• Is a GVD sufficient for
path planning?
– GVD computed in 2D
workspace
– Sufficient for a point
robot
dimensions?
• Use GVD along with
other methods
3-DOF Potential Field Planner with
GVD
• Rigid robot moving on a plane in a
dynamic environment [Hoff00]
• Combines a GVD roadmap with a local
(potential field) planner
Dynamic Environments
Video (2d.avi)
Solving for GVD in Configuration
Space
• Hierarchical testing of
C-space
• Compute distance from
C-space point to C-obs
– Same as robot-obstacle
distance
• Main problem
– GVD is C-space
dimension-1
– Projection into workspace
doesn’t do what we hoped
Generalized Voronoi Graphs
• Build 1D graphs out of intersections of
high-dimensional GVD parts