Precomputed Search Trees: Planning for Interactive Goal-Driven Animation Manfred Lau and James Kuffner Carnegie Mellon University
Motion Planning approach InputsOutput
Behavior Planner Lau and Kuffner. “Behavior Planning for Character Animation.” SCA 05
Motivation Efficient algorithm for: large number of characters global planning re-plan continuously in real- time dynamic environment complex motions including jump, crawl, duck, stop- and-wait
Main contribution Precomputed Search Tree
Traditional Planning ~50,000 μs for 1 s of motion
Precomputed Search Trees ~250 μs for 1 s of motion
Overview FSM Environment
Overview Precompute FSM Environment 1) Search Tree
Overview FSM Environment Precompute 2) Gridmaps
Overview FSM Environment Precompute 1) Search Tree 2) Gridmaps Runtime
Overview FSM Environment Precompute 1) Search Tree 2) Gridmaps Runtime 1) Map Obstacles
Overview FSM Environment Precompute 1) Search Tree 2) Gridmaps Runtime 1) Map Obstacles 2) Path Finding
Overview – Distant Goal Coarse-Level Planner
Overview – Distant Goal Coarse-Level PlannerRepeatedly select sub-goal and run each sub-case
Related Work Motion Planning Kuffner 98 Shiller et al. 01 Bayazit et al. 02 Choi et al. 03 Pettre et al. 03 Sung et al. 05 Koga et al. 94 Kalisiak and van de Panne 01 Yamane et al. 04 Choi et al. 03 Global Navigation Manipulation and whole-body motions
Related Work Precomputation Lee and Lee 04 Reitsma and Pollard 04 Re-playing original motion capture data Arikan and Forsyth 02 Kovar et al. 02 Lee et al. 02 Pullen and Bregler 02 Gleicher et al. 03 Lee et al. 06 Lee and Lee 04 Kovar et al. 02
Related Work Motion Vector Fields / Steering Approaches Brogan and Hodgins 97 Menache 99 Reynolds 99 Mizuguchi et al. 01 Treuille et al. 06 Treuille et al. 06
Advantages of our approach Precomputed Search Trees: many characters re-plan continuously in real-time global planning – as opposed to local policy methods complex motions – jump, crawl, duck, stop-and-wait one tree – can be used for all characters, and different environments
Environment Representation Obstacle Growth in Robot Path Planning Udupa 77 Lozano-Pérez and Wesley 83 Special regions for crawl/jump
Behavior Finite-State Machine
Precompute 1) Search Tree 2 levels, 3 behavior states
Precompute 1) Search Tree
Precompute 1) Search Tree represents all states reachable from current state 5 levels, 7 behavior states
Precompute 1) Search Tree – Pruned to ~10 MB exhaustivepruned
Precompute 2) Environment Gridmap used to identify the tree nodes that are blocked by obstacles
Precompute 2) Goal Gridmap used to efficiently extract all paths that reach goal from start state
Runtime 1) Map obstacles to Environment Gridmap
Runtime 1) Map obstacles to Environment Gridmap
Runtime 2) Path Finding – reverse path lookup (vs. forward search)
Runtime 2) Path Finding – take shortest path that reaches goal root obstacle
Runtime 2) Path Finding – take shortest path that reaches goal
Runtime 2) Path Finding – take shortest path that reaches goal
Motion Generation / Blending Sequence of behaviors converted to actual motion Blending at frames near transition points Linearly interpolate root positions Smooth-in, smooth-out slerp interpolation for joint rotations
Planning to distant goals Only up to specific level
Intermediate goal points Apply precomputed tree repeatedly
Intermediate goal points Apply precomputed tree repeatedly
Intermediate goal points Apply precomputed tree repeatedly
Distant goal example Run coarse bitmap planner first
Distant goal example Find sub-goalRun sub-case
Distant goal example Find sub-goalRun sub-case
Distant goal example Final solution
Distant goal example Final solution
Result – speedup Precomputed Trees A*-search Avg. runtime or 3, ,591 search time (μs) 176 times faster Avg μs per frame ,445 Avg pathcost Avg time of synthesized 13,123,333 12,700,000 motion (μs) Real-time speedup 4,191 times 23 times
Tradeoff: Motion Quality vs. Memory exhaustive tree
Single Character Mode complete solution path for one character continuously re-generated, as the user changes environment large environment (70 by 70 meters), takes 6 ms to generate full path
Multiple Character Mode execute “runtime path finding” phase only after we start rendering the first frame from the previous partial path precompute blend frames (~20 motion clips), precompute all pairs separate gridmaps for collision avoidance between characters same precomputed tree for all characters
Summary Advantages of our approach: large number of characters global planning re-plan continuously in real-time complex environment complex motions Precomputed Search Tree
Summary Advantages of our approach: large number of characters global planning re-plan continuously in real-time complex environment complex motions Precomputed Search Tree Thank you! Questions.