Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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