Читать книгу Robot Modeling and Control - Mark W. Spong - Страница 57
2.3 Rotational Transformations
ОглавлениеFigure 2.5 shows a rigid object S to which a coordinate frame o1x1y1z1 is attached. Given the coordinates of the point p (in other words, given the coordinates of p with respect to the frame o1x1y1z1), we wish to determine the coordinates of p relative to a fixed reference frame o0x0y0z0. The coordinates satisfy the equation
Figure 2.5 Coordinate frame attached to a rigid body.
In a similar way, we can obtain an expression for the coordinates by projecting the point p onto the coordinate axes of the frame o0x0y0z0, giving
Combining these two equations we obtain
But the matrix in this final equation is merely the rotation matrix , which leads to
(2.9)
Thus, the rotation matrix can be used not only to represent the orientation of coordinate frame o1x1y1z1 with respect to frame o0x0y0z0, but also to transform the coordinates of a point from one frame to another. If a given point is expressed relative to o1x1y1z1 by coordinates , then represents the same point expressed relative to the frame o0x0y0z0.
We can also use rotation matrices to represent rigid motions that correspond to pure rotation. For example, in Figure 2.6(a) one corner of the block is located at the point pa in space. Figure 2.6(b) shows the same block after it has been rotated about z0 by the angle π. The same corner of the block is now located at point pb in space. It is possible to derive the coordinates for pb given only the coordinates for pa and the rotation matrix that corresponds to the rotation about z0. To see how this can be accomplished, imagine that a coordinate frame is rigidly attached to the block in Figure 2.6(a), such that it is coincident with the frame o0x0y0z0. After the rotation by π, the block’s coordinate frame, which is rigidly attached to the block, is also rotated by π. If we denote this rotated frame by o1x1y1z1, we obtain
In the local coordinate frame o1x1y1z1, the point pb has the coordinate representation . To obtain its coordinates with respect to frame o0x0y0z0, we merely apply the coordinate transformation Equation (2.9), giving
It is important to notice that the local coordinates of the corner of the block do not change as the block rotates, since they are defined in terms of the block’s own coordinate frame. Therefore, when the block’s frame is aligned with the reference frame o0x0y0z0 (that is, before the rotation is performed), the coordinates equals , since before the rotation is performed, the point pa is coincident with the corner of the block. Therefore, we can substitute into the previous equation to obtain
This equation shows how to use a rotation matrix to represent a rotational motion. In particular, if the point pb is obtained by rotating the point pa as defined by the rotation matrix , then the coordinates of pb with respect to the reference frame are given by
This same approach can be used to rotate vectors with respect to a coordinate frame, as the following example illustrates.
Example 2.3.
The vector v with coordinates v0 = (0, 1, 1) is rotated about y0 by as shown in Figure 2.7. The resulting vector v1 is given by
(2.10)
(2.11)
Thus, a third interpretation of a rotation matrix is as an operator acting on vectors in a fixed frame. In other words, instead of relating the coordinates of a fixed vector with respect to two different coordinate frames, Equation (2.10) can represent the coordinates in o0x0y0z0 of a vector v1 that is obtained from a vector v by a given rotation.
Figure 2.6 The block in (b) is obtained by rotating the block in (a) by π about z0.
Figure 2.7 Rotating a vector about axis y0.
As we have seen, rotation matrices can serve several roles. A rotation matrix, either or , can be interpreted in three distinct ways:
1 It represents a coordinate transformation relating the coordinates of a point p in two different frames.
2 It gives the orientation of a transformed coordinate frame with respect to a fixed coordinate frame.
3 It is an operator taking a vector and rotating it to give a new vector in the same coordinate frame.
The particular interpretation of a given rotation matrix should be made clear by the context.