MIT 6.4210 — Lecture 3
Frames, Monogram Notation, and Rotations
§ Frames
Note that denotes an affine space. Informally, it's without an origin—so it has subtraction and distances, but no addition. In robotics, we work in instead of because we oftentimes can't pick a single universally-meaningful origin.
Definition. In robotics, a frame (similar to a basis in linear algebra) describes a frame of reference using the following data.
Note that every body has a frame associated with it. (Imagine an airplane, for example.)
Definition. Drake has a built-in world frame denoted .
Definition. Any frame is defined by its position and its orientation . This data is collectively called spatial pose.
When we refer to “the pose of an object ”, we really mean “the pose of the body frame of in the world frame ”.
§ Monogram Notation
Definition. We write to denote the vector expressed in frame . (So is a tuple of real numbers.) Furthermore,
Since all frames have a position, it is valid to write something like .
For any frame , the notation is shorthand for .
For a point that isn't a frame, is shorthand for .
Definition. For any two frames and , we say:
The notation denotes the rotation that sends the orientation of to the orientation of .
The notation denotes the spatial transform that sends the spatial pose of to the spatial pose of .
Definition. The Drake documentation suggests the following variable names:
Theorem. (Monogram Algebra) The following identities are all true.
Proof: The first, second, and fourth of these are obvious. The third is surprisingly unintuitive—think through it carefully.
Remark. There are two ways to think about the rotation .
It is a map from the orientation of to the orientation of .
It is a map that, for any point , sends the coordinates of in the frame of to the coordinates of in the frame of .
We now dedicate the rest of this lecture to giving examples of how we actually describe rotations numerically.
§ Rotation Matrices
Just a matrix . The main nontrivial point to be aware of is that is very easy to compute—it's just .
Note, also, that using numbers for a data structure that describes rotation in is, in some sense, wasteful. There are ways to describe rotations using fewer than numbers, such as…
§ Roll, Pitch, Yaw (Euler Angles)
Definition. Let denote the rotation about the world's -axis by . Define and similarly.
Remark. Use the right-hand rule. If you point your thumb in the direction of the positive -axis, then your fingers curl in the direction of positive rotations .
Definition. Let in roll-pitch-yaw denote the rotation (read from right-to-left, as with matrix multiplication). These are also called Euler angles.

Example. The rotation with roll , pitch , and yaw has the effect of permuting the axes .
Theorem. (Extrinsic vs. Intrinsic) Given rotation angles and an object , consider the following rotations on , where the extrinsic axes are the world's axes, whereas the intrinsic axes are the basis of the frame of .
Rotate by about the extrinsic -axis, then rotate by about the extrinsic -axis, then rotate by about the extrinsic -axis.
Rotate by about the intrinsic -axis, then rotate by about the intrinsic -axis, then rotate by about the intrinsic -axis.
Then these two rotations are the same.
Proof: Say the rotations about the extrinsic axes have rotation matrices , , and . Then the intrinsic rotations are…
“rotate by about the intrinsic -axis” this is equivalent to .
“then rotate by about the intrinsic -axis” this is equivalent to …
… because it's equivalent to “undo the previous rotation, then apply , then redo the previous rotation”.
“then rotate by about the intrinsic -axis” this is equivalent to …
… for the same reason as the previous bullet.
And composing all three gives , as desired.
The problem with using Euler angles to parametrize the space of rotations is that this parametrization produces gimbal lock.
Example. Consider the subspace of roll-pitch-yaw rotations . This happens to be a one-dimensional subspace, despite there being free parameters .
The following (warning: AI-generated) widget gives a visual demonstration of gimbal lock when .
Remark. The “only” times when gimbal lock occurs are when —you should intuitively be able to see why using the widget above. (What is the only way that two axes can overlap with each other?)
In fact, it has been proven (Stuelpnagel, 1964) that no parametrization of with three variables can avoid gimbal lock.
§ Axis-Angle
Recall from 18.701 that every rotation in looks like a rotation about some axis through the origin by some angle . So one natural way to encode a rotation is through the three-variable vector .
Of course, this parametrization also produces gimbal lock, because it has exactly three variables.
§ Quaternions
See 18.701 for a more rigorous discussion of the quaternions (along with the group of unit quaternions ). Here's the main point we need to know.
Theorem. (Unit Quaternions as Rotations) The unit quaternion represents a rotation about axis by angle (with ) if we have and .
Example. A rotation by about the axis can be expressed by the quaternion .