Top Banner
Character Physics and Animation in Full Auto David Wu Pseudo Interactive
85

Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Dec 10, 2015

Download

Documents

Madison Page
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Character Physics and Animation in Full Auto

David WuPseudo Interactive

Page 2: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Introduction

Physical simulation of characters is an important problem in games.

In this lecture, the Framework for character simulation and animation that PI is developing will be presented.

Page 3: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Introduction (cont)

This framework is part of the latest incarnation of our physics engine, and is the basis for a game in development.

This means that the framework needs to actually work.

Page 4: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Goal

The primary goal of this presentation is to describe a collection of algorithms that can be used to solve the dynamic equations of characters, incorporate animation data into the solutions and integrate the results forward in time.

Page 5: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Goal

The main algorithms are:The Structurally Recursive

methods for inverse dynamicsImplicit Euler integrationMathematical Optimization

Page 6: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Goal (cont)

By the end of the lecture you should have an intuitive understanding of how the structurally recursive methods work to solve for the dynamics of a character and how implicit Euler can use the results to evolve the system dynamics through time.

Page 7: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Framework

1) Q’’

3) Residual

0) Q’’ initial guess

2) Q’’,Q’,Q

Note: Colorful text suggested by Casey

Page 8: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Framework

1) Q’’

3) Residual

0) Q’’ initial guess

2) Q’’,Q’,Q

Note: Colorful text suggested by Casey

Page 9: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Goal (continued)

The secondary goal of this presentation is to get myself a free pass to GameTech.

Page 10: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

The Framework

Physics in games is similar to where 3d rendering was in the early ‘90s.

There are many different approaches to solving the problem.

There is no commonly accepted standard.I.e. no “Triangle”.

Page 11: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

The Framework

I predict that this framework will become the “Triangle” of physics in games.

1) Q’’

3) Residual

0) Q’’ initial guess

2) Q’’,Q’,Q

Note: Colorful text suggested by Casey

Page 12: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

The Framework

VersatileRobustStable performanceSimple APIExplicit Control of DOF

• useful for Animation

1) Q’’

3) Residual

0) Q’’ initial guess

2) Q’’,Q’,Q

Note: Colorful text suggested by Casey

Page 13: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Disclaimer

I am often wrong.

Page 14: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Physical Entities

All Physical entities are made up of “Frames”A Frame has Degrees of Freedom (DOF) and can perform spatial transformation from local space to global space.For this lecture we will only consider rigid bodies, although the algorithms that are described can support arbitrary DOF, including, for example, finite element nodes.

Page 15: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Character Example

Each set of arrows is a FrameAll frames are related to their parent using relative coordinatesEach frame is Rigid from a physics stand point (although the mesh uses skinning) Closed loops require constraints

Page 16: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Character Example

DOF Breakdown: Root (chest) 6 Pelvis 3 Thighs 3 (*2) Knees 1 (*2) Feet 3 (*2) Shoulders 3 (*2) Elbows 1 (*2) Wrists 3 (*2)

Total: 14 Frames, 37 DOF

Page 17: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Physics of Characters

There are a number of ways to derive the dynamics of characters. The method that I will describe is based on the structurally recursive methods. There are a number related techniques that all use the same concepts:

Featherstone's method Articulated Rigid Body Method Recursive Newton-Euler Equations Composite Rigid Body Method Etc.

Page 18: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Physics of Characters

An intuitive understand of how the method works is important.As such, the presentation will start from first principles and emphasize verbal descriptions.Part of the motivation behind this is the difficulty of writing equations or code in PowerPoint.

Page 19: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

First PrinciplesConsider the momentum of a single rigid body at time t0:

Mt0*Vt0

M is a sparse 6x6 Matrix Mass Moments of Inertia

V is a 6d vector 3d Velocity at Center of

mass 3d Angular velocity This is often called the

“Spatial Velocity Vector”

M

vw

Page 20: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Some notes on the M matrix

Since M is in global coordinates, it is generally dependant on the rigid bodies orientation in space. This is what gives rise to the coriolis terms

If V was chosen to be at a point other than the center of mass, M would be less sparse and it would represent centrifugal effects.

Using the momentum equations we can safely ignore these effects - they are handled implicitly. I.e. when a valid solution is found, derivatives

of M will have contributed to the solution.

Page 21: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

DynamicsConservation of momentum provides the

following constraint: Mt1*Vt1 = Mt0*Vt0 + integral(F,t0,t1)

F are external forces and torques

By the definition of velocity we have: Qt1 = Qt0 + integral(V,t0,t1)

