Planning Short Paths with Clearance using Explicit Corridors Roland Geraerts ICRA 2010 Requirements Fast and flexible 2D path planner • Real-time planning for thousands of characters • Dealing with local hazards • Global path Natural paths • Smooth • Short • Keeps some distance to obstacles • Avoids other characters • … Titan Quest: Immortal throne Path planning system Build a data structure • Explicit Corridor Map: Medial Axis + annotated event points Perform query • Compute corridor • Compute Indicative Route • Compute path Explicit Corridor Map Corridor Indicative Route Path Data structure: Explicit Corridor Map Basis: Medial Axis Plus: annotated event points on the edges GPU computation • Placed at curve change on the edges • Occurs at crossing between site normal and edge • Annotation: its two closest points on the sites Equals: planar subdivision Perspective view (Z-buffer) • Memory footprint: linear in the number of vertices • There is no need for storing pixels Top view (Frame buffer) Query phase Perform query (on-line) • • • Find the retraction of the start and goal Connect the start and goal to the Explicit Corridor Map Compute the shortest backbone path (using A*) Explicit Corridor Map Query Explicit Corridor with backbone path Explicit Corridors: Obtaining clearance Minimum clearance in Explicit Corridors • Move each closest point cp toward its center point c • The displacement equals the desired clearance clmin • Insert event point(s) if clmin > distance(c, cp) c Explicit Corridor cp Shrunk corridors Shrinking a corridor Explicit Corridors: Shortest paths Computing the shortest path • Construct a triangulation – At most 2n+2 triangles – If the start/goal is not included, add a triangle • Compute the shortest path – Funnel algorithm [Guibas et al. 1987] li+1 ri+1 g ri li s Explicit Corridor Triangulation Shortest path Explicit Corridors: Shortest paths Computing the shortest minimum clearance path • Shrink the corridor – Construction time: linear in the number of event points • Compute the shortest path – Adjust Funnel algorithm to deal with circular arcs – Construction time: linear in the number of event points Explicit Corridor Triangulation Shortest path Query phase Compute a smooth path: Indicative Route Method • Compute the shortest minimum-clearance path • Define the attraction force – Pulls the character toward the goal • Define the boundary force – Keeps the character inside the corridor • Define other forces – Leads to other behaviors • Time-integrate the forces – Yields a smooth (C1-continous) path Query phase Query phase • Using other forces Smooth path Short path Obstacle avoidance Crowd simulation Coherent groups Path variation Camera path Stealth-based path planning Explicit Corridor Map: Experiments Performance • Setup – NVIDIA GeForce 8800 GTX graphics card – Intel Core2 Quad CPU 2.4 GHz, 1 CPU used • Experiments – City: 500x500 meter, 4000x4000 pixels, 548 convex polygons Explicit Corridor Map: Experiments Performance • Setup – NVIDIA GeForce 8800 GTX graphics card – Intel Core2 Quad CPU 2.4 GHz, 1 CPU used • Experiments – City: 500x500 meter, 4000x4000 pixels, 548 convex polygons time: 0.3s Query phase: Experiments Performance • Setup – Intel Core2 Quad CPU 2.4 GHz, 1 CPU • Experiments – City: 500x500 meter, 1.000 random queries • Results (average query time) 5 4 3 2 1 0 0.58 Smooth path 1.83 Triangulation/shortest path 0.45 1.19 Explicit corridor/shrinking Time (ms) Extract implicit corridor Query phase: Experiments Performance • Setup – Intel Core2 Quad CPU 2.4 GHz, 1 CPU • Experiments – City: 500x500 meter, 1 query • Results (query time) – 2.8 ms ECM (0.3s) Explicit corridor Shrunk corridor Triangulation Shortest path Smooth path Conclusions Advantages • • • • Flexible path planner generates natural paths Computation of smooth, short minimum clearance paths The algorithms run in linear time and are fast in practice The algorithms are simple Open problems • Handle large dynamic changes efficiently • Handle 2.5D/3D environments Questions Contact • Roland Geraerts (roland@cs.uu.nl) • Home page: www.cs.uu.nl/~roland • Conference: www.motioningames.org