Skip to main content
Angular velocity gave the velocity of a rotating body at one instant, R˙=[ωs]R\dot R = [\omega_s] R. This section turns that velocity into a finite rotation. When the axis stays fixed, the rotation is a matrix exponential and we can represent the rotation with three numbers. The section follows section 3.2.3 of Kevin Lynch and Frank Park, Modern Robotics: Mechanics, Planning, and Control (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

A body that turns at the constant rate ω=1\omega = 1 for a time θ\theta obeys R˙=GR\dot R = G R. The solution is the matrix exponential R(θ)=eθGR(0)R(\theta) = e^{\theta G} R(0). Because G2=−IG^2 = -I, the exponential series splits into the cosine and sine series: eθG=Icos⁡θ+Gsin⁡θ=R(θ).e^{\theta G} = I \cos\theta + G \sin\theta = R(\theta) . 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 you can also write a rotation as an exponential, but only for a fixed axis. The solution below 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. This linear differential equation has the solution 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.