Rigid Body Dynamics
Before jumping into ABD, let's review the traditional approach to simulate rigid body dynamics.
Let’s begin by reviewing Newtonian mechanics — specifically, Newton’s second law for a particle at position with mass :
Now, compute :
Here, is called the angular momentum, and is the torque.
For a rigid body , we can integrate over its volume:
where is the mass density of at position .
Now let denote the center of mass (COM) of . Then:
Combining both:
Since , we can further simplify:
where the right-hand side is the torque about the center of mass.
Denoting the right-hand side as the torque , compute the left-hand side:
Here, the inertia tensor is defined as:
Since depends on , so does . Letting be the rotation matrix (the rotation of from time to ). It's easy to verify that:
Differentiating yields:
Thus, the rigid body dynamics law becomes:
These equations resemble Newton's second law. The first describes how forces affect the linear momentum of the rigid body, while the second describes how torques influence its angular momentum.
With a simple explicit integrator, we can simulate rigid body motion via:
Here, is the unit quaternion representing the body’s rotation. Its update is based on a first-order approximation:
which leads to:
where ; is the composition of the rotation represented by the rotation vector and the rotation represented by .
Remark 25.1.1 (Rotation Vector to Quaternion). A rotation of angle around the axis defined by the unit vector can be represented by the quaternion