In order to find an instantaneous velocity for a given translation represented by a 3 by 1 position vector p∈R3, or commonly called a linear velocity v in rigid motion, we can simply take time-derivative on the position vectorp, i.e.,v= ˙p. However, it should be done with the precaution that before taking the time-derivative, the position vectorpmust be projected on a fixed base, instead of any moving frame. Namely, ifpi is currently projected on framei, which is not a fixed frame, one has to findRib, the orientation of frameiwith respect to the fixed base and then to determinepb=Ribpi before calculating its linear velocity vb = ˙pb. The reason is obvious,vb = ˙pb = ˙Ribpi+Ribp˙i = Rbip˙i, unlessRibis a constant matrix, which, however, is trivial and just means that frameiis motionless.
In contrast, finding an angular velocityω for framei with respect to the base is far more complicated than that for a linear velocity, because there is no 3 by 1 vector available to uniquely represent a frame rotation. The only unique and secure representation for both orientation and rotation is recognized to be theSO(3) group in mathematics. In general, a 3 by 1 angular velocityω is not an exact time-derivative of some 3 by 1 vector. In other words, there is no angular position vector ρ∈R3 such thatω = ˙ρ in general, unless the rotation is about a permanently fixed axis, such as a 2D spin. Using the exterior calculus language, the differential 1-form σ=ωdtis not exact, nor is it closed in general.
In order to provide a better understanding and insight into the 3D rotation and orientation, let us start seeking a relationship between the conventionally defined angular velocityω and the time-derivative of a rotation matrixR∈ SO(3).
Based on the orthogonality of a rotation matrix R ∈ SO(3), we have RRT =I. Taking time-derivative on both sides yields
RR˙ T +RR˙T =O,
whereO is the 3 by 3 zero matrix. This result immediately tells us that ˙RRT is a skew-symmetric matrix. On the other hand, if we recall the notion of the k−φprocedure, as introduced and discussed in Chapter 2, the conventional definition for an angular velocity should be interpreted as
ω= ˙φk (3.8) for a fixed unity axisk, or its corresponding skew-symmetric matrix
S(ω) =ω×=Ω= ˙φK.
In other words, an angular velocity is conventionally defined as a rotation rate of a frame about some fixed axis that is projected on that frame.
Now, applying equation (2.8) and taking time-derivative on (2.8) under the fact thatKis fixed during a certain rotation period, we have
R˙ = cosφφK˙ + sinφφK˙ 2. (3.9) Post-multiplying ˙RbyRT that can be found in equation (2.10), and noticing all the special properties owned by the unity skew-symmetric matrix K in Chapter 2, we finally obtain
RR˙ T = (cosφφK˙ + sinφφK˙ 2)(I−sinφK+ (1−cosφ)K2) = ˙φK=S(ω) =Ω.
(3.10) This compact equation, Ω = ˙RRT, provides us with a direct relationship between a frame orientation change rate in terms of ˙Rand the conventional angular velocityω for the frame rotation.
To better understand the geometrical meaning of the equationΩ= ˙RRT derived in (3.10), let the orientation of a given frame #1 be represented by R01that is referred to the base frame #0. We wish to change its orientation to a new oneR20, as the orientation of frame #2 with respect to the base. Thus, the “difference” for the change between the two orientations isR21=R01R20= (R10)TR20. Applying equations (2.9) and (2.11) in thek−φprocedure onR21, we can find bothφandkto perform such an orientation change. Intuitively, this orientation change can be represented either in terms of the time-rate of R12, or by the conventional angular velocityω= ˙φk, as defined in (3.8).
Now, equation (3.10) offers a desired close relationship. Since the unit vec- torkis referred to frame #1, the resultingΩ=ω×should also be projected onto frame #1, instead of the base. Noticing that whenφ and k are deter- mined fromR21through thek−φprocedure, the unit vectorkis a fixed axis until the change R21 is completed. If one wants to make a new orientation change, sayR23from frame #2 towards frame #3, then a new pair ofφandk should be calculated again, and this newkmay not necessarily be the same as the first one in general. This means that the unit vectorkin the conventional angular velocity definition (3.8) is tentatively fixed, but not permanently.
As a simple example, consider a frame to be rotated about itsz-axis at a constant speedρradian/second. According to equation (2.2), the matrix to describe such a rotation can be written as
R=
⎛
⎝cosρt −sinρt 0 sinρt cosρt 0
0 0 1
⎞
⎠.
Its time-derivative becomes R˙ =
⎛
⎝−ρsinρt −ρcosρt 0 ρcosρt −ρsinρt 0
0 0 0
⎞
⎠.
Then, one can easily verify that the product RR˙ T =Ω=
⎛
⎝0 −ρ 0
ρ 0 0
0 0 0
⎞
⎠
is clearly a skew-symmetric matrix and its corresponding vector is just the 3-dimensional angular velocity ω = (0 0 ρ)T with the only nonzero z- component for this particular frame rotation about thez-axis.
Another example is to calculate time-derivatives for the Euler angles and to demonstrate how useful the compact equationΩ= ˙RRT from (3.10) will be. Let a rotation matrixR be formed by the Roll-Pitch-Yaw Euler angles.
Based on equation (3.7),
R=R(z, φ)R(y, θ)R(x, ψ).
Taking time-derivative yields
R˙ = ˙R(z, φ)R(y, θ)R(x, ψ) +R(z, φ) ˙R(y, θ)R(x, ψ) +R(z, φ)R(y, θ) ˙R(x, ψ).
Thus, the corresponding angular velocity in skew-symmetric matrix form becomes
Ω= ˙RRT = ˙R(z, φ)R(z, φ)T +R(z, φ) ˙R(y, θ)R(y, θ)TR(z, φ)T+ +R(z, φ)R(y, θ) ˙R(x, ψ)R(x, ψ)TR(y, θ)TR(z, φ)T. (3.11) Since each term on the right-hand side of the above equation (3.11) con- tains a ˙RRT factor underlined with the rotation about each individual axis in the middle of each term, let us simplify the equation by first noticing that
R(z, φ)R(z, φ)˙ T =
⎛
⎝0 −1 0
1 0 0
0 0 0
⎞
⎠φ,˙ R(y, θ)R(y, θ)˙ T =
⎛
⎝ 0 0 1
0 0 0
−1 0 0
⎞
⎠θ,˙
and
R(x, ψ)R(x, ψ)˙ T =
⎛
⎝0 0 0 0 0 −1
0 1 0
⎞
⎠ψ.˙
Then, substituting them into (3.11), with some multiplications, we reach that the first term is same as the above first equation for ˙φ, and the second term for ˙θbecomes
⎛
⎝cφ −sφ 0 sφ cφ 0
0 0 1
⎞
⎠
⎛
⎝ 0 0 1
0 0 0
−1 0 0
⎞
⎠
⎛
⎝ cφ sφ 0
−sφ cφ 0
0 0 1
⎞
⎠θ˙
=
⎛
⎝ 0 0 cφ
0 0 sφ
−cφ −sφ 0
⎞
⎠θ,˙
and the third term for ˙ψturns out to be
⎛
⎝cφcθ −sφ cφsθ sφcθ cφ sφsθ
−sθ 0 cθ
⎞
⎠
⎛
⎝0 0 0 0 0 −1
0 1 0
⎞
⎠
⎛
⎝cφcθ sφcθ −sθ
−sφ cφ 0 cφsθ sφsθ cθ
⎞
⎠ψ˙
=
⎛
⎝ 0 sθ sφcθ
−sθ 0 −cφcθ
−sφcθ cφcθ 0
⎞
⎠ψ.˙
Now, adding them together and converting the sum from the skew- symmetric matrix back to the vector form, we obtain
ω=
⎛
⎝−sφθ˙+cφcθψ˙ cφθ˙+sφcθψ˙
φ˙−sθψ˙
⎞
⎠=
⎛
⎝0 −sφ cφcθ
0 cφ sφcθ
1 0 −sθ
⎞
⎠
⎛
⎝ φ˙ θ˙ ψ˙
⎞
⎠. (3.12)
This result shows the relation between the time-derivatives of the Roll-Pitch- Yaw Euler angles and the angular velocity ω. Since the 3 by 3 coefficient matrix of the time-derivative column ( ˙φ θ˙ ψ)˙ T on the right-hand side of the above equation (3.12) will never be the identity or a constant matrix, the exactness of the differential 1-formσ=ωdtis almost hopeless. In other words, the angular velocity ω cannot be the time-derivatives of the three Roll-Pitch-Yaw Euler angles.
One can follow the same procedure to find the relation between the time- derivatives of the Z-Y-Z Euler angles and the angular velocityω, too. We will leave it as one of the exercise problems at the end of this chapter.
In the future computations, a frequently asked question is how will a skew-symmetric matrix S(a) = a×change if the corresponding vector a is re-projected onto a new frame? Similarly, in equation (3.10), how will the skew-symmetric matrix Ω1 of an angular velocity ω1 that is currently re- ferred to frame #1 be converted toΩ0 that is referred to the base? Suppose
that the re-projection is performed by a rotation matrix R. Then, we wish to know what S(Ra) will be? Actually, it can be proven just by using the expansion of element-by-element multiplications for bothS(Ra)RandRS(a) that
S(Ra) =RS(a)RT. (3.13)
This reveals a fact that after a vector is re-projected, its new skew- symmetric matrix will be related to the original one by an orthogonal trans- formation. Obviously, both sides of (3.13) are still skew-symmetric. Therefore, based on (3.13), sinceω0=R10ω1,
Ω0=S(ω0) =R10Ω1(R10)T =R01Ω1R01.
Clearly, sinceRa×Rb=S(Ra)Rb=RS(a)RTRb=RS(a)b, equation (3.13) can also imply that
R(a×b) =Ra×Rb, (3.14)
for any two vectorsa, b ∈ R3 to be re-projected by a rotation matrix R ∈ SO(3).
It is further observable that based on the definition in (3.8), an angular velocity ω can be an exact time-derivative of some vector ρ ∈ R3 if the rotation axis is fixed permanently. This is due to the fact that ifρ=φk, then
˙
ρ= ˙φk+φk˙ =ω+φk,˙
which implies thatω= ˙ρif ˙k= 0. However, in thek−φprocedure,kis only tentatively fixed for a certain rotation process given by a specified orientation changeR, but is not a permanently fixed axis in general. In fact, we will see in the next chapter that for an angular velocityω, even if it is projected onto a fixed base, the differential 1-form ωdt = σ is not closed, i.e., its 2-form dσ= 0 in many general real examples.
Moreover, if we turn to utilize the dual-number calculus that was intro- duced in Chapter 2, it will be more convenient to calculate ˙R required for finding an angular velocityωnumerically without going through any symbol- ical manipulation. Consider a symbolical rotation matrix that is a function of two joint anglesθ1 andθ2 for a robot and given by
R=
⎛
⎝c1c2 s1 c1s2 s1c2 −c1 s1s2
s2 0 −c2
⎞
⎠,
where, once again, si = sinθi and ci = cosθi for i= 1,2. Suppose that we specify at a time instant θ1 =π/6 andθ2 = π/3 in radians, and ˙θ1 = 0.4 and ˙θ2 = −0.6 in radians/second. Then, replacing each θi by θi +θ˙i in the given matrix R, and splitting the real part and dual part for the dual rotation matrix ˆR=R+R, we immediately obtain˙ Rand ˙Rnumerically in MATLABT M and further getΩ= ˙RRT:
>> R =
0.4330 0.5000 0.7500 0.2500 -0.8660 0.4330
0.8660 0 -0.5000
>> dot R =
0.3500 0.3464 -0.4330 0.4330 0.2000 0.1500
-0.3000 0 -0.5196
>> Omega = dot R * R’
-0.0000 -0.4000 0.5196
0.4000 0 0.3000
-0.5196 -0.3000 0
>>
Thus, the angular velocity is resolved asω= (−0.3000 0.5196 0.4000)T.