Q is position and orientation These are the main equations that we

need to solve to ensure that the simulation is physically accurate.

Page 22: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

How to solve?

Everyone’s favorite straw man…

Page 23: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Forward Euler

In order to approximate integral(F,t0,t1) we could compute F at t0 and then multiply it by (t1-t0).

Mt1*Vt1 = Mt0*Vt0 + Ft0*dt This is convenient because we know

the state of the system at t0, so we can just compute forces directly.

The approximation is that the forces at t0 are constant throughout the time step, which is pretty accurate if t1-t0 is very small.

Page 24: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Forward Euler

Another difficulty is computing Mt1

We don’t have the system state at t1 so computing the system inertia at that time is not trivial.

If we further assumed that Mt1 = Mt0 we would have:

Mt0*Vt1 = Mt0*Vt0 + Ft0*dt

Multiplying everything by Mt0-1:

(Vt1 -Vt0) = Mt0-1 *Ft0*dt

This can be solved explicitly, we are extrapolating acceleration.

Unfortunately it is not very stable.

Page 25: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Implicit Euler

With Forward Euler, we replaced all Integral(X,t0,t1)’s with Xt0*(t1-t0)

Assuming that we can ignore the difficulties of computing quantities at future points in time, we could instead replace Integral(X,t0,t1) with Xt1*(t1-t0)

This is implicit Euler, which is unconditionally stable for stable systems.

Page 26: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Implicit Euler

A simple example is a stiff spring

Ft0

Ft1

Vt0

Vt1

There is negative feedback for conservative potentials

Page 27: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Implicit Euler

We can now approximate integral(F) as Ft1:

Mt1*Vt1 = Mt0*Vt0 + Ft1*dt

And we can similarly approximate integral(V,t0,t1) as Vt1*dt.

Qt1 = Qt0 + Vt1*dt

For convenience, we will add a pseudo acceleration equation to represent delta V from t1 to t0:

Vt1 = Vt0 + V’*dt

Page 28: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Nonlinear Equations

The implicit equations are difficult to solve because we need values at future points in time.

Another way of saying this is that we have unknowns all over the place, and some of the relationships are nonlinear.

Page 29: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Nonlinear Equations

As it turns out, these equations can be transformed into a convex optimization problem.

The function that we are minimizing is related to the systems kinetic and potential energy:

E=(Mt1*Vt1 - Mt0*Vt0 - Ft1*dt)*Vt1

The unknowns are the accelerationsThe convex constraints are the physical

constraints

Page 30: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Convex Optimization

As it turns out, these equations can be transformed into a convex optimization problem.

The function that we are minimizing is related to the systems kinetic and potential energy (the Lagrangian):

E=(Mt1*Vt1 - Mt0*Vt0 - Ft1*dt)*V’

The unknowns are the accelerations (V’)The convex constraints are the physical

constraints

Page 31: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Minimizing Energy

E=(Mt1*Vt1 - Mt0*Vt0 - Ft1*dt)*V’

In the limit as |t1-t0| -> 0, minimizing this function is equivalent to minimizing the system Lagrangian.

The constants are different, but the minima is at the same place and the system preserves momentum and energy.

Page 32: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Interior point methods

E=(Mt1*Vt1 - Mt0*Vt0 - Ft1*dt)*V’

One way to solve convex optimization problems is piecewise quadratic programming, another is the interior point method which is what we will use.

The interior point methods transform the constraints into penalty functions and then minimizes unconstrained nonlinear equations.

Page 33: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Penalty Methods

Penalty methods are intuitive - game developers have been using them for years, even developers who don’t know what they are.

The spring analogy provides a metaphor and API that is easy to use and understand.

You don’t have to worry too much about overconstrained systems, which are very difficult to avoid in games.

Page 34: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Nonlinear Equations

If we know what the acceleration is, we can step the system forward in time to compute Vt1, Mt1.

With this updated state we can compute Ft1.

We can then compute the Residual: R = Mt1*Vt1 - Mt0*Vt0 - Ft1*dt To see if the acceleration was physically correct.

Ft1

Vt1Vt0

step

Page 35: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Mathematical Optimization

There is a good management analogy here:

Rather than trying to find a solution, we can let someone else try out solutions and just let them know how wrong they are.

This is essentially the interface to mathematical optimizers

i.e. Conjugate Gradient Method, Newton's method, Gauss Seidel iterations

Page 36: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Minimizing Residual

For a given acceleration we compute

R = Mt1*Vt1 - Mt0*Vt0 - Ft1*dt.

