I'm currently confused at the moment about the components order obtained from a well-known relationship between derivative of a rotation matrix and its angular velocity: $\dot{R} = R \hat{\Omega}$.

I constructed the rotation matrix $R$ from consecutive rotations around $Z,Y,X$ axis using the formulae given in https://en.wikipedia.org/wiki/Euler_angles. So is it true that the $\Omega$ vector (whose skew-symmetric form is $\hat{\Omega}$) will be $[\omega_z,\omega_y,\omega_x]^T$? Moreover, if $R$ is a rotation matrix from frame $B$ to frame $A$, is $\Omega$ angular rate written with respect to frame $B$?

I'd very grateful to hear from you. Thanks in advance.


1 Answer 1


First of I will denote a rotation matrix from frame $B$ to frame $A$ as $R^{AB}$ and the angular velocity of frame $B$ with respect to frame $A$ expressed in frame $B$ as $^{BA}\vec{\omega}^B = \begin{bmatrix}^{BA}\omega^B_x & ^{BA}\omega^B_y & ^{BA}\omega^B_z\end{bmatrix}^\top$.

The way how I remember how to derive the time derivative of a rotation matrix is by considering the rotation that occurs of frame $B$ relative to frame $A$ in a really small time step. Namely this rotation can be found by assuming $^{BA}\vec{\omega}^B$ to be constant during that time step and to use an axis angle representation of that rotation from the current frame $B$ (relative to $A$) to frame $B$ (relative to $A$) a small time step into the future, denoted by $B^*$. Here the axis, $\begin{bmatrix}u_x & u_y & u_z\end{bmatrix}^\top$, is the normalized angular velocity vector and the angle, $\theta$, is its magnitude times the time step. In the limit of the time step to zero we can use that $\cos\theta = 1$ and $\sin\theta = \theta$, therefore

$$ R^{BB^*} = \begin{bmatrix} \cos\theta + u_x^2(1-\cos\theta) & u_xu_y(1-\cos\theta)-u_z\sin\theta & u_xu_z(1-\cos\theta)+u_y\sin\theta \\ u_xu_y(1-\cos\theta)+u_z\sin\theta & \cos\theta + u_y^2(1-\cos\theta) & u_yu_z(1-\cos\theta)-u_x\sin\theta \\ u_xu_z(1-\cos\theta)-u_y\sin\theta & u_yu_z(1-\cos\theta)+u_x\sin\theta & \cos\theta + u_z^2(1-\cos\theta) \end{bmatrix} = \begin{bmatrix} 1 & -u_z\,\theta & u_y\,\theta \\ u_z\,\theta & 1 & -u_x\,\theta \\ -u_y\,\theta & u_x\,\theta & 1 \end{bmatrix} = \begin{bmatrix} 1 & -^{BA}\omega^B_z\,dt & ^{BA}\omega^B_y\,dt \\ ^{BA}\omega^B_z\,dt & 1 & -^{BA}\omega^B_x\,dt \\ -^{BA}\omega^B_y\,dt & ^{BA}\omega^B_x\,dt & 1 \end{bmatrix} $$

which can also be written as

$$ R^{BB^*} = I + \begin{bmatrix} 0 & -^{BA}\omega^B_z & ^{BA}\omega^B_y \\ ^{BA}\omega^B_z & 0 & -^{BA}\omega^B_x \\ -^{BA}\omega^B_y & ^{BA}\omega^B_x & 0 \end{bmatrix} dt = I + ^{BA}\vec{\omega}^B_\times\,dt $$

where $^{BA}\vec{\omega}^B_\times$ refers to what you called the skew-symmetric form $\hat{\Omega}$, however I prefer this notation since it better illustrates its connection to the cross product. So the combined rotation can then be written as

$$ R^{AB}(t+dt) = R^{AB^*}(t) = R^{AB}(t)\,R^{BB^*}(t) = R^{AB}(t)\,\left(I + ^{BA}\vec{\omega}^B_\times(t)\,dt\right) $$

which can be substituted into the definition of the time derivative of $R^{AB}$

$$ \begin{align} \dot{R}^{AB}(t) &= \lim_{dt \to 0} \frac{R^{AB}(t+dt) - R^{AB}(t)}{dt} \\ &= \lim_{dt \to 0} \frac{R^{AB}(t)\,\left(I + ^{BA}\vec{\omega}^B_\times(t)\,dt\right) - R^{AB}(t)}{dt} \\ &= R^{AB}(t)\,^{BA}\vec{\omega}^B_\times(t). \end{align} $$

If $^{BA}\vec{\omega}^A$, the angular velocity expressed in frame $A$, is given instead you would get

$$ R^{AA^*} = I - ^{BA}\vec{\omega}^A_\times\,dt $$

where the minus sign comes from the fact that $^{AB}\vec{\omega}^A = -^{BA}\vec{\omega}^A$. So the combined rotation can be written as

$$ R^{AB}(t+dt) = R^{A^*B}(t) = R^{A^*A}(t)\,R^{AB}(t) $$

where $R^{A^*A} = {R^{AA^*}}^\top$. By combining this with $\vec{v}_\times^\top = -\vec{v}_\times$ then it can be shown that

$$ \dot{R}^{AB} = ^{BA}\vec{\omega}^A_\times\,R^{AB}. $$

And if you have found $\dot{R}^{AB}$ but actually need $\dot{R}^{BA}$, then you can use that a rotation matrix multiplied by its transpose (${R^{AB}}^\top = R^{BA}$) is equal to the identity matrix. So taking the time derivative of that and applying the chain rule gives

$$ \frac{d}{dt}\left(R^{BA}\,R^{AB}\right) = \dot{R}^{BA}\,R^{AB} + R^{BA}\,\dot{R}^{AB} = 0 $$

Solving for $\dot{R}^{BA}$ gives

$$ \dot{R}^{BA} = -R^{BA}\,\dot{R}^{AB}\,R^{BA}. $$

Substituting in the two previously derived expressions for $\dot{R}^{AB}$ gives

$$ \begin{align} \dot{R}^{BA} &= -R^{BA}\,R^{AB}\,^{BA}\vec{\omega}^B_\times\,R^{BA} = -^{BA}\vec{\omega}^B_\times\,R^{BA} = ^{AB}\vec{\omega}^B_\times\,R^{BA} \\ &= -R^{BA}\,^{BA}\vec{\omega}^A_\times\,R^{AB}\,R^{BA} = -R^{BA}\,^{BA}\vec{\omega}^A_\times = R^{BA}\,^{AB}\vec{\omega}^A_\times. \end{align} $$

It can also be noted that if you have the rotation matrix $R^{AB}$ then it is only meaningful to pre-multiply it with things which are expressed in frame $A$ and post-multiply it with things which are expressed in frame $B$ (so basically the closest letter in the subscript of the rotation matrix). That is also why I used the notation of the rotation matrix with letters of the reference frames in its subscript, because it makes it easier to keep track of this.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .