Visibility Graphs and Cell Decomposition By David Johnson
Visibility Graphs and Cell Decomposition By David Johnson
Shakey the Robot • Built at SRI • Late 1960’s • For robotics, the equivalent of Xerox PARC’s Alto computer – Alto – mouse, GUI, network, laser printer, WYSIWYG, multiplayer computer game – Shakey – mobile, wireless, path -planning, Hough transform, camera vision, English commands, logical reasoning
Shakey video
Shakey path planning • Represent the world as a hierarchical grid – – Full Partially-full Empty Unknown • Compute nodes at corners of objects • Find shortest path through nodes – A*
Shakey used two good ideas • A* • Putting sub-goals on corners of vertices – This has been generalized into the idea of visibility graphs.
Visibility Graphs Define undirected graph VG(N, L) – V = all vertices of obstacles – N = V union (Start, Goal) – L = all links (ni, nj) such that there is no overlap with any obstacle. Polygon edge doesn’t count as overlapping.
Reusing Visibility Graphs Add new visibility edges for new start/goal points The rest is unchanged – Creates a roadmap to follow
Visibility Graph in Motion Planning • Start with geometry of robot and obstacles, R and O • Compute the Minkowski difference of O – R • Compute visibility graph in C-space • Search graph for shortest path
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Computing the Visibility Graph • Brute force • Check every possible edge against all polygon edges
Special Cases • Do include polygon edges that don’t intersect other polygons • Don’t include edges that cross the interior of any polygon • Minkowski difference of original obstacles may overlap
Reduced VG tangent segments àEliminate concave obstacle vertices à(line would continue on into obstacle)
Generalized tangency point
Three-dimensional Space Shortest path passes through none of the vertices • Original paper split up long line segments so there were lots of vertices to work with • Computing the shortest collision-free path in a general polyhedral space is NP-hard • Exponential in dimension
Roadmaps and Coverage • Visibility Graphs make a roadmap through space • Roadmaps not so good for coverage of free space – What kind of robot needs to cover C-free?
Roadmaps and Coverage • Roadmaps not so good for coverage of free space – Vacuum robots – Minesweeper robots – Farming robots • Try to characterize the free space
Cell Decomposition • Representation of the free space using simple regions called cells A cell
Exact Cell Decomposition • Exact Cell Decomposition – Decompose all free space into cells Exact Approximate
Coverage • Cell decomposition can be used to achieve coverage – Path that passes an end effector over all points in a free space • Cell has simple structure • Cell can be covered with simple motions • Coverage is achieved by walking through the cells
Cell Decomposition • Two cells are adjacent if they share a common boundary • Adjacency graph: – Node correspond to a cell – Edge connects nodes of adjacent cells
Path Planning • Path Planning in two steps: – Planner determines cells that contain the start and goal – Planner searches for a path within adjacency graph
Trapezoidal Decomposition • Two-dimensional cells that are shaped like trapezoids (plus special case triangles) c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 15 c 11 c 13 c 12
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 1 c 9 c 15 c 11 c 13 c 12
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 1 c 3 c 9 c 15 c 11 c 13 c 12
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 2 c 1 c 3 c 9 c 15 c 11 c 13 c 12
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 11 c 13 c 12 c 4 c 2 c 15 c 14 c 7 c 15 c 8 c 11 c 10 c 3 c 6 c 9 c 13 c 12
Path Planner • Search in adjacency graph for path from start cell to goal cell • First, find nodes in path
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 11 c 13 c 12 c 4 c 2 c 15 c 14 c 7 c 15 c 8 c 11 c 10 c 3 c 6 c 9 c 13 c 12
Creating a Path • Trapezoid is a convex set – Any two points on the boundary of a trapezoidal cell can be connected by a straight line segment that does not intersect any obstacle • Path is constructed by connecting midpoint of adjacency edges
Adjacency Graph c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 11 c 13 c 12 c 4 c 2 c 15 c 14 c 7 c 15 c 8 c 11 c 10 c 3 c 6 c 9 c 13 c 12
What if goal were here? c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 11 c 13 c 12 c 4 c 2 c 15 c 14 c 7 c 15 c 8 c 11 c 10 c 3 c 6 c 9 c 13 c 12
Trapezoidal Decomposition • Shoot rays up and down from each vertex until they enter a polygon – Naïve approach O(n 2) (n vertices times n edges) c 14 c 5 c 2 c 7 c 8 c 10 c 3 c 6 c 9 c 15 c 11 c 13 c 12
Other Exact Decompositions • Triangular cell • Optimal triangulation is NP-hard (exponential in vertices)
- Slides: 40