Screw Theory Reference for Control-Affine Multibody Dynamics

Reference guide for screw theory notation and concepts in control-affine multibody dynamics, including twists, wrenches, and exponential coordinates.
Author

Dieter Olson

Published

November 28, 2025

Introduction

Every rigid body motion in three dimensions—no matter how complicated—is equivalent to a twist about a single axis in space. This astonishing fact, discovered by Michel Chasles in 1830, is the foundation of screw theory. It means that a combination of rotation AND translation can always be described as a “screwing” motion about one particular axis. Your arm rotating while it swings forward? That’s a screw motion. The club twisting while it accelerates downward? Also a screw. Even the most complex simultaneous spinning and translating motion of a golf club can be expressed as a single screw.

This simplicity is powerful. Instead of tracking six separate numbers (three rotational components, three translational components), you track them together as a unified geometric object: the screw axis and the “pitch” of the screw. And the beautiful part: forces and moments also fit into this same screw framework, as “wrenches.” Once you think in screws, complex 3D mechanics becomes elegant.

Screw theory provides a compact and geometrically natural language for representing rigid-body motions and forces. Its central objects are twists (instantaneous motions) and wrenches (forces and moments), related to the Lie group \(SE(3)\) and its Lie algebra \(\mathfrak{se}(3)\). This reference document summarizes the formalism needed to interpret the control-affine multibody golf swing model in screw-theoretic terms.

NoteFrame Convention

All 6-vectors (twists \(\mathcal{V}\), wrenches \(\mathcal{F}\)) and matrices (\(J\), \(B\)) in this article are expressed in the space frame (fixed world frame \(s\)) unless explicitly subscripted \(_b\) for the body frame. Body-frame quantities transform via the adjoint: \(\mathcal{V}_s = \mathrm{Ad}_{T_{sb}} \mathcal{V}_b\) for twists. Wrenches transform with the transpose acting in the opposite direction, so that the power \(\mathcal{F}^\top\mathcal{V}\) stays frame-invariant: \(\mathcal{F}_b = \mathrm{Ad}_{T_{sb}}^\top \mathcal{F}_s\), equivalently \(\mathcal{F}_s = \mathrm{Ad}_{T_{sb}}^{-\top} \mathcal{F}_b\).

The Lie Group \(SE(3)\) and Its Algebra

Rigid-body configurations belong to the special Euclidean group

\[ SE(3) = \left\{ \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} : R\in SO(3), \; p\in \mathbb{R}^3 \right\}. \]

Its Lie algebra is

\[ \mathfrak{se}(3) = \left\{ \begin{bmatrix} \hat{\omega} & v \\ 0 & 0 \end{bmatrix} : \omega, v \in \mathbb{R}^3 \right\}, \]

where \(\hat{\omega}\) is the skew-symmetric matrix corresponding to the vector \(\omega\) via the hat operator.

Twists

A twist is a 6-vector

\[ \mathcal{V} = \begin{bmatrix} \omega \\ v \end{bmatrix}, \]

representing angular velocity \(\omega\) and linear velocity \(v\) of a body frame. For a reference point \(q \in \mathbb{R}^3\) on the axis of motion, one has

\[ v = -\omega \times q. \]

This yields the Pl"ucker representation of screws.

Wrenches

A wrench is a 6-vector

\[ \mathcal{F} = \begin{bmatrix} n \\ f \end{bmatrix}, \]

where \(f\) is the force and \(n\) is the moment about a reference point. The instantaneous power is

\[ \mathcal{F}^\top \mathcal{V} = n^\top \omega + f^\top v. \]

This pairing is invariant under coordinate transformations and is fundamental to screw theory.

Adjoint Transformations

For a homogeneous transform

\[ g = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} \in SE(3), \]

the adjoint representation is

\[ \mathrm{Ad}_g = \begin{bmatrix} R & 0 \\ \hat{p}R & R \end{bmatrix}. \]

It maps twists and wrenches as

\[ \mathcal{V}_b = \mathrm{Ad}_g \,\mathcal{V}_a, \qquad \mathcal{F}_a = \mathrm{Ad}_g^\top \,\mathcal{F}_b, \]

where subscripts denote different frames. Note the wrench transpose runs in the opposite direction to the twist map: this is exactly what keeps the power \(\mathcal{F}^\top\mathcal{V}\) invariant, since \(\mathcal{F}_a^\top \mathcal{V}_a = (\mathrm{Ad}_g^\top \mathcal{F}_b)^\top \mathcal{V}_a = \mathcal{F}_b^\top \mathrm{Ad}_g \mathcal{V}_a = \mathcal{F}_b^\top \mathcal{V}_b\).

