Visibility Graph and Voronoi Diagram CS 234326 Tutorial.

Slides:



Advertisements
Similar presentations
AI Pathfinding Representing the Search Space
Advertisements

Single Source Shortest Paths
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
Approximations of points and polygonal chains
Sensor Based Planners Bug algorithms.
Motion Planning for Point Robots CS 659 Kris Hauser.
CSE 380 – Computer Game Programming Pathfinding AI
Motion Planning CS 6160, Spring 2010 By Gene Peterson 5/4/2010.
Visibility Graphs May Shmuel Wimer Bar-Ilan Univ., Eng. Faculty Technion, EE Faculty.
5. Roadmaps Hyeokjae Kwon Sungmin Kim. 1. RoadMap Definition.
1 Voronoi Diagrams. 2 Voronoi Diagram Input: A set of points locations (sites) in the plane.Input: A set of points locations (sites) in the plane. Output:
The Voronoi Diagram David Johnson. Voronoi Diagram Creates a roadmap that maximizes clearance –Can be difficult to compute –We saw an approximation in.
The Divide-and-Conquer Strategy
Applications of Single and Multiple UAV for Patrol and Target Search. Pinsky Simyon. Supervisor: Dr. Mark Moulin.
Visibility Computations: Finding the Shortest Route for Motion Planning COMP Presentation Eric D. Baker Tuesday 1 December 1998.
17. Computational Geometry Chapter 7 Voronoi Diagrams.
1 Last lecture  Configuration Space Free-Space and C-Space Obstacles Minkowski Sums.
Motion Planning of Multi-Limbed Robots Subject to Equilibrium Constraints. Timothy Bretl Presented by Patrick Mihelich and Salik Syed.
1 Last lecture  Path planning for a moving Visibility graph Cell decomposition Potential field  Geometric preliminaries Implementing geometric primitives.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 O’Rourke Chapter 8 Motion Planning.
Navigation and Motion Planning for Robots Speaker: Praveen Guddeti CSE 976, April 24, 2002.
Roadmap Methods How do I get there? Visibility Graph Voronoid Diagram.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2003/index.htm Configuration Space – Basic Path-Planning Methods.
Robot Motion Planning Bug 2 Probabilistic Roadmaps Bug 2 Probabilistic Roadmaps.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 O’Rourke Chapter 8 Motion Planning.
Voronoi Diagrams.
CS 326A: Motion Planning Basic Motion Planning for a Point Robot.
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Roadmap Methods How do I get there? Visibility Graph Voronoid Diagram.
Introduction to Robot Motion Planning. Example A robot arm is to build an assembly from a set of parts. Tasks for the robot: Grasping: position gripper.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 O’Rourke Chapter 8 Motion Planning.
CSE53111 Computational Geometry TOPICS q Preliminaries q Point in a Polygon q Polygon Construction q Convex Hulls Further Reading.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
Visibility Graphs and Cell Decomposition By David Johnson.
Chapter 5.4 Artificial Intelligence: Pathfinding.
Shortest Path Algorithms. Kruskal’s Algorithm We construct a set of edges A satisfying the following invariant:  A is a subset of some MST We start with.
Lab 3 How’d it go?.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
© Manfred Huber Autonomous Robots Robot Path Planning.
Planning Near-Optimal Corridors amidst Obstacles Ron Wein Jur P. van den Berg (U. Utrecht) Dan Halperin Athens May 2006.
Representing and Using Graphs
Path Planning for a Point Robot
How are things going? Core AI Problem Mobile robot path planning: identifying a trajectory that, when executed, will enable the robot to reach the goal.
Prims’ spanning tree algorithm Given: connected graph (V, E) (sets of vertices and edges) V1= {an arbitrary node of V}; E1= {}; //inv: (V1, E1) is a tree,
CS B659: Principles of Intelligent Robot Motion Configuration Space.
Haptic Rendering Part 2 4/CY/B3 Part 1. Collision detection and response Nic Melder Part 2. Manipulation and polygon transitions Nic Melder.
Dijkstra’s Algorithm Supervisor: Dr.Franek Ritu Kamboj
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
UNC Chapel Hill M. C. Lin Introduction to Motion Planning Applications Overview of the Problem Basics – Planning for Point Robot –Visibility Graphs –Roadmap.
Administration Feedback on assignment Late Policy
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Robotics Chapter 5 – Path and Trajectory Planning
Motion Planning Howie CHoset. Assign HW Algorithms –Start-Goal Methods –Map-Based Approaches –Cellular Decompositions.
Efficient Placement and Dispatch of Sensors in a Wireless Sensor Network You-Chiun Wang, Chun-Chi Hu, and Yu-Chee Tseng IEEE Transactions on Mobile Computing.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
2.1 Introduction to Configuration Space
How do I get there? Roadmap Methods Visibility Graph Voronoid Diagram.
Schedule for next 2 weeks
Mathematics & Path Planning for Autonomous Mobile Robots
I206: Lecture 15: Graphs Marti Hearst Spring 2012.
Motion Planning for a Point Robot (2/2)
Enumerating Distances Using Spanners of Bounded Degree
The Visibility– Voronoi Complex and Its Applications
Shortest Path Algorithm for Weighted Non-negative Undirected Graphs
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Robotics meet Computer Science
Presentation transcript:

