Contents · Physics Engines
Part 0 · Orientation
Part 1 · Mathematical Foundations
- Rotations: SO(3), Quaternions, and the Exponential Map
- Spatial Algebra: Twists, Wrenches, and se(3)
- Rigid-Body Dynamics: Inertia and the Mass Matrix
- Maximal vs Minimal Coordinates
Part 2 · Equations of Motion
Part 3 · Time Integration
Part 4 · Collision Detection
Part 5 · Contact & Constraints
Part 6 · Constraint Solvers
Part 7 · Position-Based Dynamics
Part 8 · GPU & Parallelism
Part 9 · Differentiable Simulation
Part 1 · Mathematical Foundations
Rigid-Body Dynamics: Inertia and the Mass Matrix
With the kinematics in place, we can ask what force does. For a single rigid body the answer is Newton for translation and Euler for rotation,
where is the inertia tensor, symmetric and positive definite, encoding how mass is spread out. The term is why a spun object with unequal axes tumbles: rotation couples into itself.
Kinetic energy and the mass matrix
The clean way to see where a whole mechanism's inertia lives is energy. Kinetic energy of one body is
For an articulated system in generalized coordinates , every body's velocity is a linear function of , so summing the energies gives a quadratic form,
That defines the mass matrix (joint-space inertia) : symmetric, positive definite, and, importantly, a function of configuration. It is not a constant the way a point mass is.
| 3.57 | 1.15 |
| 1.15 | 0.72 |
Move the elbow: every entry changes. Move the shoulder: nothing does. M depends on q₂, not q₁. The off-diagonal is joint coupling.
The equation everything else hangs on
Put the inertia (), the velocity-dependent terms that the coupling generalizes to (, the Coriolis and centrifugal forces), and gravity together, and you get the equation of motion for the whole mechanism,
Forward dynamics (given torques, find accelerations) means solving it for . The naive route is to build explicitly and invert it, which is where the Composite Rigid Body Algorithm and, more cleverly, Featherstone's Articulated-Body Algorithm come in. That is Part 2.