gdc2006 miles david pathplanning
TRANSCRIPT
-
8/12/2019 Gdc2006 Miles David Pathplanning
1/51
Crowds In A Polygon Soup
Next-Gen Path Planning
David Miles
3/23/2006
Copyright 2006 BabelFlux LLC
-
8/12/2019 Gdc2006 Miles David Pathplanning
2/51
Large-Scale Fluid AI Navigation in
Complex, Changing Worlds
1. Build a usable free space nav graph
2. Update graph for dynamic obstacles
3. Use graph for fluid navigation
-
8/12/2019 Gdc2006 Miles David Pathplanning
3/51
1. Building the Nav-Graph
Automated Build Process
1.Large, Complex Worlds2.Polygon Soup Mesh
3.Multiple Unit Sizes
-
8/12/2019 Gdc2006 Miles David Pathplanning
4/51
2. Dynamic Obstacle Updates
1.Obstacles reconfigure the world
2.Dynamic areas replace static areas
3.Underlying algorithms work exactly as before
-
8/12/2019 Gdc2006 Miles David Pathplanning
5/51
1. Fast ray casts
2. Edge detection
3. Potential Fields4. Path Following
3. Fluid AI Navigation
-
8/12/2019 Gdc2006 Miles David Pathplanning
6/51
Automated Build Process
-
8/12/2019 Gdc2006 Miles David Pathplanning
7/51
1. Voxelize Polygon Soup
-
8/12/2019 Gdc2006 Miles David Pathplanning
8/51
2. Extract Edge
-
8/12/2019 Gdc2006 Miles David Pathplanning
9/51
3. Simplify Polygon
-
8/12/2019 Gdc2006 Miles David Pathplanning
10/51
4. Partition Into Convex Areas
-
8/12/2019 Gdc2006 Miles David Pathplanning
11/51
Convex Partitioning
-
8/12/2019 Gdc2006 Miles David Pathplanning
12/51
Recursively Partition
-
8/12/2019 Gdc2006 Miles David Pathplanning
13/51
Convex Area Graph Complete
-
8/12/2019 Gdc2006 Miles David Pathplanning
14/51
Pathfinding
-
8/12/2019 Gdc2006 Miles David Pathplanning
15/51
Holes in the Free-Space
-
8/12/2019 Gdc2006 Miles David Pathplanning
16/51
Splice Location
-
8/12/2019 Gdc2006 Miles David Pathplanning
17/51
Add Splice Segments
-
8/12/2019 Gdc2006 Miles David Pathplanning
18/51
-
8/12/2019 Gdc2006 Miles David Pathplanning
19/51
Convex Area Graph Complete
-
8/12/2019 Gdc2006 Miles David Pathplanning
20/51
Overhead Obstacles
-
8/12/2019 Gdc2006 Miles David Pathplanning
21/51
Walkable Surface Removal
-
8/12/2019 Gdc2006 Miles David Pathplanning
22/51
-
8/12/2019 Gdc2006 Miles David Pathplanning
23/51
3d Partitioning
-
8/12/2019 Gdc2006 Miles David Pathplanning
24/51
-
8/12/2019 Gdc2006 Miles David Pathplanning
25/51
Different Creature Shapes
-
8/12/2019 Gdc2006 Miles David Pathplanning
26/51
-
8/12/2019 Gdc2006 Miles David Pathplanning
27/51
Non-Uniform Voxelization
-
8/12/2019 Gdc2006 Miles David Pathplanning
28/51
Part2: Dynamic Obstacles
Dynamic obstacles reconfigure world
Underlying algorithms unchanged
-
8/12/2019 Gdc2006 Miles David Pathplanning
29/51
Boolean Subtract
-
=
-
8/12/2019 Gdc2006 Miles David Pathplanning
30/51
Partition Non-Convex Areas
-
8/12/2019 Gdc2006 Miles David Pathplanning
31/51
Multiple Obstacles
-
8/12/2019 Gdc2006 Miles David Pathplanning
32/51
Memory Layout
-
8/12/2019 Gdc2006 Miles David Pathplanning
33/51
Part3: Fluid AI Navigation
What can I do with my convex area graph?
Very fast navigational ray-casts
Distance to edge queries Repulsion fields on edges
Smart path following
-
8/12/2019 Gdc2006 Miles David Pathplanning
34/51
Ray Casts
-
8/12/2019 Gdc2006 Miles David Pathplanning
35/51
Smart Path Following
Desired flocking behavior
Common approach attracts
each flock member to the
minimum distance path. Does
not adapt to available
freespace.
Repulsion from edges can
easily trap individuals in local
minima.
-
8/12/2019 Gdc2006 Miles David Pathplanning
36/51
For The Pathing
Connoisseur
Unneeded return to
the original path
annoys the pathingconnoisseur
Ahhh, much better
-
8/12/2019 Gdc2006 Miles David Pathplanning
37/51
Next Corner
Each member of the flock steers left
or right to head towards the next corner.
-
8/12/2019 Gdc2006 Miles David Pathplanning
38/51
Finding the Next Corner
-
8/12/2019 Gdc2006 Miles David Pathplanning
39/51
-
8/12/2019 Gdc2006 Miles David Pathplanning
40/51
Initializing the Loop
-
8/12/2019 Gdc2006 Miles David Pathplanning
41/51
First Iteration, Left Side
-
8/12/2019 Gdc2006 Miles David Pathplanning
42/51
First Iteration, Right Side
-
8/12/2019 Gdc2006 Miles David Pathplanning
43/51
First Iteration Complete
-
8/12/2019 Gdc2006 Miles David Pathplanning
44/51
Second Iteration, Left Side
-
8/12/2019 Gdc2006 Miles David Pathplanning
45/51
Second Iteration, Right Side
-
8/12/2019 Gdc2006 Miles David Pathplanning
46/51
Second Iteration Complete
-
8/12/2019 Gdc2006 Miles David Pathplanning
47/51
Third Iteration, Left Side
-
8/12/2019 Gdc2006 Miles David Pathplanning
48/51
Final Output
-
8/12/2019 Gdc2006 Miles David Pathplanning
49/51
Next Corner Summary
Easy to compute from convex graph
< 2 cross-products per iteration
Can limit iterations Never explicitly create min-dist path
Fluid path following even with large
disturbances
-
8/12/2019 Gdc2006 Miles David Pathplanning
50/51
Conclusions
Automated build of convex area graph efficiently represents the usable free space
operates on polygon soup mesh
settable enemy size and shape Dynamic obstacles update graph
no speed overhead once updated
Fluid AI navigation using the graph Many useful queries performed rapidly
-
8/12/2019 Gdc2006 Miles David Pathplanning
51/51
Special Thanks
Meilin Wong
Hong Park and David Modiano
Crystal Dynamics
www.navpower.com
mailto:[email protected]:[email protected]