Visibility Graph and Voronoi Diagram CS Tutorial

Common Framework Roadmap approach Limited to low-dimensional C : essentially 2D polygonal regions, objects and obstacles. Good for Multi-queries Complete algorithms

Visibility Graphs non-directed graph G nodes: initial and goal configurations + vertices of C- obstacles edges: straight-line segments connecting two nodes that don’t go through obstacles – a weight of an edge is it’s euclidian distance. q init q qoal

Dijkstra’s Shortest Path Algorithm Single source and target. Let us define a Graph G=(V,E) where - s is the source node and - t is the target node. INITIALIZE_SINGLE_SOURCE(G,s) We use the relaxation procedure -

Dijkstra’s Shortest Path Algorithm RELAX(u,v,w) The procedure improves the estimated path length to node v, when we visit him from node u !

The Full Algorithm DIJKSTRA(G,w,s) The extract the path we go from node t to it’s parents until we reach s ! (The path is the opposite path we traversed)

Why it works Visibility Graph Proposition:  a semi-free path between q init and q qoal   a simple polygonal line τ lying in cl( C free ) whose endpoints are q init and q qoal, and such that τ’s vertices are vertices of CB Sufficient to consider only polygonal lines running via vertices of CB, and if such path exists, G contains the shortest one.

A* path finder Construct the Graph, and on every node we define a 2 functions: 1. g(x) – a cost of a path we found till the node x. 2. h(x) - an admissible heuristic function that estimates the distance left to reach the goal. We define their sum f(x) = h(x) + g(x) and choose always a node with minimal f value. If h is admissible (i.e. < true distance to the goal) A* is guaranteed to find the shortest path and more efficiently.

A* path finder We use method that resembles to Dijkstra but our priority-queue is sorted according to the f() function. For example: here we choose first (s,a) then (a,b) then (b,c) etc…

A* path finder Pseudo code: Input: A graph Output: A path between start and goal nodes

The Algorithm Visibility Graph Construct a visibility graph G Search G for a path from q init to q qoal by using dijkstra or other search algorithm as A-star. If a path is found, return it; otherwise, indicate failure Construction most expensive: - naively O(n 3 ) - sweep-line algorithm renders it O(n 2 log n) - O(n 2 ) proposed.

Unneccesary edges Visibility Graph Unfortunately - the visibility graph has many needless edges. The use of supporting and separating lines can reduce the number of edges in the graph. Supporting line – tangent to 2 obstacles where they both lie on the same side of the line. Separating line – tangent to 2 obstacles where they lie on the opposite lines of the line. The Reduced Visibility graph can be constructed solely from these lines.

