Advanced Computer Graphics Rigid Body Simulation Spring 2002 Professor Brogan

advertisement

Advanced Computer Graphics

Rigid Body Simulation

Spring 2002

Professor Brogan

Upcoming Assignments

• Who wants a midterm instead of an assignment?

• Final will be take home

• Cloth/water/parallel particle sim presentations

– Volunteers?

– Papers selected by Thursday

Physical Simulation

• References

– Text book (4.3 and Appendix B)

– Physics for Game Developers (Bourg)

– Chris Hecker Game Developer articles

• http://www.d6.com/users/checker/dynamics.htm

Equations of Motion

• The physics-based equations that define how objects move

– Gravity

– Turbulence

– Contact forces with objects

– Friction

– Joint constraints

Equations of Motion

Current State

Position and velocity

Integrate

Velocities

Equations of

Motion

Forces

Integrate

Accelerations

Integrate

Equations of Motion

• Linear motions: r ( t )

 v ( t )

 v ( t ) dt

 a ( t ) dt

• Example:

– Constant acceleration of

5 m/s 2 v ( t ) v ( 0 )

 a dt

 

5 ( 0 )

C

5 dt v

0

C v ( t )

5 t

 v

0

5 t

C r ( t )

  v ( t ) dt

 

5 t

 v

0 dt

5

2 t

2  v

0 t

 r

0

Linear Momentum

• Mass times velocity = linear momentum, p p

 m v

• Newton’s Second Law

F

 

 d p dt

 d ( m v

) dt

 m v

 

 m a

Ceasing to identify vectors…

Rigid Bodies

• Imagine a rigid body as a set of point masses

• Total momentum, p T, is sum of momentums of all points: p

T   m i v i i

• Center of Mass (CM) is a single point. Vector to CM is linear combination of vectors to all points in rigid r body weighted by their masses,

CM divided by total mass of body

 i m i r i

M

Total Momentum

• Rewrite total momentum in terms of CM p

T   i m i v i   i d ( m i r i

) dt

 d ( Mr

CM

) dt

• Total linear momentum equals total mass times the velocity of the center of mass

(For continuous rigid bodies, all summations turn into integrals over the body, but CM still exists)

• We can treat all bodies as single point mass and velocity

Total Force

• Total force is derivative of the total momemtum

– Again, CM simplifies total force equation of a rigid body

F

T  T 

M v  CM 

Ma

CM

– We can represent all forces acting on a body as if their vector sum were acting on a point at the center of mass with the mass of the entire body

Intermediate Results

• Divide a force by M to find acceleration of the center of mass

• Integrate acceleration over time to get the velocity and position of body

• Note we’ve ignored where the forces are applied to the body

• In linear momentum, we don’t keep track of the angular terms and all forces are applied to the CM.

Ordinary Differential

Equations

• A DifEq is an equation with

– Derivatives of the dependent variable

– Dependent variable

– Independent variable

• Ex: a

 dv dt

  v m

• v ’s derivative is a function of its current value

• Ordinary refers to ordinary derivatives

– As opposed to partial derivatives

Integrating ODEs

• Analytically solving ODEs is complicated

• Numerically integrating ODEs is much easier (in general)

– Euler’s Method

– Runge-Kutta

Euler’s Method

• Based on calculus definition of first derivative = slope

Euler’s Method

• Use derivative at time n to integrate h units forward y n

1

 y n

 h dy n dx

Euler Errors

• Depending on ‘time step’ h , errors will accumulate

SIGGRAPH Course Notes

Accumulating Errors

SIGGRAPH Course Notes

Recap

Angular Effects

• Let’s remain in 2-D plane for now

• In addition to kinematic variables

– x, y positions

• Add another kinematic variable

– W angle

– CCW rotation of object axes relative to world axes

Angular Velocity

• w is the angular velocity d

2 W

 dt

2 d w dt

 w   a

• a is the angular acceleration

Computing Velocities

• How do we combine linear and angular quantities?

• Consider velocity of a point, B, of a rigid body rotating about its CM v

B  w r

OB

• r_perp is perpendicular to r vector from O to B

• Velocity is w

-scaled perpendicular vector from origin to point on body

More Details

• Point B travels W radians

• Point B travels C units

• Radius of circle is r

• C= W r

– By definition of radians, where circumference = 2 p r

• B’s speed (magnitude of velocity vector)

– Differentiate C= W r w.r.t. time d (

W dt r )

 d

W dt r

 w r

More Details

• The direction of velocity is tangent to circle == perpendicular to radius

• Therefore, linear velocity is angular velocity multiplied by tangent vector

Chasles’ Theorem

• Any movement is decomposed into:

– Movement of a single point on body

– Rotation of body about that point

• Linear and Angular Components v

B  v

O  w r

OB

Angular Momentum

• The angular momentum of point B about point A (we always measure angular terms about some point)

• It’s a measure of how much of point B’s linear momentum is rotating around A

L

AB  r

AB  p

B

Angular Momentum

• Check: If linear momentum, p B , is perpendicular to r_perp, then dot product of two will cause angular momentum will be zero

Torque

• Derivative of Angular Momentum

– Remember force was derivative of linear momentum

  dL dt

AB

 d ( r

AB dt p

B )

 r

AB  ma

B  r

A B 

F

B

– This measures how much of a force applied at point B is used to rotate about point A, the torque

Total Angular Momentum

• Total angular momentum about point A is denoted L AT

L

AT   i r

Ai p i

  r

Ai m i v i i

• But computation can be expensive to sample all points

• Sampling of a surface would require surface integration

Moment of Inertia

• Remember v

B  w r

OB

L

AT 

 i

 i r

Ai p i r

Ai m i v i

– An alternate way of representing the velocity of a point in terms of angular velocity

• If A is like the origin i is like B, then substitute

L

AT 

 i w w r

 i

 i

Ai m i w r

 m i r

 m i

( r

Ai r

Ai

)

2

Ai

Ai

 w

I

A

Moment of Inertia, I

A

• The sum of squared distances from point A to each other point in the body, and each squared distance is scaled by the mass of each point

 i m i

( r

Ai

)

2 

I

A

• This term characterizes how hard it is to rotate something

– I pencil_center will be much less than I pencil_tip

Total Torque

• Differentiate total angular momentum to get total torque

AT 

 dL

AT

I dt

A w

 

 d ( I

A w

)

I A a

• This relates total torque and the body’s angular acceleration through the scalar moment of inertia

Planar Dynamics

• Calculate COM and MOI of rigid body

• Set initial position and linear/angular velocities

• Figure out all forces and their points of application

• Sum all forces and divide by mass to find COM’s linear acceleration

• For each force, compute perp-dot-product from COM to point of force application and add value into total torque of COM

• Divide total torque by the MOI at the COM to find angular acceleration

• Numerically integrate linear/angular accelerations to update the position/orientation and linear/angular velocities

• Draw body in new position and repeat

Upcoming Topics

• Collisions

• 3-dimensional rigid bodies (inertia tensors)

• Forces (centripetal, centrifugal, viscosity, friction, contact)

• Constrained dynamics (linked bodies)

Download