Joint Screws and the Screw Jacobian

A revolute joint \(i\) is represented by a screw axis

\[ S_i = \begin{bmatrix} \omega_i \\ -\omega_i \times q_i \end{bmatrix}, \]

with \(\omega_i\) the unit axis of rotation and \(q_i\) a point on that axis. For an \(n\)-DOF chain, the body twist can be written as

\[ \mathcal{V} = \sum_{i=1}^n S_i \dot{\theta}_i. \]

Stacking the screw axes gives the screw Jacobian

\[ J_s(q) = [S_1 \;\; S_2 \;\; \cdots \;\; S_n], \]

so that

\[ \mathcal{V} = J_s(q)\,\dot{\theta}. \]

Screw Dynamics (Newton–Euler in Screw Form)

The spatial Newton–Euler equation for a rigid body can be written as

\[ \mathcal{F} = I_s(q)\dot{\mathcal{V}} + \mathrm{ad}^\ast_{\mathcal{V}} I_s(q)\mathcal{V}, \]

where \(I_s(q)\) is the spatial inertia and \(\mathrm{ad}^\ast_{\mathcal{V}} = -\mathrm{ad}^\top_{\mathcal{V}}\) is the coadjoint (dual adjoint) operator — the same minus-transpose duality \(\times^\ast = -\times^\top\) used throughout (Lynch & Park convention). The first term corresponds to inertia, and the second term collects Coriolis and centrifugal effects. Additional spatial wrenches represent gravity and other external forces.

Thus a drift wrench can be expressed as

\[ \mathcal{F}_{\mathrm{drift}} = I_s\dot{\mathcal{V}} + \mathrm{ad}^\ast_{\mathcal{V}} I_s \mathcal{V} + \mathcal{F}_{g} + \mathcal{F}_{\mathrm{shaft}}, \]

where \(\mathcal{F}_g\) is a gravity wrench and \(\mathcal{F}_{\mathrm{shaft}}\) is the contribution of flexible shaft forces.

Control-Affine Structure in Screw Coordinates

Joint torques \(\tau \in \mathbb{R}^n\) relate to input wrenches via the well-posed (forward) map

\[ \tau = J_s(q)^\top \mathcal{F}_{\mathrm{input}}, \]

which is the screw-coordinate statement of the force–torque duality. Inverting this for the wrench is only possible up to the null space of \(J_s^\top\): for a general \(n\)-DOF chain \(J_s\) is \(6\times n\) and not square, so we use the Moore–Penrose pseudoinverse to recover the minimum-norm input wrench,

\[ \mathcal{F}_{\mathrm{input}} = \bigl(J_s(q)^\top\bigr)^{+}\tau = \bigl(J_s(q)^\top\bigr)^{+} B u, \]

which reduces to \(J_s(q)^{-\top}\tau\) in the special case of a square, invertible \(J_s\). Here \(B\) is the input distribution matrix (expressed in the space frame, following the convention fixed in the introduction) and \(u\) is the vector of joint inputs. A body-frame input distribution \(B_b\) — natural for grip-force measurements taken in the hand frame — relates to the spatial form as \(B_s = \mathrm{Ad}_{T_{sb}}\, B_b\). The total wrench at a given point is then

\[ \mathcal{F}_{\mathrm{total}} = \mathcal{F}_{\mathrm{drift}}(x) + \mathcal{F}_{\mathrm{input}}(x,u). \]

This reproduces the affine decomposition: passive drift wrenches plus active input wrenches.

Flexible Shaft Forces in Screw Form

Flexible shaft forces can be modeled as distributed elastic wrenches. For mode \(i\):

\[ \mathcal{F}_{\mathrm{shaft},i} = K_i x_{s,i} S_{s,i} + D_i \dot{x}_{s,i} S_{s,i}, \]

where \(x_{s,i}\) and \(\dot{x}_{s,i}\) are modal coordinates, \(K_i\) and \(D_i\) are stiffness and damping, and \(S_{s,i}\) is the associated mode screw. Importantly,

\[ \frac{\partial \mathcal{F}_{\mathrm{shaft}}}{\partial u} = 0, \]

so shaft forces contribute only to drift and do not affect the linear dependence on \(u\).