R is how wrong the acceleration is.- If R is 0, the solution is correct.- In practice we don’t need exact 0’s, if we sufficiently minimize R the answer is good enough.

Page 37: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Optimizer API

The mathematical optimizer will use the residual to guide a search. The search tests a series of accelerations and eventually converges on the optimal solution.

Q’’ Residual

Page 38: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

HessianNewton’s Method

minimizes nonlinear equations by approximating them as a piecewise quadratic function.

The Hessian is the matrix that represents the quadratic coefficients:

q*H*qt + qt*b + c = 0

Page 39: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Hessian

The Hessian of these equations turns out to be:

System inertia with respect to the DOF

+ a low pass filter due to implicit Euler integration

+ a filter due to constraints and penalty methods

Page 40: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Hessian

Intuitively the equation that the optimizer solves is similar to

F = MAM is the Hessian.

Constraints add “infite inertia”

Stiff springs make the system heavier w.r.t. their direction of action

Page 41: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Hessian

Due to the nature of physics, if we linearalize the equation:

R = Mt1*Vt1 - Mt0*Vt0 - Ft1*dt.

about a given acceleration, the Hessian is symmetric and positive definite.

This can be solved with the Conjugate gradient method

Page 42: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Hessian

Semi implicit Euler assumes that the Hessian is constant.

This will not handle unilateral constraints, or highly nonlinear termsI.e. collisions, friction

Page 43: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Truncated Newton

Fully implicit Euler requires a full non linear solve, which handles a non-constant Hessian.

Truncated Newton uses piecewise truncated linear solutions in conjunctions with nonlinear line searches.

Page 44: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Truncated Newton

If the Hessian does not change significantly fully implicit is as efficient as partially efficient.

It only does extra work when required.

Page 45: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Simulation

In order to simulate the rigid body we: Guess at what the acceleration is, and give this

to the optimizer. The optimizer will feed us a number of guesses. For each guess we:

Step the system forward with the kinematic equations:

Vt1 = Vt0 + V’*dt Qt1 = Qt0 + Vt1*dt

Compute Ft1

Compute Mt1*Vt1

Compute the residual: R=Mt1*Vt1 - Mt0*Vt0 - Ft1*dt

Feed the residual back to the optimizer.

Page 46: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Simulation

In the case of unconstrained rigid bodies, the Hessian is Diagonally dominant, Conjugate gradient can solve these systems to a reasonable error in one step.

Page 47: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Inverse Dynamics

Computing Mt1*Vt1 - Mt0*Vt0 is similar to Inverse Dynamics, but in this case we are dealing with a finite change in time and velocity rather than an infinitesimal change. Inverse Dynamics computes forces

from accelerations. The problems are similar enough

that we can use similar techniques

Page 48: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Inverse Dynamics

Inverse dynamics is generally much easier than forward dynamics.A number of efficient methods for computing inverse dynamics have been developed by the robotics community.

A common application is to find a set of actuator torques required to achieve a set of joint accelerations

This technique can be used to efficiently determine physical quantities from animation data

Page 49: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Degrees of Freedom

In the case of a single unconstrained rigid body, the Spatial velocity vector is a natural choice to represent degrees of freedom. However in many cases we may want to use different degrees of freedom.

Angular velocity about a specific axis (i.e. elbow joint)

Linear velocity at an arbitrary point in space Time derivative of a quaternion Angular velocity of one body relative to another Etc.

Page 50: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobian

For any set of degrees of freedom, we can derive the resulting spatial velocity and compute momentum from there.This transformation a Jacobian.dV/dq’

q’

wV

Jacobian

Page 51: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobian

dV/dq’A rectangular matrix of partial derivatives that relates the derivatives of generalized DOF to the velocity of Rigid bodies.

q’

wV

Jacobian

Page 52: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Degrees of Freedom

Rigid bodies with their spatial velocities serve as a convenient Interface for various things such as constraints, potentials, contacts, computation of momentum etc.So most systems can only worry about rigid bodies and not deal with the fact that it might be a part of a character.

Attempting to interface at this level of abstraction is not recommended at social functions.

q’

wV

Jacobian

Page 53: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Degrees of Freedom

We can use the Jacobian to project spatial forces back into the coordinate system of the DOF.The Jacobian is often represented symbolically to exploit it’s sparsity and recursive relationships.I.e. for a typical character the complete Jacobian might be a 37x84 matrix

tau

Jacobian

F

Page 54: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Simulation- arbitrary DOF

Q’’

Residual w.r.t. Q

V’ Spatial Residual(Momentum error)

