Time Derivative of Rotation Matrices: A Tutorial
Shiyu Zhao
Abstract— The time derivative of a rotation matrix equals the zA zB
product of a skew-symmetric matrix and the rotation matrix
itself. This article gives a brief tutorial on the well-known result.
wB
I. I NTRODUCTION yA
xB
arXiv:1609.06088v1 [cs.RO] 20 Sep 2016
The attitude of a ground or aerial robot is often represented xA yB
by a rotation matrix, whose time derivative is important Fig. 1: Frame A is fixed while frame B is rotating.
to characterize the rotational kinematics of the robot. It is
a well-known result that the time derivative of a rotation
matrix equals the product of a skew-symmetric matrix and II. T IME D ERIVATIVE OF ROTATION M ATRICES
the rotation matrix itself. One classic method to derive this
Consider two reference frames A and B in the three-
result is as follows [1, Sec 4.1], [2, Sec 2.3.1], and [3,
dimensional space (see Figure 1). Assume the origins of the
Sec 4.2.2] (see [4] for other methods). Let R(t) ∈ R3×3
two frames collocate with each other. Suppose frame A is
with t ≥ 0 be a rotation matrix satisfying R(t)RT (t) = I
fixed and frame B is rotating. In the area of robotics, frame A
for all t where I is the identity matrix. Taking time derivative
usually corresponds to the world frame fixed on the ground,
on both sides of R(t)RT (t) = I gives
and frame B usually corresponds to the body frame attached
to the body of a robot.
Ṙ(t)RT (t) + R(t)ṘT (t) = 0,
In the sequel, the time variables of all the matrices and
which indicates that S(t) , Ṙ(t)RT (t) is a skew-symmetric vectors are omitted for the sake of simplicity. Let the rotation
A A −1 A T
matrix satisfying S(t)+S T (t) = 0 for all t, and consequently matrix RB ∈ R3×3 , which satisfies (RB ) = (RB ) and
A
det(RB ) = 1, represent the rotational transformation from
Ṙ(t) = S(t)R(t). frame B to frame A. For any point in the space, suppose
PA ∈ R3 and PB ∈ R3 are its coordinates expressed in
The above derivation is simple, but it is not straightforward frames A and B, respectively, then
to see the precise physical meaning of S(t) (though S(t) A
PA = R B PB .
corresponds to an angular velocity vector, it is unclear
B A T
which reference frame this vector is expressed in). This Let RA = (RB ) be the rotation from frame A to frame B.
article gives another simple derivation, which is essentially Suppose wB ∈ R3 is the angular velocity of frame B
a reorganization of the derivation in [1]–[3], to clarify the (relative to frame A) expressed in frame B. The vector wB
precise physical meanings of the quantities in the expression quantifies the rotational movement of frame B: kwB k equals
of the time derivative of a rotation matrix. to the angular rate, which quantifies how fast frame B is
Notation: For any vector w = [w1 , w2 , w3 ]T ∈ R3 , define rotating, and wB /kwB k indicates the axis of the rotational
the skew-symmetric operator [·]× as movement. Since the angular velocity is a vector, it can also
be expressed in frame A as wA ∈ R3 , which satisfies
0 −w3 w2 A
wA = RB wB .
[w]× , w3 0 −w1 ∈ R3×3 . (1)
−w2 w1 0 The following is the main result on the relation between
rotational transformations and angular velocities.
The skew-symmetric operator is useful because it can convert
a cross product of two vectors into a matrix-vector product. Theorem 1 (Time Derivative of Rotation Matrices). The
A B
More specifically, for any w, x ∈ R3 , it can be easily verified time derivative of the rotational transformations RB and RA
that w × x = [w]× x. Another useful property is that for are expressed as
any w ∈ R3 and any rotation matrix R ∈ R3×3 satisfying A A
ṘB = [wA ]× RB (2)
RRT = I and det(R) = 1 it holds that [Rw]× = R [w]× RT
A A
[3, Section 4.2.1]. ṘB = RB [wB ]× (3)
B B
ṘA = −RA [wA ]× (4)
Shiyu Zhao is with the Department of Automatic Control and Systems En- B B
gineering, University of Sheffield, UK.
[email protected] ṘA = −[wB ]× RA (5)
Proof. We first prove (2). Consider an arbitrary point fixed B
in frame B. If PA and PB are the coordinates of this point y wB
in frames A and B, respectively, then PB is constant since x
the point is fixed in frame B, and PA is time-varying since x z
frame B is rotating. As a result, we have ṖB = 0. Taking
time derivative on both sides of PA = RBA
PB yields A y A
RB
A
ṖA = ṘB PB . (6)
z
On the other hand, by the relation between linear and angular Fig. 2: The world frame A and body frame B for a robot moving in the
velocities, we have three-dimensional space.
ṖA = wA × PA = [wA ]× PA . (7) yB xB
Substituting (7) into (6) gives α
yA
A
ṘB PB = [wA ]× PA = A
[wA ]× RB PB . (8) B
Since PB may be arbitrarily chosen, equation (8) holds for xA
A
arbitrary PB ∈ R3 and hence implies (2).
Equations (3)–(5) can be derived from (2). In particular, Fig. 3: The world frame A and body frame B for a robot moving in the
plane.
by the property of the skew-symmetric operator, we have
A A A T
[wA ]× = RB wB × = RB [wB ]× (RB ) . (9)
know equations (3) and (5) are more useful than equations
A A
Substituting (9) into (2) yields ṘB = [wA ]× RB = (2) and (4) in practice.
A A T A A
RB [wB ]× (RB ) RB = RB [wB ]× , which is (3). Taking If a robot is moving in the plane, the rotation (or orien-
B B
transpose on both sides of (2) gives ṘA = −RA [wA ]× , tation) of the robot can be represented by a single angle α
which is (4). By substituting (9) into (4) leads to (5). (see Figure 3). Then, the rotation transformation from frame
B to frame A is
As indicated by Theorem 1, the expression of the time
derivative depends on the definitions of the rotation transfor- cos α − sin α
Rα = .
mation and angular velocity. One should be clear about their sin α cos α
physical meanings before applying (2)–(5). In order to verify Rα , one may examine some specific points
III. P RACTICAL C ONSIDERATION IN ROBOTIC M OTION in frame B such as e1 = [1, 0]T and e2 = [0, 1]T . Taking
time derivative on both sides of Rα gives
For a robot equipped with an inertial measurement unit
(IMU), the value of wB , which is the angular velocity of − sin α − cos α
Ṙα = α̇. (10)
the robot relative to the world frame expressed in its body cos α − sin α
frame, can be directly measured. As a result, equations (3) Expression (10) may also be obtained as a special case of (3).
and (5), i.e., In particular, we can consider the three-dimensional frame
A
ṘB A
= RB [wB ]× with the z-axes pointing out of the paper in Figure 3. Then,
B B cos α − sin α 0
ṘA = −[wB ]× RA
A
RB = sin α cos α 0 .
are particularly useful in practice. 0 0 1
It must be noted that the origins of frames A and B are
assumed to collocate with each other in Theorem 1. This The angular velocity of the robot can be expressed as wA =
assumption is, however, usually not satisfied for moving wB = α̇e3 where e3 = [0, 0, 1]T . By applying (2) or (3), it
robots because the body frame may translate in the space is straightforward to obtain (10).
(see Figure 2). Nevertheless, (3) and (5) still holds in this R EFERENCES
case. To prove that, we may introduce an intermediate
[1] R. M. Murray, Z. Li, and S. S. Sastry, A Mathematical Introduction to
frame A0 whose axes are parallel to those of frame A and Robotic Manipulation. CRC Press, 1994.
origin collocates with the origin of frame B. By considering [2] Y. Ma, S. Soatto, J. Kosecka, and S. Sastry, An Invitation to 3D Vision.
A0 A0
frames A0 and B, we have ṘB = RB B
[wB ]× and ṘA 0 =
New York: Springer, 2004.
B 0 [3] M. W. Spong, S. Hutchinson, and M. Vidyasagar, Robot Modeling and
−[wB ]× RA0 . Since the axes of frame A are parallel to those Control. John Wiley & Sons, Inc., 2006.
A0 A B B
of frame A, we always have RB = RB and RA 0 = RA [4] F. Hamano, “Derivative of rotation matrix - direct matrix derivation
and consequently (3) and (5) still holds (note wB remain of well-known formula,” in Proceedings of Green Energy and Systems
Conference, (Long Beach, CA), 2013.
the same). On the other hand, if the origins of frames A
and B do not collocate, equations (2) and (4) do not hold
0
any more because wA 6= wA due to the nonzero translation
0
between frames A and A. With the above discussion, we