In A Mathematical Introduction to Robotic Manipulation, a 3D rotation is represented using an exponential map:
where
- is a unit vector representing the rotation axis;
- is the rotation angle, measured in radians;
- is the skew-symmetric matrix associated with ;
- is the special orthogonal group for all rotation matrices such that
Here’s the question: rotation itself is easy to understand, but why on earth would anyone use the exponential function to represent it??🫣
Where does this equation come from, and how do we know that it really produces a rotation matrix?
In this post, I will try to answer these questions step by step.
Euler’s Theorem
Let’s first take Euler’s rotation theorem as given:
Any orientation is equivalent to a rotation about a fixed axis through an angle .
We assume that is a unit vector:
Using this theorem, we can imagine the following rotation:
The is a position vector representing the position of a point attached to the rotating body. As the body rotates, the tip of moves in a circle around the axis .
RemarkFor now, we assume that the rotation axis passes through the coordinate origin.
The Velocity of a Rotating Point
From high-school physics or The Feynman Lectures on Physics , we know that the velocity of a point moving in a circle is tangent to the circle (circular motion).
Suppose the rotation angle is and the body rotates at a constant unit angular speed
The velocity of the point is the cross product of the angular velocity and its position. Since the angular speed is , this simplifies to:
where denotes cross product.
From a Cross Product to a Matrix
Instead of writing
we can represent the cross product using a skew-symmetric matrix:
ExampleThe is trivial once we see its components.
Suppose . Converting this to a skew-symmetric matrix gives
RemarkThe hat operation does not change the physical meaning of . It simply converts the operation “take a cross product with ” into matrix multiplication.
TipWhy is this conversion useful?
The idea is a shift in mindset. We move from vector-level cross product to matrix algebra. Suppose we need to calculate this:
and we can change it to
\begin{align}v &= \widehat{a} b + \widehat{c} b \\&= \big( \widehat{a} + \widehat{c} \big)b\end{align}
In the matrix world, we can leverage the computers to perform matrix calculation. ^248829
We now have What comes next?
RemarkHint: this is a linear differential equationof the form .
A Scalar Warm-Up
This is a good time to review the antiderivative.
The is actually no different from the scalar differential equation
where is a scalar. Assuming , we see that
where refers to constant of integration.
Now, take the exponential of both sides:
Since the exponential function is always positive, hence we can simplify as
The next steps is to determine the constant . A natural approach is to set , and we get
Therefore, for the , the solution is
TipThe exponential appears because it has a special property: differentiating it reproduces the same function multiplied by the constant : That is exactly the behavior required to solve .
From the Scalar Exponential to Rotation
Informally, we can apply the exact same logic from our scalar solution,
to our matrix equation:
Since is a constant matrix, the solution takes the same form
RemarkThis is an intuitive way of looking at it. For a more rigorous reasoning, we have to go through matrix exponential, which I have decided to skip in this post.
At a unit angular speed, rotating for seconds produces a rotation of radians. Therefore,
The matrix that maps the initial position to the rotated position is thus
The preceding equation is still quite abstract and not easy to compute. The final piece of the puzzle is using Rodrigues’ rotation formula to convert the exponential map into a rotation matrix:
The Complete Picture
We can now connect all the pieces👏:
- Euler’s rotation theorem tells us that every 3D orientation can be described by an axis and an angle .
- A point rotating about that axis satisfies a velocity equation involving the cross product.
- The cross product can be written as multiplication by the skew-symmetric matrix .
- This produces the linear differential equation
- The solution of that differential equation is
- Rotating through an angle therefore gives
- Because is skew-symmetric, the resulting matrix belongs to special orthogonal group .
Final remarks
- , where so(3) is the vector space of all real skew-symmetric matrices.
- is a finite rotation matrix.
- The vector contains the exponential coordinates of rotation.
- The direction of gives the rotation axis, while its magnitude gives the rotation angle.
- The exponential map connects an instantaneous rotational velocity in to a finite rotation in .
The main idea is therefore:
The matrix exponential is simply the mathematical operation that performs this integration.