Page 55: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Simulation- Hessian

Q’’

V’

A Hessian is the System inertia projected into DOF space + a low pass filter due to Implicit Euler

Page 56: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Simulation- arbitrary DOF

So in order to simulate any physical mechanism we can do the following:

Given the system state at t0, and an acceleration q’’.

Compute updated positions and velocities (q’,q) Compute spatial velocity (V), position and

orientation of the Rigid bodies Compute the Momentum of the rigid bodies Compute external forces Compute the residual R=Mt1*Vt1 - Mt0*Vt0 - Ft1*dt Project the residual back into DOF space for the

Mathematical Optimization system to deal with

Page 57: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

vw

Constrained Rigid Body

Consider a rigid body constrained to rotate about an axis a.It has 1 degree of freedom (q, q’)The Jacobian relating q’ to V is the 1x6 matrix:

J = { Cross(a,r), a }t

V = J*q’M*V = M*J*q’So the residual in terms of q’’

projected onto q is:R=(M*J*(q’+q’’*dt) – Mt0*Vt0 - F) * Jt

a

r

F

Page 58: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Linked Bodies

Consider the two Linked bodies, L0 and L1

L0 is the Parent of L1 L1 is pinned to L0 at the point p L1 has 3 Degrees of freedom

relative to L0, it can rotate about the point.

The degrees of freedom that we will use are 6 spatial DOF for L0 and 3 relative angular DOF for L1 (q1), which are in the local space of L0.

M

vw

M

vw

L0

L1

F

F

p

q1

Page 59: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Linked Bodies Kinematics

R0 is the vector from L0’s center of mass to the pivot pR1 is the vector from p to L1’s center of mass.A0 is the orientation of L0The angular velocity of L1 is:

Vl0.angular + A0*q1

The linear velocity of L1 is: Vl0.linear +

cross(Vl0.angular,r0) + cross(A0*q1,r1)

M

vw

M

vw

L0

L1

F

F

p

r0

r1

Page 60: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

The Jacobian for L0 is just I for it’s own DOF (since it is using spatial velocity) and 0 for L1’s DOF.The Jacobian for L1 projects from L0’s DOF and L1’s DOF to the spatial velocity of L1, so it is a 9x6 matrix which computes:

Vl0.angular + q1 Vl0.linear + cross(Vl0.angular,r0+r1)

+ cross(A0*q1,r1) Writing this expression as a matrix in

PowerPoint is beyond the scope of this presentation.

M

vw

M

vw

L0

L1

F1

F0

p

r0

r1

Page 61: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

The complete Jacobian for the system is 9x12.While it is tempting to just treat the Jacobian as a black box matrix, it is helpful to have an intuitive feel for what is happening.

M

vw

M

vw

L0

L1

F1

F0

p

r0

r1

Page 62: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

In the case of articulated rigid bodies the block corresponding to the relationship between some q’ and a child’s spatial velocity can be computed by:

Projecting the q’ to a spatial vector Usually a rotation or an projection

along an axis Translating the spatial velocity to

the cofm of the rigid body linear = linear + cross(angular, r) angular = angular

M

M

vw

L0

L1

p

r0

r1

Page 63: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

Conceptually you think of L0 and L1 as one large composite rigid body.

Angular velocity is constant throughout

Linear velocity at a point p1 (i.e. the cofm of L1) is the linear velocity of the composite body at point p0 + cross(angular velocity, p1-p0)

L0

L1

p0

p1

p1-p0

V

w

Page 64: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

When projecting from spatial forces back into DOF the block corresponding to the relationship between the force on a body and a parent’s DOF can be computed by:

Translating the spatial force to pivot (or cofm) of the DOF Linear = linear angular = angular + cross(r,linear)

Projecting the spatial vector onto the DOF Usually a rotation or an projection

along an axis This is the Transpose of what we saw

on the last slide

M

M

L0

L1

F1

F0

p

r0

r1

Page 65: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Jacobians

Considering L0 and L1 as one large composite rigid body,

Linear Force is applied at any point results in a constant force throughout

Linear Force applied to point p1 creates an addition angular torque (moment) at p0 equal to cross(p1-p0, F)

L0

L1

p0

p1

p1-p0

F

Page 66: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Residual

Armed with the Jacobian, computing the residual is straight forward.

Spatial Momentum (M*V) is computed for each body

Spatial forces (F0,F1) are computed on each body as usual

The residual is computed for each body:

R=(Mt1*Vt1 – Mt0*Vt0 - F) The residuals are projected

