How do I get there? Roadmap Methods Visibility Graph Voronoid Diagram
The Roadmap Idea Capture the connectivity of Cfree in a network of 1-D curves: the roadmap
Visibility Graph Method (VGM) Polygonal robot A translating at fix orientation No rotation! Polygonal obstacle in R2 VGM: construct a semi-free path as a simple polygonal line connecting qinit to qgoal
Main Proposition CB a polygonal region of the plane There exists a semi-free path between qinit and qgoal There exists a simple polygonal line lying in cl(Cfree) with end points qinit and qgoal and such that its vertices are certices of CB
Example qinit qgoal
Visibility Graph - Definition The visibility graph is the non-directed graph G specified as: Nodes: qinit, qgoal and vertices of CB Edges: 2 nodes connected if either the line segment joining them is an edge of CB, or it lies entirely in Cfree at endpoints Algorithm of the visibility graph method: Construct visibility graph G Search G for a path from qinit to qgoal If a path is found, return it; otherwise failure
Constructing the VG: Naïve Approach X, X’: qinit, qgoal or CB vertices If X, X’ endpoints of same edge of CB, then the nodes are connected by a link Otherwise X, X’ are connected by a link iff the line passing through them does not intersect CB Complexity of algorithm O(n3)
The Visibility Graph in Action (Part 1) First, draw lines of sight from the start and goal to all “visible” vertices and corners of the world. goal start
The Visibility Graph in Action (Part 2) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. goal start
The Visibility Graph in Action (Part 3) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. goal start
The Visibility Graph in Action (Part 4) Second, draw lines of sight from every vertex of every obstacle like before. Remember lines along edges are also lines of sight. goal start
The Visibility Graph (Done) Repeat until you’re done. goal start
Constructing the VG: Improvement Variation of sweep-line algorithm For each X, compute the orientation i of every half-line from X to another point Xi. Sort these orientations. Rotate half-line from X, from 0 to 2. Stop at each i. At each stop, update intersection with CB Algorithm is O(n2logn)
Retraction Approach Def.: X a topological space, Y a subspace of X. A surjective map XY is a retraction iff it is continuous and its restriction to Y is the identity Def.: the retraction preserves connectivity iff for all xX, x and (x) are in the same path-connected component. Proposition: Let :Cfree R, where R Cfree is a network of 1D curves, be a CPR. There exists a free-path between qinit and qgoal iff there exists a path in R between (qinit) and (qgoal )
Voronoid Diagram Def.: let =Cfree. For any q in Cfree, define Clearance(q)=minp d(q,p) Near(q)={p / d(q-p)=clearance(q)} The Voronoid diagram of Cfree is the set: Vor(Cfree)={q Cfree / card(near(q))>1}
General Voronoid Graph A GVG is formed by paths equidistant from the two closest objects This generates a very safe roadmap which avoids obstacles as much as possible
General Voronoi Diagram
What about concave obstacles? vs
Voronoi Diagram: Metrics
Voronoi Diagram (L2) Note the curved edges
Note the lack of curved edges Voronoi Diagram (L1) Note the lack of curved edges