Linear Algebra · Theory · M10
M10-T3 — SE(3) and Twists
A twist packs the linear and angular velocity of a rigid body into six numbers. Integrating a constant twist draws a screw, and the exponential of its 4×4 matrix is the pose.
Rotations gave us so(3); rigid motions give se(3), whose elements are twists: the angular velocity of a body together with the linear velocity of the point at the origin. Everything about a rigid-body velocity, from a wheeled robot following an arc to an arm joint turning a link, is a twist, and the matrix exponential of a twist is a pose.
Learning objectives
After this lesson, you should be able to:
- Define a twist ξ = (v, ω) and its 4 × 4 matrix, the Lie algebra se(3) of SE(3).
- Explain screw motion and the planar special case of a circular arc with an instantaneous centre.
- Change the frame of a twist with the adjoint matrix Ad_T.
- Describe forward kinematics as a product of exponentials of joint twists.
Introduction and motivation
A mobile robot drives with a constant forward speed and turning rate: its path is an arc. A drone integrates its IMU and gets, over a short interval, a constant rotation and acceleration. A manipulator joint turns at some speed about a fixed axis. In all these cases the motion over a short time is “a constant twist”, and its effect on the pose is one matrix exponential. Twists are also the unknowns of ICP, visual odometry and pose-graph optimisation: the six-dimensional step that is added to a pose.
The intuition
At any instant a rigid body moves like a screw: it rotates about some axis while sliding along it. The angular velocity ω gives the rotation and the linear velocity v of the point at the origin gives the slide plus a sideways part. The twist (v, ω) is the pair. A constant twist makes the body trace a helix about a fixed screw axis; in a plane, the helix degenerates to a circle around an instantaneous centre of rotation, which you can see in the figure below.
Interactive figure. A planar robot driven by a constant twist traces a circular arc about a centre of rotation. The readout gives the end pose as the exponential of the twist, the centre of rotation, and the logarithm that recovers the twist. This figure needs JavaScript to be interactive.
Geometric and physical interpretation
Geometric view. Chasles' theorem: every rigid motion is a screw: a rotation about an axis combined with a translation along it. A twist is the infinitesimal version. The 4 × 4 twist matrix ξ^ = [[[ω]ₓ, v], [0, 0]] has the same block shape as a homogeneous transform; its exponential is a transform. Physical view. The twist of a body can be expressed in the world frame (spatial twist) or in the body frame (body twist). The linear part is the velocity of the body point currently at the origin of that frame, not of the centre of mass.
The mathematics
- ξ = (v, ω) ∈ ℝ⁶
- a twist: linear part v and angular part ω (some texts order them (ω, v)).
- ξ^
- the 4 × 4 twist matrix [[ [ω]ₓ, v ], [0, 0]], an element of se(3).
- Ad_T
- the 6 × 6 adjoint of T = (R, t), which converts twists between frames.
- h
- the pitch of a screw, h = ω·v/‖ω‖².
Twist matrix and exponential
ξ^ = [ [ω]ₓ v ; 0 0 ], T(t) = exp( t ξ^ ) = [ exp(t[ω]ₓ) V(tω) t v ; 0 1 ]
What it means. The matrix exponential of a twist is a rigid transform. The rotation block is the rotation-vector exponential; the translation block is v scaled by the matrix V (closed form in the next lessons), reducing to t v when ω = 0.
Adjoint: changing the frame of a twist
ξworld = Ad_T ξbody, Ad_T = [ R [t]ₓR ; 0 R ]
What it means. The adjoint rotates both parts and adds the lever-arm term [t]ₓRω to the linear part: the velocity at a different point of the same rigid body. It satisfies Ad_{T₁T₂} = Ad_{T₁}Ad_{T₂}.
Product of exponentials
T(q) = exp(q₁ ξ̂₁) exp(q₂ ξ̂₂) ⋯ exp(qₙ ξ̂ₙ) M
What it means. Each joint is a twist (axis and pitch, fixed in the base frame at zero configuration) and q the amount of motion; M is the home pose of the end effector. This is the formulation used by Modern Robotics.
A twist ξ = (v, ω) ∈ ℝ⁶ is a rigid-body velocity; its 4×4 matrix lies in se(3); exp(tξ^) is the pose after time t; Ad_T changes its frame; kinematics is a product of exponentials.
Step-by-step derivation: se(3), the exponential and the adjoint
- Tangent matrices of SE(3). Differentiate a path
T(t) = [[R(t), p(t)], [0, 1]]at the identity:Ṫ = [[Ṙ, ṗ], [0, 0]]withṘ = [ω]ₓ(so(3) lesson). HenceT⁻¹Ṫ = [[RᵀṘ, Rᵀṗ], [0, 0]] = [[ [ω_b]ₓ, v_b ], [0, 0]]: this is the body twist matrix, andṪT⁻¹gives the spatial twist. - Dimension. 3 (ω) + 3 (v) = 6 = dim SE(3). The algebra is closed under the commutator:
[ξ₁^, ξ₂^] = ((ω₁ × v₂ − ω₂ × v₁, ω₁ × ω₂))^. - Exponential. A constant twist solves
Ṫ = T ξ^withT(0) = I, soT(t) = exp(tξ^)(matrix exponential). The powers of ξ^ have the block structure(ξ^)ⁿ = [[[ω]ₓⁿ, [ω]ₓⁿ⁻¹v], [0, 0]], so summing the series gives the rotation blockexp(t[ω]ₓ)and the translation block(Σ tⁿ[ω]ₓⁿ⁻¹/n!) v = V t v. - Planar arc. For
ω = (0, 0, ω)andv = (vₓ, v_y, 0): positionx = (vₓ sin ωt − v_y(1 − cos ωt))/ω,y = (vₓ(1 − cos ωt) + v_y sin ωt)/ω, headingωt. The point with zero velocity (centre of rotation) satisfiesv + ω × c = 0:c = (−v_y/ω, vₓ/ω), and the motion is a circle about it of radius‖v‖/|ω|. - Screw pitch. Decompose v into the part along ω and the part perpendicular:
v_∥ = (ω·v/‖ω‖²)ω. The parallel part slides along the axis (the pitch h = ω·v/‖ω‖² per radian); the perpendicular part, with ω, locates the screw axis through the point(ω × v)/‖ω‖²and gives pure rotation about it. - Adjoint. Take
T = (R, t)and a body twist matrix ξb^. The same motion expressed in the other frame isT ξ_b^ T⁻¹. Multiplying out gives[[R[ω]ₓRᵀ, Rv − R[ω]ₓRᵀt], [0, 0]] = [[[Rω]ₓ, Rv + [t]ₓRω], [0, 0]]usingR[ω]ₓRᵀ = [Rω]ₓand−[Rω]ₓt = [t]ₓRω. Soξ_w = (Rv + [t]ₓRω, Rω) = Ad_T ξ_b. - Product of exponentials. A revolute joint with axis ω̂ passing through point q has twist
ξ = (−ω̂ × q, ω̂). The joint moves the rest of the chain byexp(θξ^); composing the joints from base to tool and multiplying by the home pose M gives the end-effector pose. - Velocity kinematics. The spatial Jacobian columns are the joint twists transported to the current configuration by the adjoints of the preceding exponentials:
J_i = Ad_{exp(q₁ξ₁^)⋯exp(qᵢ₋₁ξᵢ₋₁^)} ξᵢ. This is the Jacobian of Module 8 in Lie-group form.
Ordering conventions. Texts differ: (v, ω) versus (ω, v), body versus spatial twists, left versus right perturbation. The mathematics is the same, but formulas for Ad_T and Jacobians permute their blocks accordingly. Always check against a numeric example from the library.
A worked example: an arc, a screw and a frame change
- Planar twist.
ξ = (v = (1, 0, 0), ω = (0, 0, π/2)),t = 1:R = Rz(90°), translationV v = (0.6366, 0.6366, 0). This is a quarter circle of radius1/(π/2) = 0.6366about the centre(0, 0.6366); the end point(0.6366, 0.6366)is at that distance from the centre ✓. - With sideways speed.
ξ = (0.5, 0.2, 0; 0, 0, 1.0),t = 1: translation(0.3288, 0.3981, 0), rotation 1 rad (57.3°);expby the matrix series gives the same, and the logarithm returns(0.5, 0.2, 0, 0, 0, 1.0). - Screw.
ξ = (0, 0, 1; 0, 0, 1): rotation about z with a slide along z, pitchh = ω·v/‖ω‖² = 1. After one second the pose isRz(1 rad)with translation(0, 0, 1); after a full turn (ξ = (0, 0, 2π; 0, 0, 2π), t = 1) the translation is(0, 0, 2π): one pitch of the helix. - Adjoint.
T = (Rz(90°), t = (1, 2, 3))and body twist(1, 0, 0; 0, 0, 1):Rv = (0, 1, 0),Rω = (0, 0, 1),[t]ₓRω = t × (0, 0, 1) = (2, −1, 0), so the spatial twist is(2, 0, 0; 0, 0, 1). - Lever arm meaning. The body moves forward at 1 m/s while turning at 1 rad/s; seen from the world frame, the point currently at the world origin moves at
(2, 0, 0): the body's own velocity plus the turning contribution of a body whose origin is 2 m away. - Counting. A twist has 6 numbers: a rigid body has 6 degrees of freedom.
Robotics application
Mobile robots and navigation. The unicycle step over Δt is exp(Δt ξ^) with ξ = (v, 0, ω): an exact arc update instead of Euler; see robot motion models for navigation, rigid transforms in 2D and pure pursuit.
SLAM and pose graphs. ICP and bundle-adjustment steps are twists added by exponential; the information matrix of an edge is a 6 × 6 matrix on se(3); see pose graphs and ICP fundamentals.
UAVs and IMU. Preintegrated motion over a window is a twist increment; velocity and angular velocity of the IMU are combined into a single six-vector; see IMU preintegration and inertial navigation systems.
Manipulators. The product of exponentials gives forward kinematics and the Jacobian from joint screws (Module 8). Frame changes of wrenches (force and torque) use the transpose of the adjoint.
Engineering implications and limitations
Practical rules
- Fix and document the twist ordering. (v, ω) versus (ω, v) and body versus spatial change every formula; Sophus and GTSAM use different orders.
- Use the exact exponential for arcs. Euler integration of a unicycle drifts off the arc; the closed-form exp handles ω = 0 with a series for small ω.
- Use the adjoint to change frames of velocities and covariances. A 6 × 6 covariance of a twist transforms as Ad Σ Adᵀ.
- Remember the lever arm. The “linear velocity” of a twist belongs to a particular point (the frame origin); moving the frame changes it by t × ω.
- Test with an arc and a screw. A quarter circle and a helix with known answers catch ordering and sign errors.
- Mind units. Linear parts are metres per second and angular parts radians per second; weight them before computing a norm of a twist.
Limits
A constant twist is a model valid over short intervals; accelerating bodies need many steps or higher-order integrators. The logarithm of a transform is unique only for rotation angles below π.
Common misconceptions
“A twist is the same as a transform.”
A twist is a velocity (an element of the algebra); the transform is its exponential.
“The linear part of a twist is the velocity of the centre of mass.”
It is the velocity of the body point at the frame origin; it changes with the choice of origin by t × ω.
“Body and spatial twists are the same six numbers.”
They differ by the adjoint: ξspatial = Ad_T ξbody.
“Moving with constant velocity and constant turn rate is a straight line.”
It is an arc (a helix in 3D) unless ω = 0.
Engineering takeaways
- A twist ξ = (v, ω) is a rigid-body velocity; se(3) is the set of 4 × 4 matrices [[ [ω]ₓ, v ], [0, 0]].
- A constant twist traces a screw; in the plane it is a circular arc about an instantaneous centre c = (−vy/ω, vₓ/ω).
- T(t) = exp(tξ^); the translation block is V·v t with V → I as ω → 0.
- Ad_T = [[R, [t]ₓR], [0, R]] converts twists between frames and satisfies Ad_{T₁T₂} = Ad_{T₁}Ad_{T₂}.
- Forward kinematics is a product of exponentials of joint twists, and the Jacobian columns are adjoint-transported joint twists.
References and further reading
Primary papers and authoritative documentation.
- Modern Robotics (Lynch and Park), free preprint: chapter 3.3 and 4: twists, the matrix exponential of se(3) and the product of exponentials
- Solà, Deray and Atchuthan, A micro Lie theory for state estimation in robotics: A micro Lie theory for state estimation in robotics: SE(3), twists and the adjoint
- Barfoot, State Estimation for Robotics (author-hosted first edition, free to read): chapter 7, SE(3) and its Lie algebra
- MIT 18.06SC Linear Algebra (OCW): lecture on the matrix exponential and differential equations (18.06 supplement)
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
A wheeled robot moves with ξ = (1, 0, 0.5) (vx, vy, ω) for 2 s. What are its end pose and the radius of its arc?
Explanation
θ = ωt = 1 rad. x = vₓ sin θ/ω = 1·0.8415/0.5 = 1.683, y = vₓ(1 − cos θ)/ω = 0.4597/0.5 = 0.919. Radius = ‖v‖/|ω| = 2 m, centre (0, 2). End pose (1.683, 0.919, 57.3°).
Question 2
Find the pitch of the screw ξ = (0.3, 0, 1.2; 0, 0, 2).
Explanation
h = ω·v/‖ω‖² = (2·1.2)/4 = 0.6 per radian: the body advances 0.6 m along the axis for each radian of rotation (3.77 m per full turn). The part of v perpendicular to ω (0.3, 0) locates the axis off the origin.
Question 3
A twist of a camera is (0, 0, 0; 0, 0, 1) in the camera frame (pure rotation about its z-axis). The camera origin is at t = (0.1, 0, 0) from the robot base with no rotation. What is the equivalent twist at the base?
Explanation
Ad_T with R = I, t = (0.1, 0, 0): vbase = Rv + t × Rω = (0.1, 0, 0) × (0, 0, 1) = (0·1 − 0·0, 0·0 − 0.1·1, 0) = (0, −0.1, 0), ωbase = (0, 0, 1): a turn about a point 0.1 m away appears at the base as a rotation plus a sideways velocity of −0.1 m/s.
What’s next
We have used exp informally. The next lesson writes its closed forms: Rodrigues' formula for rotations and the V matrix for rigid transforms, with the small-angle care they need.
Related content
Nothing below is required to finish this lesson.
- BeforeM10-T2: SO(3) and Its Lie Algebra
Describe the tangent space of SO(3) with skew-symmetric matrices and rotation vectors.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.