A rotation matrix describes the orientation of one coordinate frame relative to another, and it also acts as an operator that rotates a vector or a frame. This note covers how orientations are represented, how reference frames are changed, and the premultiply versus postmultiply rule.
Representing an Orientation
is the representation of the orientation of frame with respect to a fixed frame . When the reference frame is understood, it is also written .
Changing Reference Frame
Rotations chain through a shared frame:
- the inner subscripts match on the shared middle frame
- this lets you re-express an orientation in a different reference frame
Rotation About Coordinate Frame Axes
The basic rotations about each axis:
General Axis-Angle Rotation
For a general unit axis , the rotation by angle is:
where and , with the symmetry . This is the matrix form of the axis-angle rotation described in SO(3).
Rotation as an Operator
A rotation matrix can be read two ways:
- as a description, is the orientation of body frame in space frame
- as an operator, actively rotates a vector or a frame
Premultiply vs Postmultiply
The single rule: an operator's axis is interpreted in the frame adjacent to it on the left, and if nothing is on the left it is interpreted in the space frame. Always read a product right to left.
Premultiply, :
- has nothing on its left, so its axis is the space frame's axis
- read it as rotating the body about the base (space) axis
- it takes the current description of , applies , and gives the new description
Postmultiply, :
- has on its left, so its axis is the body frame's axis
- read it as rotating the body about its own axis
- it starts with and applies , but interprets the axis in the body frame rather than the space frame
Worked Cases
Reading longer products right to left, the operator nearest to acts first:
- applies then about the body's own axes
- rotates about the world axes, since has nothing on its left
- mixes the two, where acts in the body frame and acts in the world frame (right to left)