Skip to main content
A wheel spins on its axle at a steady 2 rad/s. Three seconds later it has turned 6 rad. Which rotation matrix describes where it ended up? Angular velocity gave only the rule for one instant, R˙=[ωs]R\dot R = [\omega_s] R: how fast the orientation changes right now. To get the orientation after some time, you solve that equation. When the axis stays fixed, the solution is a matrix exponential, R(t)=e[ωs]tR(0)R(t) = e^{[\omega_s] t} R(0). The answer also gives a compact way to write down any rotation. Take a vector that points along the rotation axis, and make its length the rotation angle. Those three numbers are the exponential coordinates of the rotation, and the exponential turns them back into the rotation matrix. This section computes that exponential in the plane and in space, then inverts it with the matrix logarithm to recover the axis and angle from a rotation matrix. It follows section 3.2.3 of Lynch and Park (Kevin M. Lynch, 2017).

Coordinates in the Lie algebra

A rotation matrix has nine entries but only three degrees of freedom. Its entries must satisfy RTR=IR^T R = I and det⁡R=1\det R = 1, so you cannot change them independently. The sum of two rotation matrices is not a rotation matrix. Neither is the midpoint 12(R1+R2)\tfrac{1}{2}(R_1 + R_2). A gradient step on the nine entries also leaves SO(3), which requires a projection back onto the group. Exponential coordinates represent a rotation by a vector ω^θ∈R3\hat\omega\theta \in \mathbb{R}^3. Its direction is the rotation axis. Its length is the rotation angle. Any vector in R3\mathbb{R}^3 is allowed, so you can add, scale, and differentiate these coordinates as ordinary vectors. The exponential maps the result to a valid rotation matrix. Adding the coordinates of two rotations does not compose them, though, because rotations in space do not commute. Lie II shows an example and the correction term. In the language of Lie I, SO(3) is the Lie group. It is a curved space whose points are rotation matrices. Its Lie algebra so(3)\mathfrak{so}(3) is the flat tangent space at the identity. Its elements are the skew-symmetric matrices [ω][\omega] that you met as angular velocities. The exponential and logarithm connect the two spaces: exp⁡:so(3)→SO(3),log⁡:SO(3)→so(3).\exp : \mathfrak{so}(3) \to SO(3), \qquad \log : SO(3) \to \mathfrak{so}(3) . The matrix [ω^]θ[\hat\omega]\theta in the algebra is built from the three exponential coordinates ω^θ\hat\omega\theta. Physically, e[ω^]θe^{[\hat\omega]\theta} is the rotation reached by turning at the constant angular velocity ω^θ\hat\omega\theta for one second. You can carry out calculations in the flat algebra and map the result to the curved group. For interpolation from R0R_0 to R1R_1, take log⁡(R0TR1)\log(R_0^T R_1), scale it by t∈[0,1]t \in [0, 1], and map it back: R(t)=R0 etlog⁡(R0TR1)R(t) = R_0\, e^{t \log(R_0^T R_1)}. In estimation and optimization, a filter or solver can correct a rotation with a small vector δ∈R3\delta \in \mathbb{R}^3: R←R e[δ]R \leftarrow R\, e^{[\delta]}. The result is always a rotation. Lie II develops the calculus for these operations. Each revolute joint in a robot arm rotates about its axis, so its motion is an exponential. The arm’s forward kinematics is a product of these exponentials. Motion representations extends the same idea from rotations to full rigid motions.

In the plane

In the plane, angular velocity showed that a body turning at the rate ω\omega obeys R˙=ωGR\dot R = \omega G R, where GG is the quarter-turn matrix. Take ω\omega constant, like the wheel above. The task is to find R(t)R(t). For a number aa, the equation x˙=ax\dot x = a x has the solution x(t)=eatx(0)x(t) = e^{at} x(0). The same works for a square matrix AA once you define its exponential by the same series as for numbers: eA=I+A+A22!+A33!+⋯ .e^{A} = I + A + \frac{A^2}{2!} + \frac{A^3}{3!} + \cdots . Differentiate eAte^{At} term by term. Each term Aktkk!\frac{A^k t^k}{k!} gives AAk−1tk−1(k−1)!A \frac{A^{k-1} t^{k-1}}{(k-1)!}, so the derivative is A eAtA\, e^{At}. Therefore R(t)=eAtR(0)R(t) = e^{At} R(0) satisfies R˙=AR\dot R = A R, and at t=0t = 0 it equals R(0)R(0). With A=ωGA = \omega G, the orientation after a time tt is R(t)=eωt GR(0).R(t) = e^{\omega t\, G} R(0) . The series is easy to sum here, because the powers of GG repeat. Turning twice by a quarter turn is a half turn, so G2=−IG^2 = -I, then G3=−GG^3 = -G and G4=IG^4 = I. Write θ=ωt\theta = \omega t for the angle turned, and sort the terms of eθGe^{\theta G} into those with II and those with GG: eθG=I(1−θ22!+θ44!−⋯)+G(θ−θ33!+θ55!−⋯)=Icos⁡θ+Gsin⁡θ=R(θ).e^{\theta G} = I \Big(1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \cdots\Big) + G \Big(\theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots\Big) = I \cos\theta + G \sin\theta = R(\theta) . The two brackets are the series of cos⁡θ\cos\theta and sin⁡θ\sin\theta. The exponential therefore gives exactly the rotation matrix by the angle θ\theta. For the wheel, θ=2×3=6\theta = 2 \times 3 = 6 rad. So in the plane the exponential coordinate of a rotation is just its angle θ\theta, and GG is the quarter-turn generator of Lie I.

