Robotics
Screw Theory: Twists, Wrenches, and the Instantaneous Motion of a Rigid Body
Unscrew a bottle cap and your hand traces a helix: it rotates and advances along one line at the same time. In 1830 Michel Chasles proved that every possible motion of a rigid body — no matter how it tumbles — is exactly this: a rotation about a unique axis combined with a translation along it. Screw theory is the algebra that turns that geometric fact into a working tool, packing the six numbers of a body's instantaneous velocity into a single 6D object called a twist, and the six numbers of any force system into its dual, a wrench.
Because a twist captures three angular and three linear velocity components at once, and a wrench captures three moments and three forces, robot kinematics, statics, and dynamics all collapse into compact matrix operations on ℝ⁶. This is the mathematical backbone of modern manipulator analysis, the product-of-exponentials formula, and grasp-force computation.
- FieldRigid-body kinematics & statics / robotics
- Core theoremChasles–Mozzi: every motion = rotation + translation about one axis
- Key objectsTwist V = (ω, v) ∈ ℝ⁶; Wrench F = (m, f) ∈ ℝ⁶
- Math structureLie algebra se(3), Lie group SE(3), Plücker line coordinates
- FormalizedR. S. Ball, 1876 treatise; POE by Brockett, 1984
- Pitch (screw)h = translation ÷ rotation, units of length/rad (0 = pure rotation, ∞ = pure translation)
Interactive visualization
Press play, or step through manually. The visualization is yours to drive — try it before reading on.
Watch the 60-second explainer
A condensed visual walkthrough — narrated, captioned, under a minute.
What screw theory is and where it is used
Screw theory represents the paired quantities of rigid-body mechanics — angular-and-linear velocity, or moment-and-force — as single six-dimensional objects called screws. A twist is the velocity screw; a wrench is the force screw. Both live on the geometry of a line in space (its screw axis) plus a scalar pitch h that couples the linear and angular parts.
It is the standard language of modern robotics because it treats revolute and prismatic joints uniformly and gives coordinate-free, geometric insight that Denavit–Hartenberg tables hide. Concretely it appears in:
- Manipulator kinematics — the product-of-exponentials formula and the spatial/body Jacobian, whose columns are the joint twists.
- Grasping and force control — contact wrenches and grasp-map analysis (form/force closure).
- Multibody dynamics — Featherstone's spatial-vector articulated-body algorithm runs on twists and wrenches.
- Mechanism theory — mobility (Grübler count refinements) and singularity analysis of parallel robots like the Stewart platform.
How it works: the Chasles–Mozzi screw and the twist
The governing insight is the Chasles–Mozzi theorem: any instantaneous rigid-body motion equals a rotation of angular velocity ω about a unique axis, plus a translation along that same axis. Rotation and slide together sweep a helix — a screw.
A twist collects this as V = (ω, v), where ω is the 3D angular velocity and v = −ω × q + h·ω is the linear velocity of the body point currently at the origin; q is any point on the screw axis and h is the pitch. Define the pitch as
- h = (ωᵀv) / (ωᵀω) — the ratio of translation to rotation, in metres per radian.
Pure rotation gives h = 0; pure translation gives h = ∞ with ω = 0. The axis and unit direction are the Plücker coordinates of a line. Equivalently the twist is the 4×4 matrix [V] = [[ [ω]×, v ], [0, 0]] in the Lie algebra se(3); exponentiating it, T = exp([V]·θ), produces the finite screw displacement in SE(3) — the basis of the product-of-exponentials (POE) forward-kinematics formula T = e^{[S₁]θ₁}···e^{[Sₙ]θₙ}·M introduced by Brockett in 1984.
Key quantities and a worked example
Consider a revolute joint whose axis is the z-line through the point q = (2, 0, 0) m, spinning at ω = 3 rad/s about +z, with zero pitch (a hinge). The unit screw axis is ŝ = (0, 0, 1). The linear part is v = −ŝ × q = −(0,0,1) × (2,0,0) = (0, −2, 0). So the unit twist is
- S = (0, 0, 1, 0, −2, 0), and the actual twist V = 3·S = (0, 0, 3, 0, −6, 0).
A point on the body instantaneously at the origin therefore moves at v = (0, −6, 0) m/s — 6 m/s, exactly ω·r = 3 × 2, tangent to its 2 m circle. That is the value of the twist: one object gives every point's velocity via v_P = v + ω × p.
For the dual, a wrench F = (m, f) with a pure force f = (10, 0, 0) N applied at q = (0, 1, 0) m has moment m = q × f = (0,1,0)×(10,0,0) = (0, 0, −10) N·m. The instantaneous power a wrench does on a twist is the reciprocal product P = Vᵀ·F (using the swapped pairing ωᵀm + vᵀf).
Using screw theory in practice
In a real manipulator you build kinematics screw-by-screw:
- Pick a reference (home) configuration and write M ∈ SE(3), the end-effector pose there.
- Write each joint's unit screw Sᵢ = (ωᵢ, vᵢ) in the fixed frame: for a revolute joint, ωᵢ is the axis direction and vᵢ = −ωᵢ × qᵢ; for a prismatic joint, ωᵢ = 0 and vᵢ is the slide direction.
- Assemble the POE product T(θ) = e^{[S₁]θ₁}···e^{[Sₙ]θₙ}·M — no per-link frames, no DH table.
The spatial Jacobian Jₛ(θ) then has columns that are the joint twists expressed in the current configuration, mapping joint rates θ̇ to the end-effector twist: V = Jₛ·θ̇. Rank loss of Jₛ flags a kinematic singularity; two joint screws becoming linearly dependent (e.g., three parallel or coplanar axes) is instantly visible geometrically. To change reference frames, transform a twist with the 6×6 adjoint map Ad_T. For statics, wrenches transform by Ad_Tᵀ, and the same Jacobian gives joint torques τ = Jₛᵀ·F.
Screw theory versus its close cousins
Several representations describe rigid-body motion; screw theory's edge is unification and geometry.
- vs. Denavit–Hartenberg (1955): DH assigns four parameters per link and tabulates them — compact but frame-dependent, error-prone at the base/tool, and it obscures the physical axes. POE needs only two frames and exposes each joint's screw directly.
- vs. Euler angles / homogeneous transforms: T ∈ SE(3) stores a finite pose; a twist is its instantaneous generator (the element of se(3) whose exponential is T). Euler angles suffer gimbal lock; screws do not.
- vs. dual quaternions: mathematically equivalent (the dual-quaternion group double-covers SE(3)); dual quaternions are more efficient for interpolation and blending, while twists/wrenches read more directly for Jacobians and force analysis.
- vs. plain vector mechanics: screw theory is the coordinate-free packaging of the same Newton–Euler physics, exposing invariants (pitch, axis, reciprocity) that scalar bookkeeping hides.
Trade-offs, failure modes, and significance
Reciprocity is screw theory's sharpest tool and its subtlest pitfall. A wrench F and twist V are reciprocal when their reciprocal product vanishes, Vᵀ·F = ωᵀm + vᵀf = 0 — meaning the force system does no work on that motion. Constraint wrenches from joints are reciprocal to the freedoms they permit; getting the pairing (the swap of the two 3-vectors) wrong silently corrupts every power and torque calculation.
Practical caveats:
- Pitch singularities: h → ∞ for pure translation (ω = 0) needs careful limits; naive division by |ω| blows up.
- Small-angle exp/log: the SE(3) exponential and its logarithm need Taylor fallbacks near θ = 0 to stay numerically stable.
- Kinematic singularities: real, not artefacts — the mechanism loses a degree of freedom, and the Jacobian's screw columns become dependent.
Its significance: screw theory, from Ball's 1876 treatise to Brockett's 1984 POE and today's Modern Robotics curriculum, is the compact, geometric, singularity-transparent framework underpinning manipulator control, grasp planning, and multibody simulation.
| Representation | Dimensions / form | What it encodes | Best for |
|---|---|---|---|
| Twist V = (ω, v) | 6-vector (se(3)); 4×4 matrix [ω]×,v | Instantaneous velocity: angular ω + linear v of a point | Velocity, Jacobians, POE kinematics |
| Wrench F = (m, f) | 6-vector (dual space) | Static force f + moment m on a body | Statics, grasp analysis, force control |
| Screw axis + pitch h | line (Plücker) + scalar h + magnitude | Geometry of one motion/force | Visualizing ISA, singularity insight |
| Homogeneous matrix T ∈ SE(3) | 4×4 (R, p) | Finite configuration (pose) | Storing/composing full poses |
| Denavit–Hartenberg | 4 params/joint | Link frames of a serial chain | Legacy tabular kinematics |
| Euler angles + vector | 3 + 3 scalars | Orientation + position | Human-readable pose, has gimbal lock |
Frequently asked questions
What is the difference between a twist and a wrench?
A twist is the velocity screw of a moving body: the 6-vector V = (ω, v) pairing angular velocity ω with linear velocity v. A wrench is the force screw: F = (m, f) pairing a moment m with a force f. They are dual — a wrench acting on a twist produces mechanical power P = Vᵀ·F, using the swapped pairing ωᵀm + vᵀf.
What does the pitch of a screw mean?
Pitch h = (ωᵀv)/(ωᵀω) is the ratio of translation to rotation along the screw axis, in metres per radian. A pure rotation (hinge) has pitch 0; a pure translation (slider) has infinite pitch with ω = 0. A finite nonzero pitch is a true helical motion, like a nut advancing on a threaded bolt.
Who invented screw theory and when?
The geometric core is the Chasles–Mozzi theorem — Giulio Mozzi (1763) and Michel Chasles (1830). Sir Robert Stawell Ball formalized the full theory in his 1876 paper and 1900 treatise, building on Poinsot's work on wrenches. Roger Brockett gave it the modern robotics form with the product-of-exponentials formula in 1984.
Why use screw theory instead of Denavit–Hartenberg parameters?
The product-of-exponentials formula needs only two frames (base and end-effector home pose) and expresses each joint by its screw axis directly, so there are no error-prone per-link frame assignments. It handles revolute and prismatic joints uniformly and makes singularities geometrically obvious as linear dependence among joint screws.
What are reciprocal screws used for?
Two screws are reciprocal when Vᵀ·F = ωᵀm + vᵀf = 0, meaning the wrench does no work on the twist. This identifies constraint forces that permit a motion, so it is central to mobility analysis, singularity detection in parallel mechanisms, and computing form/force closure in robotic grasping.
How does a twist relate to the matrix exponential in SE(3)?
A twist is an element of the Lie algebra se(3), representable as a 4×4 matrix [V]. Exponentiating it, T = exp([V]·θ), yields a finite rigid displacement in the Lie group SE(3) — a screw motion of angle θ about the axis. This is why chaining joint exponentials (POE) reproduces a robot's forward kinematics.