Reduced Visibility Graphs G without non-tangent segments and concave vertices. Tangent segment: a segment tangent to CB at both nodes If we use only these lines only the convex-hulls of every obstacle are considered to be taken to the graph ! q init q qoal

Efficient Graph construction To construct the visibility graph we must determine which vertices are visible from a vertex v, for every v. Naïve algorithm: for every vertex we check all the possible line segments emanating from it O(n) and see if each of them intersects an edge. There are O(n) edges hence for every vertex the complexity is N^2, hence altogether is O(N^3). Line-sweep algorithm: for every vertex we define the angles of lines connecting him with other vertices [o,2*pi]. For every such line in increasing angle order, we sort all the edges that intersect the line and maintain them in a Balanced-Tree. Whenever the closest edge changes we add the corresponding vertex to the graph – O(N^2logN).

Voronoi Diagram A roadmap method based on retraction : a continuous function of C free defined onto a 1D subset of itself. A realization of retraction in 2D C with polygonal obstacles : consists of curves in C free that are equidistant from two or more points in  C free

Generalized voronoi diagram-GVD given a set of obstacles we define the generalized voronoi region as: it is an area of points where the closest obstacle is Oi. Given 2 obstacles Oi and Oj we define the two-equidistant surface : Two equidistant face is defined as : The GVD is : This definition applies to any dimensional spaces!

GVD-Mathematical definition For a given manifold X, a retraction is a continuous function the subset A is called retract (typically the dimension of A is less than the dimension of X. Let 2 functions where U,V are manifolds. A homotopy is a continuous function such that for example :

GVD-Mathematical definition Now we can define the GVD by deformation retraction: Let is a retraction. A deformation retraction is a homotopy such that: In other words: H is a homotopy between an identity map and a retraction. We use deformation retraction to smoothly deform, without tearing or pasting X onto a lower, preferably 1D subset A of X. As t varies from 0 to 1 a point from X moves towards a point in A. The GVD is deformation retract !!

Construction of the GVD There are 2 methods for construction of the planar GVD: 1. Use the sensor information to construct the GVD in an unknown space. 2.Assume the world is a grid and compute a distance function with the wave propagation method.

Sensor based construction We simultaneously generate and explore a graph that is embedded in the free space. 1.The robot uses it’s sensor to find the closest obstacle and moves away from it until it reaches an equidistant point. 2.It starts to trace the edge by the same curve-tracing technique we saw in tangent bug except so the tangent is the null space of. (This is identical to passing a line through the 2 closest points and taking the vector perpendicular to that line). A meet-point is detected by looking for a sudden change in one of the closest obstacles) 3.When a robot encounters a new meet-point it marks the direction from which it came as explored and identifies all new GVD edges. Chose and edge and continue recursively. (DFS search)

Grid C-Space – The Brushfire alg. We start to propagate a wave front from the obstacles boundaries outside and in every step update the pixels pointer to the obstacle which originated the wave front. When a collision of 2 wave fronts from 2 different obstacles occure this collision point must be on the equidistant edge, hence on the GVD, so every pixel which will have 2 different pointers will be marked as a GVD Roadmap pixel.

Example of Wave propagation:

Polygonal Obstacles When all the obstacles are polygonal we have only 2 features: vertices and edges, thereby making equidistant relationships easy to define: 1.The set of points equidistant to 2 vertices is a line. 2.The set of points equidistant to 2 edges is a line. 3.The set of point that is equidistant to a vertex and edge is a parabola.

The Algorithm Voronoi Diagram Compute GVD( C free ) Compute p (q init ) and p (q qoal ); find the arcs containing them just follow away from the closest obstacle until you reach the GVD. Search and return a path between them if exists; otherwise, return failure. (Boundary tracing) You can find the shortest path with Fast-Marching method. Construction most expensive: O(n log n) Other steps: O(n)