Dynamic Simulation of Articulated Rigid Bodies with Contact and Collision

Rachel Weinstein, Joseph Teran, and Ron Fedkiw
Stanford University

Contact: rachellw [at] graphics [dot] stanford [dot] edu

We propose a novel approach for dynamically simulating articulated rigid bodies undergoing frequent and unpredictable contact and collision. In order to leverage existing algorithms for nonconvex bodies, multiple collisions, large contact groups, stacking, etc., we use maximal rather than generalized coordinates and take an impulse based approach that allows us to treat articulation, contact and collision in a unified manner. Traditional constraint handling methods are subject to drift, and we propose a novel pre-stabilization method that does not require tunable potentially stiff parameters as does Baumgarte stabilization. This differs from post-stabilization in that we compute allowable trajectories before moving the rigid bodies to their new positions, instead of correcting them after the fact when it can be difficult to incorporate the effects of contact and collision. A post-stabilization technique is used for momentum and angular momentum. Our approach works with any black box method for specifying valid joint constraints, and no special considerations are required for arbitrary closed loops or branching. Moreover, our implementation is linear both in the number of bodies and in the number of auxiliary contact and collision constraints, unlike many other methods that are linear in the number of bodies but not in the number of auxiliary constraints.

Paper: pdf

Note: Videos are compressed using DivX. Get the codec here for free

Basic Joints

Basic Point Joint Basic Hinge Joint Basic Rigid Joint Basic Twist Joint Constrained
Hinge Joint

Closed Loop and Prismatic Joint Examples

15 by 15 Net Supporting Blocks Bridge Bombarded by Blocks Magnets Falling Down a Refridgerator
Over 960 constraining joints
hold up and support the blocks
Closed loops formed in base of
bridge and between bridge and ropes
Magnets constrained by prismatic
joints to surface of refrigerator

Tank Examples

Trank Driving Forward Tank Turning
Dynamic joints between the front and back gears
and the treads allow control of the tanks movement
while the middle gear moves passively
Differential steering allows the tank to turn by
rotating the gears in oppposite directions.

Stacking Examples

20 Skeletons Falling in a Pile 180 Articulated Rings of 6 Nonconvex Bodies (1080 Bodies Total) 360 Articulated Rings of 6 Nonconvex Bodies
(2160 Bodies Total)
Over 20 million triangles
total in the skeletons
Rings stack upon one another forming
additional closed loops
Same as previous example but
scaled up to show robustness