Читать книгу Robot Modeling and Control - Mark W. Spong - Страница 55
2.2.1 Rotation in the Plane
ОглавлениеFigure 2.2 shows two coordinate frames, with frame o1x1y1 obtained by rotating frame o0x0y0 by an angle θ. Perhaps the most obvious way to represent the relative orientation of these two frames is merely to specify the angle of rotation θ. There are two immediate disadvantages to such a representation. First, there is a discontinuity in the mapping from relative orientation to the value of θ in a neighborhood of θ = 0. In particular, for θ = 2π − ε, small changes in orientation can produce large changes in the value of θ, for example, a rotation by ε causes θ to “wrap around” to zero. Second, this choice of representation does not scale well to the three-dimensional case.
Figure 2.2 Coordinate frame o1x1y1 is oriented at an angle θ with respect to o0x0y0.
A slightly less obvious way to specify the orientation is to specify the coordinate vectors for the axes of frame o1x1y1 with respect to coordinate frame o0x0y0:
in which and are the coordinates in frame o0x0y0 of unit vectors x1 and y1, respectively.1 A matrix in this form is called a rotation matrix. Rotation matrices have a number of special properties that we will discuss below.
In the two-dimensional case, it is straightforward to compute the entries of this matrix. As illustrated in Figure 2.2,
which gives
(2.1)
Note that we have continued to use the notational convention of allowing the superscript to denote the reference frame. Thus, is a matrix whose column vectors are the coordinates of the unit vectors along the axes of frame o1x1y1 expressed relative to frame o0x0y0.
Although we have derived the entries for in terms of the angle θ, it is not necessary that we do so. An alternative approach, and one that scales nicely to the three-dimensional case, is to build the rotation matrix by projecting the axes of frame o1x1y1 onto the coordinate axes of frame o0x0y0. Recalling that the dot product of two unit vectors gives the projection of one onto the other, we obtain
which can be combined to obtain the rotation matrix
Thus, the columns of specify the direction cosines of the coordinate axes of o1x1y1 relative to the coordinate axes of o0x0y0. For example, the first column (x1 · x0, x1 · y0) of specifies the direction of x1 relative to the frame o0x0y0. Note that the right-hand sides of these equations are defined in terms of geometric entities, and not in terms of their coordinates. Examining Figure 2.2 it can be seen that this method of defining the rotation matrix by projection gives the same result as we obtained in Equation (2.1).
If we desired instead to describe the orientation of frame o0x0y0 with respect to the frame o1x1y1 (that is, if we desired to use the frame o1x1y1 as the reference frame), we would construct a rotation matrix of the form
Since the dot product is commutative, (that is, xi · yj = yj · xi), we see that
In a geometric sense, the orientation of o0x0y0 with respect to the frame o1x1y1 is the inverse of the orientation of o1x1y1 with respect to the frame o0x0y0. Algebraically, using the fact that coordinate axes are mutually orthogonal, it can readily be seen that
The above relationship implies that and it is easily shown that the column vectors of are of unit length and mutually orthogonal (Problem 2–4). Thus is an orthogonal matrix. It also follows from the above that (Problem 2–5) . If we restrict ourselves to right-handed coordinate frames, as defined in Appendix B, then (Problem 2–5).
More generally, these properties extend to higher dimensions, which can be formalized as the so-called special orthogonal group of order n.
Definition 2.1.
The special orthogonal group of order n, denoted SO(n), is the set of n × n real-valued matrices
(2.2)
Thus, for any the following properties hold
The columns (and therefore the rows) of are mutually orthogonal
Each column (and therefore each row) of is a unit vector
The special case, SO(2), respectively, SO(3), is called the rotation group of order 2, respectively 3.
To provide further geometric intuition for the notion of the inverse of a rotation matrix, note that in the two-dimensional case, the inverse of the rotation matrix corresponding to a rotation by angle θ can also be easily computed simply by constructing the rotation matrix for a rotation by the angle − θ: