Five Physics Simulators for Articulated Bodies - PowerPoint PPT Presentation

About This Presentation
Title:

Five Physics Simulators for Articulated Bodies

Description:

... talk about CCD problems, s on d6.com. Solving IK with Dynamics ... generalized coordinates with implicit integration is the best bet so far for run-time ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 28
Provided by: ChrisH111
Category:

less

Transcript and Presenter's Notes

Title: Five Physics Simulators for Articulated Bodies


1
Five Physics Simulators for Articulated Bodies
  • Chris Hecker
  • definition six, inc.
  • checker_at_d6.com

2
Prerequisites
  • comfortable with math concepts, modeling, and
    equations
  • kinematics vs. dynamics
  • familiar with rigid body dynamics
  • probably have written a physics simulator for a
    game, even a hacky one,
  • or at least read about it in detail,
  • or are using a licensed simulator at a low level

3
Takeaway
  • 2 key concepts, vital to understand even if
    youre licensing physics
  • degrees of freedom, configuration space, etc.
  • stiffness, and why it is important for games
  • pros and cons subtleties of 4 different
    simulation techniques
  • all are useful, but different strengths
  • all examples are 2D, but generalize directly to
    3D
  • not going to be detailed physics tutorial

4
Problem DomainHighly Redundant IK
  • Simulate a human figure under mouse control
  • for a game about rock climbing...demo
  • Before going to physics, I tried...
  • Cyclic Coordinate Descent (CCD) IK
  • works okay, simple to code, but problems
  • non-physical movement
  • no closed loops
  • no clear path to adding muscle controls
  • gave a GDC talk about CCD problems, slides on
    d6.com

5
Solving IK with Dynamics
  • rigid bodies with constraints
  • need to simulate enough to make articulated
    figure
  • 1st-order dynamics
  • f mv
  • no inertia/momentum no force, no movement
  • mouse attached by spring or constraint
  • must be tight control
  • hands/feet attached by springs or constraints
  • must stay locked to the positions

6
I Tried 4 Simulation Techniques
integration type
explicit integration
implicit integration
augmented coordinates
Lagrange Multipliers
Stiff Springs
coordinate type
generalized coordinates
Recursive Newton-Euler
Composite Rigid Body Method
  • Wacky demo of all 4 running simultaneously...

7
Obvious Axes of the Techniques
  • Augmented vs. Generalized Coordinates
  • ways of representing the degrees-of-freedom (DOF)
    of the systems
  • Explicit vs. Implicit Integration
  • ways of stepping those DOFs forward in time, and
    how to deal with system stiffness

8
Degrees Of Freedom (DOF)
  • DOF is a critical concept in all math
  • find the DOF to understand the system
  • coordinates necessary and sufficient to reach
    every valid state
  • examples
  • point in 2D 2DOF, point in 3D 3DOF
  • 2D rigid body 3DOF, 3D rigid body 6DOF
  • point on a line 1DOF, point on a plane 2DOF
  • simple desk lamp 3DOF (or 5DOF counting head)

9
DOF Continued
  • systems have DOF, equations on those DOF
    constrain them and subtract DOF
  • example, 2D point, on line
  • configuration space is the space ofthe DOF
  • manifold is the c-space, usuallyviewed as
    embedded in theoriginal space

(x,y)
2DOF
x 2y
(x,y) (t,2t)
2DOF - 1DOF 1DOF
10
Augmented Coordinates
  • aka. Lagrange Multipliers, constraint methods
  • simulate each body independently
  • calculate constraint forces and apply them
  • constraint forces keep bodies together

f
3DOF 3DOF - 2DOF 4DOF
11
Generalized Coordinates
  • aka. reduced coordinates, embedded methods,
    recursive methods
  • calculate and simulate only the real DOF of the
    system
  • one rigid body and joints

q
3DOF 1DOF 4DOF
12
Augmented vs. Generalized Coordinates, Revisited
  • augmented coordinates dynamics equations
    constraint equations
  • general, modular, plugnplay, breakable
  • big (often sparse) systems
  • simulating useless DOF, drift
  • generalized coordinatesdynamics equations
  • small systems, no redundant DOFs, no drift
  • complicated, custom coded
  • dense systems
  • no closed loops, no nonholonomic constraints

13
Stiffness
  • fast-changing systems are stiff
  • the real world is incredibly stiff
  • rigid body is a simplification to avoid
    stiffness
  • most game UIs are incredibly stiff
  • the mouse is insanely stiff...IK demo
  • FPS control is stiff, 3rd person move change,
    etc.
  • kinematically animating objects can be
    arbitrarily stiff
  • animating the position with no derivative
    constraints
  • have keyframes drag around a ragdoll closely

14
Handling Stiffness
  • You want to handle as much stiffness as you can!
  • gives designers control
  • you can always make things softer, thats easy
  • its very hard to handle stiffness robustly
  • explicit integrator will not handle stiff systems
    without tiny timestep
  • thats sometimes used as a definition of
    numerical stiffness!

