There are three common uses of a rotation matrix: The first is to represent an orientation.
The second is to change the frame of reference of a vector or frame.
And the third is to rotate a vector or frame.
To demonstrate these, I will use these three coordinate frames, representing the same space
with different orientations.
To help you visualize these frames in 3 dimensions, I�ll use my handy tinkertoy frame.
This is the z-axis, this is the x-axis, and this is the y-axis.
So initially I�ll orient it aligned with the frame {s}.
And then I�ll rotate by 90 degrees about the z-axis, and then I get the frame {b},
and then if I rotate by -90 degrees about the y-axis, I get the frame {c}.
As we saw in a previous video, we can represent {c} relative to {s} by writing the coordinate
axes of {c} in {s} coordinates, yielding the rotation matrix R_sc.
If we write the coordinate axes of {s} in {c} coordinates, the resulting rotation matrix
R_cs is just the transpose, or inverse, of R_sc.
To demonstrate a change of reference frame, consider the rotation matrix R_bc, representing
the orientation of frame {c} in frame {b} coordinates.
If we want to express the {c} frame in {s} coordinates instead of {b} coordinates, we
can perform the matrix multiplication R_sc equals R_sb times R_bc.
By premultiplying R_bc by R_sb, we've changed the representation of the {c} frame from the
{b} frame to the {s} frame, as we can verify by inspecting the rotation matrices.
You can remember the change of reference frame operation by a subscript cancellation rule:
if the second subscript of the first matrix matches the first subscript of the second
matrix, they cancel each other, leaving the two remaining subscripts in the right order.
We can also change the frame of reference of a vector.
Let p_b be the position of point p when expressed in {b} frame coordinates.
To express p in {s} coordinates, we can premultiply p_b by R_sb to get p_s.
This operation again satisfies a subscript cancellation rule.
The final use of a rotation matrix is to rotate a vector or frame.
For example, it is apparent that the {b} frame is obtained from the {s} frame by rotating
the {s} frame about the z_s axis by 90 degrees.
Thus we could consider the matrix R_sb as an operation that rotates about the z-axis
by 90 degrees.
If we premultiply a vector pb by this rotation operator, we just get a change of reference
frame to {s} coordinates, as we saw before.
But if the vector is p_s in {s} coordinates, then there is no subscript cancellation, and
instead we get a new vector p-prime-s, obtained by rotating p_s by 90 degrees about the z_s
axis.
The vector has been rotated, but it is still represented in the original frame {s}.
We can also rotate the frame c by premultiplying or postmultiplying R_sc by the rotation operator
R. If you premultiply by R, the rotation axis is interpreted as the z-axis of the frame
of the first subscript, {s}.
You end up with a rotated frame {c-prime}, still expressed in {s}.
If you postmultiply by R, the rotation axis is interpreted as the z-axis of the frame
of the second subscript, {c}.
You end up with a different rotated frame {c-double-prime}, still expressed in {s}.
In summary, a rotation matrix has three uses: representing an orientation, changing the
frame of reference of a vector or a frame, and rotating a vector or a frame.
In the next video, we will learn how to represent the angular velocity of a frame.