A 3D body can be rotated about three orthogonal axes, as shown in Figure 3.8. Borrowing aviation terminology, these rotations will be referred to as yaw, pitch, and roll:

- A
*yaw*is a counterclockwise rotation of about the -axis. The rotation matrix is given by

Note that the upper left entries of form a 2D rotation applied to the and coordinates, whereas the coordinate remains constant. - A
*pitch*is a counterclockwise rotation of about the -axis. The rotation matrix is given by

- A
*roll*is a counterclockwise rotation of about the -axis. The rotation matrix is given by

The yaw, pitch, and roll rotations can be used to place a 3D body in any orientation. A single rotation matrix can be formed by multiplying the yaw, pitch, and roll rotation matrices to obtain

It is important to note that performs the roll first, then the pitch, and finally the yaw. If the order of these operations is changed, a different rotation matrix would result. Be careful when interpreting the rotations. Consider the final rotation, a yaw by . Imagine sitting inside of a robot that looks like an aircraft. If , then the yaw turns the plane in a way that feels like turning a car to the left. However, for arbitrary values of and , the final rotation axis will not be vertically aligned with the aircraft because the aircraft is left in an unusual orientation before is applied. The yaw rotation occurs about the -axis of the world frame, not the body frame of . Each time a new rotation matrix is introduced from the left, it has no concern for original body frame of . It simply rotates every point in in terms of the world frame. Note that 3D rotations depend on three parameters, , , and , whereas 2D rotations depend only on a single parameter, . The primitives of the model can be transformed using , resulting in .

Steven M LaValle 2012-04-20