In space

In space the same argument works, but only for a fixed axis. It needs R˙=[ω]R\dot R = [\omega] R with a constant matrix [ω][\omega] (Lynch and Park Proposition 3.10, page 82). This is why Lynch and Park return to a fixed axis to build exponential coordinates. When the axis changes with time, as in the examples of a moving axis, you have to build R(t)R(t) up step by step instead. Suppose a body rotates with constant unit angular velocity ω^\hat\omega for a time θ\theta. Its orientation obeys R˙=[ω^]R\dot R = [\hat\omega] R, and the series argument from the plane, with A=[ω^]A = [\hat\omega], gives R(θ)=e[ω^]θR(0)R(\theta) = e^{[\hat\omega]\theta} R(0). The matrix exponentials used by Lynch and Park, e[ω^]θe^{[\hat\omega]\theta} for rotations and e[S]θe^{[\mathcal{S}]\theta} for rigid motions, are instances of the Lie exponential from Lie I. The product of exponentials formula for robot arms is named for its product of Lie-group exponentials. A rotation by an angle θ\theta about a unit axis ω^\hat\omega is described by the three numbers ω^θ∈R3\hat\omega\theta \in \mathbb{R}^3, called its exponential coordinates. Let [ω^][\hat\omega] be the skew-symmetric matrix of ω^\hat\omega from angular velocity. Rodrigues’ formula computes the rotation matrix. This formula is the exponential map Exp of SO(3): R=e[ω^]θ=I+sin⁡θ [ω^]+(1−cos⁡θ)[ω^]2.R = e^{[\hat\omega]\theta} = I + \sin\theta\, [\hat\omega] + (1 - \cos\theta)[\hat\omega]^2 . Example 3.12 of Lynch and Park (page 84) works through one case. A frame {b}\{b\} starts aligned with the fixed frame {s}\{s\}. It turns by θ1=30∘=0.524\theta_1 = 30^\circ = 0.524 rad about the unit axis ω^1=(0,0.866,0.5)\hat\omega_1 = (0, 0.866, 0.5). Rodrigues’ formula gives its orientation: R=e[ω^1]θ1=I+sin⁡θ1 [ω^1]+(1−cos⁡θ1)[ω^1]2=[0.866−0.2500.4330.2500.9670.058−0.4330.0580.899].R = e^{[\hat\omega_1]\theta_1} = I + \sin\theta_1\, [\hat\omega_1] + (1 - \cos\theta_1)[\hat\omega_1]^2 = \begin{bmatrix} 0.866 & -0.250 & 0.433 \\ 0.250 & 0.967 & 0.058 \\ -0.433 & 0.058 & 0.899 \end{bmatrix} . You can describe the same orientation with the axis and the angle alone. Its exponential coordinates are ω^1θ1=(0,0.453,0.262)\hat\omega_1\theta_1 = (0, 0.453, 0.262). Example 3.12. The frame {b}\{b\} starts on top of {s}\{s\} (gray) and turns by 30∘30^\circ about ω^1\hat\omega_1 (yellow). Each axis tip moves along a circle about ω^1\hat\omega_1. The columns of RR are the axes of {b}\{b\} written in {s}\{s\}. The orange arrow is ω^1θ1\hat\omega_1\theta_1. It points along the axis, and its length is the angle in radians.

The matrix logarithm

The logarithm of a rotation inverts the matrix exponential for rotation angles 0≤θ<π0 \le \theta < \pi. Rotations by θ\theta and θ+2π\theta + 2\pi produce the same matrix, so a single inverse cannot cover every angle. A rotation by exactly π\pi requires separate treatment. The axes ω^\hat{\omega} and −ω^-\hat{\omega} produce the same rotation, so the logarithm has two solutions and needs a sign convention. For θ=0\theta = 0 the logarithm is the zero matrix. If 0<θ<π0 < \theta < \pi, then [ω^]=12sin⁡θ(R−RT).[\hat\omega] = \frac{1}{2 \sin \theta}(R - R^T) .

The exponential map on a curved space

SO(3) is a curved three-dimensional space. Its exponential map wraps a flat coordinate space onto it. You cannot draw a curved three-dimensional space, but the unit sphere S2S^2 shows the same structure in one lower dimension. At a point pp, the tangent plane TpS2T_pS^2 touches the sphere and contains every possible velocity of a curve through pp. The exponential map carries a tangent vector ω\omega onto the sphere. It follows the great circle in the vector’s direction for an arc length ∥ω∥\|\omega\|: exp⁡p(ω)=cos⁡(∥ω∥) p+sin⁡(∥ω∥) ω∥ω∥\exp_p(\omega) = \cos(\|\omega\|)\, p + \sin(\|\omega\|)\, \frac{\omega}{\|\omega\|} Straight lines in the tangent plane become curved arcs on the sphere. Near pp, the plane approximates the sphere well. SO(3) has the same local structure. Its tangent space is R3\mathbb{R}^3, and the exponential map turns a vector ω^θ\hat{\omega}\theta into a rotation matrix. The sphere provides a visible model of SO(3). The gold plane is the tangent plane TpS2T_pS^2 at pp, and the white arrow is a tangent vector ω\omega. The red arc is exp⁡p(ω)\exp_p(\omega), the great-circle path that starts at pp, follows the direction of ω\omega, and has the same length. The fan shows this mapping in twelve directions. The final orbit compares the flat plane with arcs that follow the sphere’s curvature.

References

  • Kevin M. Lynch, F. (2017). Modern Robotics.

Found an error on this page? Report an issue.