rigid body dynamics . power presentation

BoazMokaya1 21 views 38 slides Jun 24, 2024
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Rigid body


Slide Content

Rigid Body Motion

Game Physics
•“Linear physics”–physics of points
–particle systems, ballistic motion…
–key simplification: no orientation
•“Rotational physics”
–orientation can change

Rigid Bodies
No longer points: distribution of mass
instead.
Rigid bodies: distances between mass
elements never change.
Orientation of body can change over time.

Rigid Body Translation
•Can treat translational motion of rigid
bodies exactly the same as points
•Single position (position of center of mass)
•F=ma (external forces)
•v = ∫a dt
•x = ∫v dt
•momentum conservation

Rotation
•Rigid bodies also have orientation
•Treating rotation properly is complicated
•Rotation is not a vector (rotations do not
commute, i.e., order of rotations matters)
•No analog to x, v, a in rotations?

Angular velocity
•Infinitesimally small rotations do commute
•Suppose we have a rigid body rotating
about an axis
•Can use a notion of angular velocity:
•ω= dθ/dt

Angular velocity
•Connection between linear and angular
velocity
•Magnitudes: v = ωr
perp
•Want vector relation
•Nice to have angular velocity about axis of
rotation (so it doesn't have to change all
the time for an object spinning in place)
•Let v = ωx r

Angular velocity
•v = ωx r
•Or, ω= r x v / |r|
2
•Note: ω, r, v vectors
•Angular velocity defined this way so that
constant angular velocity behaves sensibly
–spinning top has constant ω

Applying force
•What happens when you push on a
spinning object? (exert force)
•F=ma, so we know the movement of the
centre of mass
•How does the force affect orientation?

Torque
•T = r x F
•r is vector from origin to location where
force applied
–for convenience, often take origin to be center
of mass of object
•F is force
•Magnitude proportional to force,
proportional to distance from origin

Intuition for Torque
•Larger the larger from the centre
•Lever action: small force yields equivalent
torque far from fulcrum

Direction of Torque
•T = r x F
•Perpendicular to both location and force
vectors
•Direction is along axis about which rotation
is induced
•Right hand rule: thumb along axis, fingers
curl in direction of rotation

single particle
•T = r F sinθ
•T = r F
t
•F
t= ma
t = mrα
•T = mr
2
α
•Let I = mr
2
•T = Iα

Many particles
•Real objects are (pretty much) continuous
•Game objects: distribution of point masses
–not always, but common
•Can get reasonable behaviour with (e.g.)
four point masses per rigid body
•Single orientation for body
•Single centre of mass (of course)

Changing Coordinate Systems
•We dealt with changing coordinate
systems all the time before
•Rigid bodies are much simpler if we treat
them in a natural coordinate system
–origin at the centre of mass of the body
–or, some other sensible origin: hinge of door
•Need to transform forces into body
coordinate system to calculate torque
•Transform motion back to world space

Angular momentum
•Define angular momentum similarly to
torque:
•L = r x p
•Note that with this definition, T = dL/dt, just
as F = dp/dt

Force and Torque
•Note: a force is a force anda torque
•Moves body linearly: F=ma, changes
linear momentum
•Rotates body: produces torque, changes
angular momentum

Linear vs. Angular
linear quantityangular quantity
velocity v angular velocity ω
acceleration aangular acc. α
mass m moment of inertia I
p = mv L = Iω
F = ma T = Iα

Conservation of Angular
Momentum
•Consequence of T = dL/dt:
–If net torque is zero, angular momentum is
unchanged
•Responsible for gyroscopes' unintuitive
behaviour
The gyroscope is tipped over
but it doesn’t fall

Moment of Inertia
•Said that moment of inertia of a point
particle is mr^2
•In the general case, I = ∫ ρr^2 dV where r
is the distance perpendicular to the axis of
rotation
•Don't know the axis of rotation beforehand

Moment of Inertia
•I = ∫ρ(x,y,z)
dxdydz
y^2 + z^2-xy -xz
-xy x^2 + z^2-yz
-xz -yz x^2+y^2

Diagonalized Moment of Inertia
•Luckily, we can choose axes (principal
axes of the body) so that the matrix
simplifies:
•I =
•where, e.g., Ixx = m(y*y + z*z)
•Off-diagonal entries called "products of
inertia"
Ixx00
0Iyy0
00Izz

Avoiding products of inertia
•Do calculations in inertial reference frame
whose axes line up with the principal axes
of your object
•Transform the results into worldspace
•Moment of inertia of a body fixed, so can
be precomputed and used at run-time

Moment of Inertia
•In general, the more compact a body is,
the smaller the moments of inertia, and the
faster it will spin (for the same torque)

Fake I
•Not doing engineering simulation
(prediction of how real objects will behave)
•Can invent I rather than integrating
•Large values: hard to rotate about this axis
•Avoid off-diagonal elements

Fake constants
•For that matter, can fake lots of stuff
•Different gravity for different objects
–e.g., slow bullets in FPS
–e.g., fast falling in platformer
•fake forces, approximate bounding
geometry

Case in 2D
•In 2D, the vectors T, ω, αbecome scalars
(their direction is known –only magnitude
is needed)
•Moment of inertia becomes a scalar too:
•I = ∫prdA

Single planar rigid body
•state contains x, y, θ, vx, vy, ω
•Have
–F = ma (2 equations)
–T = Iω
–x = ∫vx dt
–y = ∫vy dt
–θ= ∫ωdt
•Integrate to obtain new state, and proceed

Rigid body in 3D
•Need some way to represent general
orientation
•Need to be able to compose changes in
orientation efficiently

Quaternions
•Quaternion: structure for representing
rotation
–unit vector (axis of rotation)
–scalar (amount of rotation)
–recall, store (cos(θ/2), v sin(θ/2) )
•Can represent orientation as quaternion,
by interpreting as rotation from canonical
position

Quaternions
•Rotation of θabout axis v:
–q = (cos(θ/2), v sin(θ/2))
•"Unit quaternion": q.q = 1 (if v is a unit
vector)
•Maintain unit quaternion by normalizing v
•Arbitrary vector r can be written in
quaternion form as (0, r)

Quaternion Rotation
•To rotate a vector r by θabout axis v:
–take q = (cos(θ/2), v sin(θ/2)
–Let p = (0,r)
–obtain p' from the quaternion resulting from
qpq
-1
–p' = (0, r')
–r' is the rotated vector r

•Note:
–q(t) = (s(t), v(t))
–q(t) = [ cos(θ(t)/2), u sin(θ(t)/2) ]
–For a body rotating with constant angular
velocity ω, it can be shown
•q’(t) = [0, ½ ω] q(t)
•Summarize this ½ ωq(t)
Rotation Differentiation

Using quaternions gives
Rigid Body Equations of Motion
x(t)
q(t)
P(t)
L(t)
v(t)
½ ωq(t)
F(t)
T(t)
d/dt =

P and L
•Note that
–v = P/m (from P=mv)
–ω= I
-1
L (from L = Iω)
•Often useful to use momentum variables
as main variables, and only compute v and
ω(auxiliary variables) as needed for the
integration

Impulse
•Sudden change in momentum
–also, angular momentum (impulsive torque)
•Collision resolution using impulse
–new angular momentum according to
conditions of collision
–algorithmic means available for resolving
Tags