Linear Algebra · Theory · M10
M10-T4 — The Exponential Map
Closed forms turn a rotation vector or a twist into a rotation or a pose with a handful of trigonometric terms, no infinite series required.
The matrix exponential sums an infinite series, but for rotations the powers of the skew matrix repeat with period two (up to sign), so the series collapses into sines and cosines: Rodrigues' formula. The same trick gives the V matrix for rigid transforms. These formulas run inside every gyro integrator, ICP and pose-graph update.
Learning objectives
After this lesson, you should be able to:
- Derive Rodrigues' formula R = I + sin θ [n]ₓ + (1 − cos θ)[n]ₓ² from the matrix power series.
- Write the closed form of the SE(3) exponential, including the V matrix, and check it for a planar arc.
- Implement the exponential with series expansions near θ = 0 to avoid 0/0 and rounding loss.
- Verify that the result is a valid rotation or transform and relate exp to the elementary rotations.
Introduction and motivation
A drone's gyro reports (0.02, −0.01, 0.3) rad/s at 400 Hz. Every 2.5 ms the code needs the rotation exp([ω Δt]ₓ). The angle is tiny (0.0008 rad), and a naive implementation computing sin θ/θ and (1 − cos θ)/θ² divides small numbers by tiny ones: at θ = 10⁻⁸ the second quantity evaluates to exactly 0 in double precision instead of 0.5, silently making the update wrong. Knowing the closed forms and their small-angle safe versions is part of writing a correct estimator.
The intuition
A rotation about the axis n by the angle θ leaves the component of a vector along n alone and turns the component perpendicular to n, within the plane perpendicular to n. In that plane the perpendicular part moves like a 2D rotation: a combination of itself (cos θ) and its quarter turn n × v (sin θ). Writing that with matrices and collecting terms gives Rodrigues' formula. The exponential of the skew matrix simply is this rotation, because powers of [n]ₓ cycle through [n]ₓ, [n]ₓ², −[n]ₓ, −[n]ₓ², ….
Interactive figure. A box rotated by the exponential of a rotation vector, with the axis drawn as an arrow. The readout gives the matrix, the angle and axis and a check that the logarithm returns the vector. This figure needs JavaScript to be interactive.
Geometric and physical interpretation
Geometric view. For ω = θn, exp([ω]ₓ) is the rotation by θ about n. In SE(3), exp(ξ^) screws the frame: it rotates by ‖ω‖ about the screw axis and slides along it; the matrix V maps the twist's linear part into the translation of the resulting pose. Physical view. For a gyro sample, exp([ω Δt]ₓ) is the exact rotation over that interval if the rate were constant: a significant improvement over first-order updates when the rates are large.
The mathematics
- ω = θn
- a rotation vector with angle θ = ‖ω‖ and unit axis n.
- K = [n]ₓ
- the skew matrix of the unit axis; K³ = −K, K² = nnᵀ − I.
- V(ω)
- the matrix linking the twist linear part to the translation: t = V v.
- sinc(θ)
- sin θ / θ, equal to 1 at θ = 0.
Rodrigues' formula (SO(3))
R = exp([ω]ₓ) = I + (sin θ/θ) [ω]ₓ + ((1 − cos θ)/θ²) [ω]ₓ²
What it means. Two scalar coefficients multiply the skew matrix and its square. In terms of the unit axis: I + sin θ K + (1 − cos θ)K². The result is orthogonal with determinant 1 for any ω.
The SE(3) exponential
exp(ξ^) = [ exp([ω]ₓ) V v ; 0 1 ], V = I + ((1 − cos θ)/θ²)[ω]ₓ + ((θ − sin θ)/θ³)[ω]ₓ²
What it means. The rotation block is Rodrigues; the translation is the linear part v mapped by V. For ω = 0, V = I and the motion is a pure translation by v.
Small-angle series
sin θ/θ ≈ 1 − θ²/6, (1 − cos θ)/θ² ≈ 1/2 − θ²/24, (θ − sin θ)/θ³ ≈ 1/6 − θ²/120 for θ below about 10⁻²
What it means. Direct evaluation divides rounding errors by tiny numbers. Below a threshold use the Taylor expansions; the three coefficients converge to 1, 1/2 and 1/6 as θ → 0.
exp([ω]ₓ) = I + (sin θ/θ)[ω]ₓ + ((1 − cos θ)/θ²)[ω]ₓ²; SE(3): translation V v. Switch to Taylor series for tiny θ.
Step-by-step derivation: Rodrigues' formula and the V matrix
- Power series.
exp(θK) = I + θK + θ²K²/2! + θ³K³/3! + ⋯withK = [n]ₓ,‖n‖ = 1. - Cycle of powers. For a unit axis,
K³ = −K(check:K²v = n(n·v) − v, soK³v = n × (n(n·v) − v) = −n × v = −Kv). HenceK⁴ = −K²,K⁵ = K, and so on: odd powers are±K, even powers±K². - Collect.
exp(θK) = I + K(θ − θ³/3! + θ⁵/5! − ⋯) + K²(θ²/2! − θ⁴/4! + θ⁶/6! − ⋯) = I + sin θ K + (1 − cos θ)K². Withω = θn,[ω]ₓ = θK, giving the general form withsin θ/θand(1 − cos θ)/θ². - Check as a rotation. Applied to
v = n:Kn = 0, soRn = n. Applied to a perpendicular unit vector u:Ku = n × u,K²u = −u, soRu = u(1 − (1 − cos θ)) + (n × u) sin θ = u cos θ + (n × u) sin θ: the 2D rotation in the plane perpendicular to n. - SE(3) series. With
ξ^ = [[ω^, v], [0, 0]](where ω^ = [ω]ₓ), the powers are(ξ^)ⁿ = [[ω^ⁿ, ω^ⁿ⁻¹v], [0, 0]]. So the top-right block ofexp(ξ^)isΣₙ≥₁ ω^ⁿ⁻¹/n! · v = (I + ω^/2! + ω^²/3! + ⋯)v. - Sum the V series. Using the cycle of powers,
I + ω^/2! + ω^²/3! + ⋯ = I + (1 − cos θ)/θ² ω^ + (θ − sin θ)/θ³ ω^²(collect odd and even powers as before), which definesV. - Safe numerics. The coefficients are
a = sin θ/θ = 1 − θ²/6 + ⋯,b = (1 − cos θ)/θ² = 1/2 − θ²/24 + ⋯,c = (θ − sin θ)/θ³ = 1/6 − θ²/120 + ⋯. For θ below roughly 10⁻² the Taylor forms are more accurate than the direct formulas, whose numerators lose all significant digits. - Valid result. Rodrigues' output is exactly orthogonal in exact arithmetic; numerically
‖RᵀR − I‖is a few 10⁻¹⁶. The SE(3) exponential inherits it. Re-orthonormalise only if you chain thousands of products.
Connection to the elementary rotations. ω = (0, 0, ψ) gives Rz(ψ) exactly; likewise for x and y. A general rotation exp([ω]ₓ) is not a product of the three elementary exponentials with the same angles (they do not commute); the rotation-vector and Euler-angle descriptions of the same rotation have different numbers.
Quaternion form. The same rotation as a unit quaternion is q = (cos(θ/2), n sin(θ/2)): the quaternion exponential. The half angle is why quaternions double-cover SO(3).
A worked example: Rodrigues, V and safe coefficients
- Quarter turn.
ω = (0, 0, π/2):K = [[0, −1, 0], [1, 0, 0], [0, 0, 0]],sin θ = 1,1 − cos θ = 1, soR = I + K + K² = [[0, −1, 0], [1, 0, 0], [0, 0, 1]]= Rz(90°) ✓. - Half turn.
ω = (π, 0, 0)givesR = I + 0 + 2K² = diag(1, −1, −1): rotation by 180° about x. - A general vector.
ω = (1, 2, 3),θ = 3.742:R = [[−0.695, 0.714, 0.089], [−0.192, −0.304, 0.933], [0.693, 0.631, 0.348]]with determinant 1 andRᵀR = Ito 10⁻¹⁶. - A 3D twist.
ξ = (1, 0, 0; 0.1, 0.2, 0.3): the angle is‖ω‖ = 0.374rad andV = [[0.978, −0.145, 0.104], [0.152, 0.983, −0.039], [−0.094, 0.059, 0.992]], so the translation is the first column of V:V v = (0.978, 0.152, −0.094). It is slightly shorter than v and drifts sideways because the body turns while it moves (an arc, not a line). If v were parallel to ω (a pure screw) V v would equal v exactly. - Planar arc check.
ξ = (1, 0, 0; 0, 0, π/2):V v = (0.6366, 0.6366, 0), the quarter circle of the previous lesson. - Safe coefficients. At
θ = 10⁻⁸the direct(1 − cos θ)/θ²evaluates to exactly 0, whereas the series gives0.5. Atθ = 10⁻⁵the direct value is 0.50000004 (error 4 × 10⁻⁸): already visibly wrong in the eighth digit.
Robotics application
Gyro integration and IMU preintegration. Each sample multiplies by exp([ω Δt]ₓ); preintegration composes many such factors; see IMU preintegration and attitude representation and rotation matrices.
Pose-graph and bundle-adjustment updates. Optimisers compute a six-dimensional step δ and update T ← T exp(δ^); see pose graphs, nonlinear least squares and rotation matrices, quaternions and poses.
LiDAR registration. Gauss-Newton ICP solves for a small twist per iteration and applies its exponential to the cloud; see ICP fundamentals.
Mobile robots and manipulators. The exact arc update of an odometry step is the planar exponential; the product-of-exponentials formula for arms uses the same closed form for each joint.
Engineering implications and limitations
Practical rules
- Implement series branches. Switch to Taylor expansions below about θ = 10⁻² (or 10⁻³ for the cubic terms); test at θ = 0 exactly.
- Use a tested library for production. Sophus, manif, GTSAM and Eigen have exp/log with the edge cases handled; copy the algorithm, not just the formula.
- Check the output. Unit tests:
R Rᵀ ≈ I,det ≈ 1, exp of a zero vector is the identity, andexp(−ω) = exp(ω)ᵀ. - Mind the unit of ω. Radians (not degrees) and the product ω Δt; gyro data in °/s needs conversion.
- Document the twist ordering. The V matrix multiplies the linear part; if your library orders (ω, v), indexes shift accordingly.
- Re-normalise occasionally. For millions of products re-orthonormalise (SVD) or switch to quaternions with normalisation.
Limits
The exponential is onto SO(3) and SE(3) but not one-to-one: every rotation has infinitely many rotation vectors (θ + 2πk, and the flipped axis at θ = π). Formulas are exact for constant twists; real motions with changing rates need small steps or higher-order integration (Magnus expansion).
Common misconceptions
“exp of a matrix is the exponential of each entry.”
It is the power series Σ Aᵏ/k!. For skew matrices it yields the rotation by Rodrigues' formula.
“R = I + [ω]ₓ is a good rotation for any ω.”
It is accurate to first order for small ω but not orthogonal; for larger angles use Rodrigues.
“The translation of exp(ξ^) is just v.”
It is V v; it equals v only for ω = 0 (pure translation).
“Direct evaluation of the coefficients is fine at small angles.”
It is not: (1 − cos θ)/θ² returns 0 below about 10⁻⁸ and is inaccurate far above that; use the series.
Engineering takeaways
- Rodrigues: R = I + (sin θ/θ)[ω]ₓ + ((1 − cos θ)/θ²)[ω]ₓ², from K³ = −K for a unit axis.
- SE(3): exp(ξ^) = [[exp([ω]ₓ), V v], [0, 1]] with V = I + (1 − cos θ)/θ² [ω]ₓ + (θ − sin θ)/θ³ [ω]ₓ².
- Use Taylor expansions for θ below about 10⁻²: 1 − θ²/6, 1/2 − θ²/24, 1/6 − θ²/120.
- exp(0) = I, exp(−ω) = exp(ω)ᵀ; the map is onto but not one-to-one.
- Gyro integration, ICP steps and pose-graph updates all apply exp to a small tangent vector.
References and further reading
Primary papers and authoritative documentation.
- Solà, Deray and Atchuthan, A micro Lie theory for state estimation in robotics: A micro Lie theory for state estimation in robotics: closed forms of exp for SO(3) and SE(3)
- Modern Robotics (Lynch and Park), free preprint: chapter 3.2.3 and 3.3.3, Rodrigues' formula and the exponential of a twist
- Solà, Quaternion kinematics for the error-state Kalman filter: Quaternion kinematics for the error-state Kalman filter: the rotation vector and Rodrigues
- Barfoot, State Estimation for Robotics (author-hosted first edition, free to read): chapter 7, exponential map and Jacobians
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
Compute exp of ω = (0, 0.5π, 0) with Rodrigues' formula and say what it is.
Explanation
θ = π/2, n = (0, 1, 0), K = [[0, 0, 1], [0, 0, 0], [−1, 0, 0]], R = I + K + K². K² = diag(−1, 0, −1). So R = [[0, 0, 1], [0, 1, 0], [−1, 0, 0]] = Ry(90°).
Question 2
For θ = 10⁻³, give the three Taylor values of sin θ/θ, (1 − cos θ)/θ² and (θ − sin θ)/θ³.
Explanation
sin θ/θ = 1 − θ²/6 = 0.99999983; (1 − cos θ)/θ² = 1/2 − θ²/24 = 0.49999996; (θ − sin θ)/θ³ = 1/6 − θ²/120 = 0.16666666 (to the digits shown).
Question 3
A twist (v, ω) = (2, 0, 0; 0, 0, 0) is exponentiated with the closed form. What are R and the translation?
Explanation
ω = 0 means θ = 0: R = I and V = I (the limit of the formula), so the translation is v = (2, 0, 0): a pure translation, the series branch must return exactly this rather than a not-a-number result from 0/0.
What’s next
The exponential maps tangent vectors to the group. The logarithm goes the other way: from a rotation or pose back to the rotation vector or twist that generates it, with care at the two edge cases of zero angle and angle π.
Related content
Nothing below is required to finish this lesson.
- BeforeM10-T3: SE(3) and Twists
Describe rigid-body velocity as a twist and the Lie algebra of SE(3).
- BeforeM7-T3: Three-Dimensional Rotation Matrices
Build rotations about the coordinate axes and compose them, noting that the order matters.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.