Superposition in Screw Space

Because wrenches add linearly, the total wrench decomposition

\[ \mathcal{F}_{\mathrm{total}} = \mathcal{F}_{\mathrm{drift}} + \mathcal{F}_{\mathrm{input}} \]

holds in any screw coordinate representation. This coordinate-free linearity is a geometric expression of the superposition principle for forces in control-affine mechanical systems.

ZTCF Family and ZVCF in Screw Coordinates

In the Zero Torque Counterfactual (ZTCF), all inputs are set to zero, so

\[ \dot{x} = f(x), \]

and the corresponding wrench is purely

\[ \mathcal{F}_{\mathrm{ZTCF}} = \mathcal{F}_{\mathrm{drift}}. \]

In the Zero Velocity Counterfactual (ZVCF), velocity-dependent drift mechanisms and input wrenches are removed, and the state is evaluated at zero velocity, so that only configuration-dependent drift wrenches remain:

\[ \mathcal{F}_{\mathrm{ZVCF}} = \mathcal{F}_{\mathrm{drift}}(q, 0). \]

These constructions mirror the affine decomposition in screw space.

Summary

Screw theory provides a rigorous, coordinate-free representation of rigid-body motions and forces. Within this framework, drift dynamics appear as drift wrenches, input torques generate input wrenches through the screw Jacobian, flexible shaft forces reside in the drift term, and the total wrench always decomposes as a sum of drift and input components. This aligns exactly with the control-affine decomposition established for the multibody golf swing model.

Limitations

Warning

Screw theory provides a powerful geometric language for rigid-body mechanics, but it has inherent boundaries:

  1. Screw coordinates assume rigid body motion: The entire framework—twists, wrenches, the Lie group \(SE(3)\)—is predicated on rigid body kinematics. When a limb segment, the club shaft, or the ball deforms during motion, the assumption breaks. Finite deformations require extension to continuum mechanics or distributed parameter models, and the elegant screw representation becomes local (differential) rather than global.

  2. Flexible shaft dynamics require extended screw formulations: While modal decomposition of shaft bending can be incorporated into the extended generalized coordinates (as in the Lagrangian section), the wrench representation becomes cluttered. Distributed elastic wrenches do not combine as cleanly as rigid-body wrenches. The superposition principle still holds, but the geometric intuition—one screw axis per degree of freedom—is lost.

  3. Gyroscopic effects in 3D require careful treatment of angular momentum coupling: When a body spins rapidly (e.g., the club’s handle rotation during the downswing) while simultaneously following a changing trajectory, gyroscopic torques emerge from \(\mathrm{ad}^*_{\mathcal{V}} I_s \mathcal{V}\). These are nonlinear couplings between different twist components. The screw Jacobian formulation assumes these are captured in the drift term, but the high sensitivity of gyroscopic forces to measurement noise and modeling error can make the decomposition unstable.

<div class="laymans-terms-inner">
  <p class="laymans-terms-intro">
    This article uses "Screw Theory" to describe how objects move and feel force in 3D space. Here is the simple version.
  </p>

  <div class="laymans-item">
    <h3>Twists and Screws</h3>
    <p>In 3D, any movement can be described as rotating around a line while sliding along it—just like a screw. A "Twist" is simply the math word for this combined turning and moving.</p>
    <div class="analogy">
Think of it like: Opening a jar of pickles. Your hand rotates the lid (twist) while it moves upward (slide). Both happen at once.
</div>

  <div class="laymans-item">
    <h3>Wrenches</h3>
    <p>A "Wrench" combines the force you push with and the twisting leverage (torque) you apply. It bundles all the effort into one package.</p>
    <div class="analogy">
Think of it like: Using a literal wrench. You push on the handle (force) to create a turning effect (torque) on the bolt.
</div>

   <div class="laymans-item">
    <h3>Drift vs. Input</h3>
    <p>The math separates what happens naturally (Drift) from what you actively cause (Input). Even complex 3D forces follow this simple rule.</p>
    <div class="analogy">
Think of it like: A roller coaster. The loops and turns it does by itself after the initial hill are “Drift” (gravity + track). If it had a booster engine you controlled, that would be “Input”.
</div>

  <div class="key-takeaway">
    <strong>Key Takeaway:</strong> Complex 3D golf motions can be broken down into simple "screw-like" movements and forces, separating natural momentum from player effort.
  </div>
</div>