15
Stiffness Example
  • example exponential decay
  • phase space diagram, position vs. time
  • demo of increasing spring constant

position
time
dy/dx -y
dy/dx -10y
16
Explicit vs. Implicit IntegratorsNon-stiff
Problem
  • explicit jumps forward to next position
  • blindly leap forward based on current information
  • implicit jumps back from next position
  • find a next position that points back to current

17
Explicit vs. Implicit IntegratorsStiff Problem
  • explicit jumps forward to next position
  • blindly leap forward based on current information
  • implicit jumps back from next position
  • find a next position that points back to current

18
Four Simulators In More Detail
  • Augmented Coordinates / Explicit Integration
  • Lagrange Multipliers
  • Augmented Coordinates / Implicit Integration
  • Implicit Springs
  • Generalized Coordinates / Explicit Integration
  • Composite Rigid Body Method
  • Generalized Coordinates / Implicit Integration
  • Implicit Recursive Newton Euler
  • spend a few slides on this technique
  • best for game humans?

19
Four Simulators In More Detail Augmented /
ExplicitLagrange Multipliers
  • form dynamics equations for bodies
  • form constraint equations
  • solve for constraint forces given external forces
  • the constraint forces are called Lagrange
    Multipliers
  • apply forces to bodies
  • integrate bodies forward in time
  • forward euler, RK explicit integrator, etc.
  • pros simple, modular, general
  • cons medium sized matrices, drift, nonstiff
  • references Baraff, Shabana, Barzel Barr, my
    ponytail articles

20
Four Simulators In More Detail Augmented /
ImplicitImplicit Springs
  • form dynamics equations
  • write constraints as stiff springs
  • use implicit integrator to solve for next state
  • e.g. Shampines ode23s adaptive timestep, or
    semi-implicit Euler
  • pros simple, modular, general, stiff
  • cons inexact, big matrices, needs derivatives
  • references Baraff (cloth), Kass, Lander

21
Four Simulators In More Detail Generalized /
ExplicitComposite Rigid Body Method
  • form tree structured augmented system
  • traverse tree computing dynamics on generalized
    coordinates incrementally
  • outward and inward iterations
  • integrate state forward
  • RK
  • pros small matrices, explicit joints
  • cons dense, nonstiff, not modular
  • references Featherstone, Mirtich, Balafoutis

22
Four Simulators In More Detail Generalized /
ImplicitImplicit Recursive Newton Euler
  • form generalized coordinate dynamics
  • differentiate for implicit integrator
  • fully implicit backward Euler
  • solve system for new state
  • pros small matrices, explicit joints, stiff
  • cons dense, not modular, needs derivatives
  • references Wu, Featherstone

23
Generalized / ImplicitSome DerivationWarning 2
slides of hot and heavy math!
  • f fint fext mv
  • Forward Dynamics Algorithm
  • given forces, compute velocities (accelerations)
  • v m-1(fint fext)
  • Inverse Dynamics Algorithm
  • given velocities (accelerations), compute forces
  • fint mv - fext
  • Insight you can use an IDA to check for
    equilibrium given a velocity
  • if fint 0, then the current velocity balances
    the external forces, or f - mv 0 (which is just
    a rewrite of f mv)

24
Generalized / ImplicitSome Derivation (cont.)
  • IDA computes F(q,q) (ie. forces given state)
  • when F(q,q) 0, then system is moving correctly
  • we want to do implicit integration, so we
    wantF(q1, q1) 0, the solution at the new time
  • implicit Euler equation q1 q0 h q1
  • q1 q0 h q1 ... q1 (q1 - q0) / h
  • plugnchug F(q0 h q1, q1) 0
  • this is a function in q1, because q0 is known
  • we can use a nonlinear equation solver to solve F
    for q1, then use this to step forward with
    implicit Euler

25
Solving F(q1) 0 can be hard, even
impossible!(but its a very well documented
impossible problem!)
  • open problem
  • solve vs. minimize?

26
The 5th Simulator
  • Current best
  • implicit Euler with F(q) 0 Newton solve
  • lots of wacky subdivision and searching to help
    find solutions
  • want to avoid adaptivity, but cant in reality
  • doesnt always work, finds no solution, bails
  • Idea
  • an adaptive implicit integrator will find the
    answer, but slowly
  • the Newton solve sometimes cannot find the
    answer, no matter how slowly because it lacks
    info
  • spend time optimizing the adaptive integrator,
    because at least it has more information to go on

27
Summary
  • simulating an articulated rigid body is hard, and
    there are a lot of tradeoffs and subtleties
  • there is no single perfect algorithm
  • yet?
  • stiffness is very important to handle for most
    games
  • generalized coordinates with implicit integration
    is the best bet so far for run-time
  • maybe augmented explicit (?) for author-time
    tools
  • Ill put the slides on my page at d6.com
Write a Comment
User Comments (0)
About PowerShow.com