Derivative of a rotation matrix


In this section we're going to look at computing the derivative of an orthogonal rotation matrix. One of the properties of an orthogonal matrix is that it's inverse is equal to its transpose so we can write this simple relationship R times it's transpose must be equal to the identity matrix.

First off I'm going to consider the simple case of a rotation by the angle theta about the X-axis. I can take the derivative with respect to theta and using the chain rule I can write this. Applying this identity I can rewrite it in this particular form and I can simplify it by introducing the symbol S to represent this expression here.

The matrix S has an interesting property. If I add it to its transpose the result will be equal to zero. And this kind of matrix is referred to as a skew-symmetric matrix. That property of the skew-symmetric matrix can also be written like this. So this kind of matrix is also sometimes referred to as an anti-symmetric matrix.

These matrices are always singular that is that it determines is always equal to zero. Any matrix can be written as the sum of a symmetric matrix and a skew symmetric matrix.

In three dimensions the skew-symmetric matrix has this form. It's got a very distinctive zero diagonal and there are only three unique elements in this matrix x, y, z and each of them appears with a positive sign and a negative sign. Now the interesting characteristic of the skew-symmetric matrix is it’s a way to write the vector cross product relationship as the product of a skew-symmetric matrix computed from the vector A multiplied by the vector B. So cross product can be turned into a matrix vector product.

Here's our earlier expression for S and I can write down an expression for a matrix which represents rotation about the X axis by the angle theta. If I substitute these values in, and simplify I end up with a very simple matrix containing a lot of zeroes one and a minus one. Recalling our earlier expression for a skew symmetric matrix this matrix that I've just written down I can write as a skew-symmetric matrix of the vector [1 0 0]. So the derivative of a rotation matrix with respect to theta is given by the product of a skew-symmetric matrix multiplied by the original rotation matrix.

I can perform the algebraic manipulation for a rotation around the Y axis and also for a rotation around the Z axis and I get these expressions here and you can clearly see some kind of pattern. Now let's consider the general case. A rotation about the vector L by an angle theta and it can be shown that this is equal to the product of a skew-symmetric matrix computed from the vector L multiplied by the original rotation matrix.

If I now multiply both sides of the expression by dee theta dee T, that's the rate of change of theta, I can write an expression like this. What this is, is a time derivative of a general rotation matrix.

A rotation of theta about the vector L is equal to a skew-symmetric matrix computed on the vector Omega multiplied by the original rotational matrix.

Omega in this case is the angular velocity vector. It is the rate of change of angle multiplied by the vector direction about which the rotation is occurring.


There is no code in this lesson.

We learn the mathematical relationship between angular velocity of a body and the time derivative of the rotation matrix describing the orientation of that body.

Professor Peter Corke

Professor of Robotic Vision at QUT and Director of the Australian Centre for Robotic Vision (ACRV). Peter is also a Fellow of the IEEE, a senior Fellow of the Higher Education Academy, and on the editorial board of several robotics research journals.

Skill level

This content assumes high school level mathematics and requires an understanding of undergraduate-level mathematics; for example, linear algebra - matrices, vectors, complex numbers, vector calculus and MATLAB programming.

More information...

Rate this lesson


Check your understanding

Leave a comment