onto the DOF using the Jacobian.

M

vw

M

vw

L0

L1

F1

F0

p

r0

r1

Page 67: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

N Bodies

This solution is readily extendable to tree structured mechanisms with an arbitrary number of degrees of freedom. I.e. characters that are not wearing straight jackets, hand cuffs or other devices that might create closed loops.

Page 68: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

N Bodies

Direct computation of the Jacobian requires O(n2) time and O(n2) space.We can use a recursive technique that processes direct child-parent relationships to compute the product of the Jacobian and a vector in O(n) time. These are called the Recursive Newton Euler equations.

Page 69: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

N Bodies

The process is a straight forward extension of what was used to solve the two body case.From Root to Leaves:

Each frame uses its acceleration to update its relative velocity, position and orientation.

Frames combine the effects of their relative DOF with their parent’s composite spatial DOF to compute their new spatial DOF.

Page 70: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

N Bodies

Compute External Forces on all bodiesFrom Leaves to Root, for each frame:

Compute spatial momentum

Compute local residual Add the composite

residual of all children Project the residual onto

DOF

Page 71: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

N Bodies

When a parent passes its composite velocity down to its children it is providing the results from O(n) grand parents.When each child passes its composite residual up to its parent it is providing the results of O(n) grandchildren.This is how the problem is reduced from O(n2) time to O(n) time.

Page 72: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Just another Jacobian

The DOF of Articulated characters can seamlessly interact with the DOF other dynamic systemsWe just a way to compute the Jacobian for the DOF

Dof-Kinematics-Inertia-Potentials

Particles

Rigid Bodies

Articulated Figures

Finite Elements

Page 73: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Just another Jacobian

Page 74: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Forward Dynamics

This technique can be extended to forward dynamics

I.e. the Articulated rigid body method

Unfortunately when you have constraints and closed loops (i.e. contacts) things rapidly increase above O(n) time.Forward dynamics can be used to precondition the system for the optimizer.

Page 75: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Kinematics

A convenient property of this solution is that specific DOF can be set to kinematic with very few changes:The accelerations of the kinematic DOF are not given to the mathematical optimizer, instead they are assumed to be constants.When the residual is computed for Kinematic DOF, it is not given back to the optimizer.

Page 76: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Kinematics

Kinematic DOF reduce the number of unknowns that the optimizer has to solve for. This improves convergence and speeds up the solution.A technique that we use to LOD simulation is to “Bake” certain DOF when stress is high.

I.e. wrists and ankles are dynamic ¼ of the time, and kinematic with q’’ = -q’*kd the rest of the time.

Page 77: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Animation

Animation data can be applied to dynamic characters as follows:

All DOF are set to kinematic with q’’ derived from the animation

The DOF space residuals are compared with some threshold representing the maximum force/torque that the characters muscles can apply.

If the residual is <= this limit, everything is fine.

If the residual is >= this limit, the limit is applied and the DOF is switched to dynamic.

Page 78: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Animation

This provides a very efficient mechanism to combine animations with physics.When all residuals are within limits, the costs are very similar to that of straight animation playback.

I.e. there are 0 unknown DOF, which is easy to solve for.

Page 79: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Animation

Switching back and forth between dynamic and kinematic is perfectly legal within the context of convex optimization, provided that the actuator force applied when the DOF are dynamic are >= than the highest residual seen when they were kinematic.

Page 80: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Animation

Rather than removing the kinematic DOF from the optimizer, you can just set the residual’s to 0 and the optimizer will not change the DOF. This is equivalent to applying a force that is exactly equal and opposite to the residual at the DOF, which is what an ideal actuator would do.The function is min(torque limit,residual) This would break a semi implicit integrator.

Page 81: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Semi Implicit vs Fully Implicit

When the torque hits the limit, the Hessian changes. Semi implicit integrators consider the Hessian to be constantA non-linear optimizer will find the transition in the line search.

Page 82: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Limitations

Finding the wrong root. A non-linear system can have multiple local

minima. The worst offenders are rotational DOF with

very little inertia subject to large external forces I.e. foot on ground supporting body Luckily the animation actuator increases the effective

inertia of the DOF It helps to give characters strong calves.

In order for this to be a problem at a 60hz simulation rate, you have to encounter angular accelerations that are ~ 3600 radians/second2

Page 83: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Limitations

First order accurate For us the error is acceptable when

simulating at >= 60hz.

Adds damping

Page 84: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Summary

Lots of stuff was covered.

Page 85: Character Physics and Animation in Full Auto David Wu Pseudo Interactive.

Questions