Inverse Dynamics and the Parallel Loop Problem
The human body is not a stick. It is not even a branching tree of bones. Your two hands grip the club, your two feet push the ground, and your spine twists within your rib cage. Closed loops and redundant actuators are therefore part of the measurement problem, not an edge case.
Here is the stumbling block: from motion capture technology, we can estimate how the skeleton moves. We can film a swing, track joint angles, and numerically estimate velocities and accelerations. The natural question is: What muscle forces caused this motion?
Even for an open-chain limb, inverse dynamics identifies net joint loads under a specified model; individual muscle forces require additional assumptions because muscles are redundant (Winter 2009; Robertson et al. 2004; Zajac 1989). For the golf swing, loop constraints and grip/ground contact add another layer of non-identifiability. This chapter explains what remains measurable, what requires instrumentation or optimization assumptions, and how the ZTCF family framework reframes part of the question as a forward simulation.
This is the most technically demanding chapter in this book. The reward is a clearer distinction between measured kinematics, model-inferred net loads, and unobserved muscle-level causes.
The Inverse Problem: From Motion to Force
Forward and Inverse Dynamics Defined
In the language of mechanics, there are two directions of inference:
Given all applied forces and torques \(\bm{u}(t)\) and an initial state \(\bm{q}(0)\), \(\dot{\bm{q}}(0)\), integrate forward to predict the motion \(\bm{q}(t)\). This is the natural direction: causes produce effects.
Given a measured trajectory \(\bm{q}(t)\), differentiate to compute \(\dot{\bm{q}}(t)\) and \(\ddot{\bm{q}}(t)\), then solve backward to infer the forces and torques \(\bm{u}(t)\) that must have produced it. This is the unnatural direction: effects are used to deduce causes.
The motivating question for inverse dynamics in biomechanics is straightforward:
You swing a golf club. A motion capture system records your skeleton in three-dimensional space at 120 frames per second. The computer estimates how your shoulder, elbow, wrist, hips, and knees moved. But the motion capture system cannot feel your muscles. It cannot measure the electrical signals your motor cortex sends to your muscle fibers, nor the contractile forces those fibers generate.
Yet your muscles helped cause this motion. Can we compute those muscle forces backwards from the motion we measured?
For net joint loads, the answer can be yes under a declared rigid-body model and measured external loads. For individual muscles, grip-force sharing, and tissue stresses, the answer is more subtle. Some aspects of recruitment are not identifiable from motion alone and require EMG, force plates, grip instrumentation, or an explicit optimization criterion.
The Canonical Equation
Recall the equation of motion for a mechanical system with \(n\) degrees of freedom: \[ \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q}) = \bm{u} \tag{1}\]
Here:
- \(\bm{q} \in \mathbb{R}^n\) are the generalized coordinates (joint angles).
- \(\bm{M}(\bm{q}) \in \mathbb{R}^{n \times n}\) is the mass matrix, symmetric and positive definite.
- \(\bm{C}(\bm{q},\dot{\bm{q}})\) are the Coriolis and centrifugal terms.
- \(\bm{g}(\bm{q})\) is the gravity vector.
- \(\bm{u}\) are the generalized forces (joint torques applied by muscles).
For an unconstrained system (open chain), this equation has a unique inverse: \[ \bm{u} = \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q}) \tag{2}\]
Given \(\bm{q}(t)\) (from motion capture), differentiate twice to get \(\ddot{\bm{q}}(t)\), compute the mass matrix and its derivatives, plug in numbers, and obtain the net generalized load \(\bm{u}(t)\) for the chosen model. This model-conditioned calculation is the foundation of biomechanical inverse dynamics (Winter 2009; Robertson et al. 2004).
But the golf swing is not a simple open chain. It is constrained. And that changes everything.
The Open Chain: Why Inverse Dynamics Succeeds
Imagine a robot arm: shoulder (1 DOF), elbow (1 DOF), wrist (1 DOF). Three joints, three motors. You command the motors with specific torques and watch the arm move. This is forward dynamics: you set the input (motor torques), physics tells you the output (arm trajectory).
Now imagine you video the arm’s motion and want to reverse-engineer the motor commands. You measure the arm’s angles and angular velocities frame by frame. Then you differentiate to get accelerations. Now, the question: what motors torques caused these accelerations?
At the level of net joint torques in a fully specified open-chain model, the answer can be unambiguous. With three measurements (three joint accelerations) and three generalized torque unknowns, you solve a square linear system. Muscle-by-muscle sharing is still a separate redundancy problem.
This simplicity persists for regular open-chain inverse dynamics at the generalized-coordinate level: \(n\) independent coordinates give \(n\) generalized equations. When the model, boundary conditions, and external loads are known, the net joint-load calculation is well determined.
Why the Mass Matrix Is Always Invertible
For an open kinematic chain with \(n\) generalized coordinates:
For a regular open-chain model with independent generalized coordinates, the mass matrix \(\bm{M}(\bm{q}) \in \mathbb{R}^{n \times n}\) is symmetric and positive definite. Therefore: \[ \mathrm{det}(\bm{M}(\bm{q})) > 0 \quad \forall \bm{q} \tag{3}\]
This can be proven by direct construction of kinetic energy. The kinetic energy of a rigid-body system is: \[ T = \frac{1}{2}\,\dot{\bm{q}}^T \bm{M}(\bm{q})\,\dot{\bm{q}} \]
Since kinetic energy is non-negative and is zero only when \(\dot{\bm{q}} = \bm{0}\) in independent coordinates, the matrix \(\bm{M}\) is positive definite in the strict sense. A positive definite matrix has full rank and is invertible.
This statement depends on using independent coordinates. If the coordinates are redundant or a constraint Jacobian loses rank, the singularity belongs to the coordinate or constraint representation, not to the physical inertia of the bodies.
The Recursive Newton-Euler Algorithm
In practice, biomechanics labs do not invert the mass matrix directly. Instead, they use a computational algorithm that implicitly solves the inverse dynamics problem in \(O(n)\) time:
A two-pass algorithm for computing joint torques from measured kinematics:
Forward Pass (base to tip): Starting at the fixed base, compute the velocity \(\bm{v}_i\) and acceleration \(\bm{a}_i\) of each body \(i\) by forward recursion: \[ \begin{aligned} \bm{v}_i &= \bm{v}_{i-1} + \bm{J}_i\,\dot{q}_i \bm{a}_i &= \bm{a}_{i-1} + \bm{J}_i\,\ddot{q}_i + \dot{\bm{J}}_i\,\dot{q}_i \end{aligned} \]
Backward Pass (tip to base): Starting at the distal tip, compute the force \(\bm{f}_i\) and moment \(\bm{m}_i\) at each joint by backward recursion: \[ \begin{aligned} \bm{f}_i &= \bm{f}_{i+1} + m_i\,\bm{a}_i \bm{m}_i &= \bm{m}_{i+1} + m_i\,\bm{r}_i \times \bm{a}_i + \bm{I}_i\,\boldsymbol{\alpha}_i \end{aligned} \]
At each joint, solve for the torque \(\tau_i\) that satisfies Newton’s second law for that body.
The genius of RNEA is that it solves the inverse dynamics problem without ever forming the mass matrix explicitly. It works sequentially, joint by joint, so it remains numerically stable and computationally fast.
This algorithm, and closely related Newton–Euler implementations, is standard in many motion-capture biomechanics workflows for estimating net joint loads from measured kinematics and external forces (Featherstone 2008; Robertson et al. 2004). It works well when the kinematic chain, boundary conditions, and contact forces are modeled appropriately.
The Parallel Mechanism: Where It All Breaks Down
Now consider a golfer at address. Both hands grip the club. Both feet are planted on the ground. The spine is bent and twisted. There are no loose ends. Every limb is connected to every other limb through a chain of constraints.
This is no longer a tree. It is a graph. More precisely, it is a parallel mechanism—a system with closed kinematic loops.
A closed kinematic loop imposes a constraint: if one hand moves, the other must move in a coordinated way to maintain the grip. This constraint is not a free parameter you can command with a motor torque. It is an implicit requirement imposed by the physics of contact.
These constraints reduce the number of degrees of freedom but increase the number of unknown forces. Constraint forces (the grip pressure between your hands, the normal force from the ground) are real physical forces that do real mechanical work. But they are internal to the system. You cannot measure them directly. And worse—they entangle the equations of motion in a way that makes inverse dynamics ambiguous.
Constraints and Constraint Forces
For a system with \(n\) generalized coordinates and \(k\) holonomic constraints, the constrained equations of motion take the form: \[ \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q}) = \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} \tag{4}\]
where:
- \(\bm{u} \in \mathbb{R}^p\) are the applied torques (muscle-driven).
- \(\bm{B}(\bm{q}) \in \mathbb{R}^{n \times p}\) maps actuator torques to generalized forces.
- \(\boldsymbol{\lambda} \in \mathbb{R}^k\) are the constraint multipliers (Lagrange multipliers).
- \(\bm{J}_c(\bm{q}) \in \mathbb{R}^{k \times n}\) is the constraint Jacobian.
The constraint equations are: \[ \bm{\Phi}(\bm{q}) = \bm{0} \tag{5}\]
Differentiating twice: \[ \bm{J}_c(\bm{q})\,\ddot{\bm{q}} + \dot{\bm{J}}_c(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} = \bm{0} \tag{6}\]
Counting Equations and Unknowns
Here is the fundamental problem:
We have:
- Equations: \(n\) equations of motion (Equation 4)
- Unknowns: \(p\) applied torques \(\bm{u}\) plus \(k\) constraint multipliers \(\boldsymbol{\lambda}\), for a total of \(p + k\) unknowns
If \(p + k > n\), the system is underdetermined. There are more unknowns than equations.
For an open chain: \(p = n\) (one motor per DOF), \(k = 0\) (no constraints) \(\Rightarrow\) \(p + k = n\) \(\Rightarrow\) square system \(\Rightarrow\) unique solution.
For a closed-loop system: \(p\) may remain \(n\) (muscles still act on all \(n\) DOF), but now \(k > 0\) (there are loop constraints) \(\Rightarrow\) \(p + k > n\) \(\Rightarrow\) rectangular system \(\Rightarrow\) no unique solution in general.
The constraint forces \(\boldsymbol{\lambda}\) are real forces. Your left hand genuinely pushes against your right hand. But you cannot see this force directly from skeletal kinematics alone. When you try to invert the dynamics—to go from measured motion to inferred torques—constraint forces and applied torques become entangled unless additional measurements or load-sharing assumptions are supplied.
The Singular Matrix: Why Inversion Fails
The Augmented System
To set up the inverse dynamics problem formally, consider the augmented system combining dynamics and constraints: \[ \begin{bmatrix} \bm{M}(\bm{q}) & -\bm{J}_c^T(\bm{q}) \\ \bm{J}_c(\bm{q}) & \bm{0} \end{bmatrix} \begin{bmatrix} \ddot{\bm{q}} \\ \boldsymbol{\lambda} \end{bmatrix} = \begin{bmatrix} \bm{B}(\bm{q})\,\bm{u} - \bm{h}(\bm{q},\dot{\bm{q}}) \\ -\dot{\bm{J}}_c(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} \end{bmatrix} \tag{7}\]
where \(\bm{h}(\bm{q},\dot{\bm{q}}) = \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q})\) collects velocity-dependent and gravity terms.
This is called the KKT (Karush-Kuhn-Tucker) or augmented system. For \(n\) generalized coordinates and \(k\) constraints, the matrix is \((n+k) \times (n+k)\).
For a well-posed mechanical system with constraints, the augmented matrix \[ \bm{K} = \begin{bmatrix} \bm{M} & -\bm{J}_c^T \\ \bm{J}_c & \bm{0} \end{bmatrix} \tag{8}\]
is nonsingular whenever \(\bm{M}\) is positive definite, \(\bm{J}_c\) has full row rank, and the contact mode is fixed. Therefore, given \(\bm{u}\), we can solve uniquely for \(\ddot{\bm{q}}\) and \(\boldsymbol{\lambda}\) under those regularity assumptions.
This means forward dynamics is well posed for the stated model and contact mode.
This theorem guarantees that if you specify the model, contact mode, initial state, and applied torques, the skeleton’s acceleration is determined while the regularity assumptions hold. Physically, ambiguity enters when those inputs are inferred from motion rather than specified.
The Underdetermined Inverse
But inverse dynamics is different. Now, we know \(\ddot{\bm{q}}\) (from motion capture) and want to find \(\bm{u}\) and \(\boldsymbol{\lambda}\).
Rearrange Equation 4: \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} = \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{h}(\bm{q},\dot{\bm{q}}) \tag{9}\]
Let \(\bm{r} = \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{h}(\bm{q},\dot{\bm{q}})\) be the known right-hand side (the net force required to produce the measured acceleration).
We must solve: \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} = \bm{r} \tag{10}\]
This is an underdetermined linear system: \(n\) equations, \(p + k\) unknowns, with \(p + k > n\).
The solution to Equation 10 is not unique. Instead, the general solution is: \[ \begin{bmatrix} \bm{u} \\ \boldsymbol{\lambda} \end{bmatrix} = \begin{bmatrix} \bm{u}^* \\ \boldsymbol{\lambda}^* \end{bmatrix} + \mathcal{N} \tag{11}\]
where \(\begin{bmatrix} \bm{u}^* \\ \boldsymbol{\lambda}^* \end{bmatrix}\) is any particular solution and \(\mathcal{N}\) is the null space: \[ \mathcal{N} = \left\{ \begin{bmatrix} \delta\bm{u} \\ \delta\boldsymbol{\lambda} \end{bmatrix} : \bm{B}(\bm{q})\,\delta\bm{u} + \bm{J}_c^T(\bm{q})\,\delta\boldsymbol{\lambda} = \bm{0} \right\} \tag{12}\]
Any combination of applied torques and constraint forces in the null space produces zero net force. These combinations are invisible to the equations of motion: they change \(\bm{u}\) and \(\boldsymbol{\lambda}\) without changing the predicted kinematics.
The constraint compatibility equations determine which accelerations are admissible. The multipliers \(\boldsymbol{\lambda}\) then require the dynamic model plus applied-load assumptions; they are not measured directly by motion capture. Applied torques \(\bm{u}\) cannot be uniquely determined without additional information or modeling assumptions.
Loop Closure Equations and Velocity Constraints
For the golf swing with a two-handed grip, the fundamental constraint is that both hands must grip the same club. In the 3D spatial case, this imposes 6 constraints (3 positional, 3 rotational) relating the left and right arm configurations.
If the left arm has forward kinematics \(\mathbf{T}_L(\bm{q}_L)\) and the right arm has forward kinematics \(\mathbf{T}_R(\bm{q}_R)\), where \(\mathbf{T}\) are homogeneous transformation matrices, then the loop closure constraint is:
\[ \mathbf{T}_L(\bm{q}_L) = \mathbf{T}_R(\bm{q}_R) \tag{13}\]
This is a matrix equation in \(SE(3)\) (the special Euclidean group). Written as explicit constraints on positions and orientations:
\[ \mathbf{p}_L(\bm{q}_L) = \mathbf{p}_R(\bm{q}_R) \quad \text{(3 position constraints)} \] \[ \mathbf{R}_L(\bm{q}_L) = \mathbf{R}_R(\bm{q}_R) \quad \text{(3 orientation constraints)} \tag{14}\]
This is a nonlinear system of 6 equations in \(n\) unknowns (the joint angles \(\bm{q}_L\) and \(\bm{q}_R\)).
Velocity-Level Constraint
Differentiating the loop closure equation with respect to time:
\[ \mathbf{J}_L(\bm{q}_L)\,\dot{\bm{q}}_L = \mathbf{J}_R(\bm{q}_R)\,\dot{\bm{q}}_R \tag{15}\]
This is the velocity-level loop constraint: the velocities of the left and right end effectors must match (they’re gripping the same object).
Rearranging into standard form:
\[ \begin{bmatrix} \mathbf{J}_L & -\mathbf{J}_R \end{bmatrix} \begin{bmatrix} \dot{\bm{q}}_L \\ \dot{\bm{q}}_R \end{bmatrix} = \mathbf{0} \tag{16}\]
The constraint Jacobian is:
\[ \bm{J}_c = \begin{bmatrix} \mathbf{J}_L & -\mathbf{J}_R \end{bmatrix} \tag{17}\]
The rank of this Jacobian is typically 6 (for non-singular arm configurations). This means the velocity constraint reduces the effective DOF from \(n\) (unconstrained) to \(n - 6\) (constrained).
The Constraint Jacobian Geometry and DOF
The constraint Jacobian \(\bm{J}_c(\bm{q})\) is a \(k \times n\) matrix, where \(k\) is the number of constraints and \(n\) is the number of generalized coordinates.
The effective degrees of freedom of a constrained system is:
\[ \text{DOF}_{\text{effective}} = n - \text{rank}(\bm{J}_c(\bm{q})) \tag{18}\]
At non-singular configurations, the rank of \(\bm{J}_c\) is typically equal to \(k\) (the number of constraints). At singular configurations, the rank drops below \(k\), meaning some constraints become redundant or the system gains unexpected DOF.
Rank Loss and Singularities
A singularity occurs when \(\text{rank}(\bm{J}_c(\bm{q})) < k\). Near such a configuration:
- The constraint Jacobian has a nontrivial null space.
- Some constraints become dependent on others.
- The mechanism may gain an unexpected degree of freedom.
- The computed multipliers may become ill-conditioned if the model is forced through the singularity.
In golf-swing models, rank loss or poor conditioning may be relevant near:
- Address position (near-singularity with low effective stiffness).
- Impact (arm fully extended, approach to leg singularity).
- Transition points between backswing and downswing.
Null Space of the Constraint Jacobian: Allowed Motions
This is a different null space from the “Solution Space and Null Space” discussed earlier, which describes ambiguity in force distribution (\(\bm{u}\), \(\boldsymbol{\lambda}\)). This section is about velocity: which joint motions the loop closure constraint permits at all.
The null space of \(\bm{J}_c\) is the set of velocities that don’t violate the constraint:
\[ \mathcal{N}(\bm{J}_c) = \{ \dot{\bm{q}} : \bm{J}_c(\bm{q})\,\dot{\bm{q}} = \mathbf{0} \} \tag{19}\]
The dimension of the null space is:
\[ d = n - \text{rank}(\bm{J}_c) \tag{20}\]
This dimension is the number of “redundant” or “hidden” DOF in the system — joint motions that don’t change the constraint (the club’s motion remains unchanged).
Example: Null Space for Two-Handed Grip
Consider the two arms (14 DOF total) gripping a club with 6 constraints (3 position + 3 orientation).
At a non-singular configuration:
\[ d = 14 - 6 = 8 \tag{21}\]
This means there are an 8-dimensional family of joint configurations that all result in the same club position and orientation. Some examples of these null space motions:
- Adjust right-hand grip pressure while maintaining club position.
- Adjust left-hand grip angle without changing the club’s position.
- Change the plane of the arm motion (more vertical vs. more horizontal) while keeping club trajectory fixed.
- Adjust wrist cock angle without changing the overall club motion.
These are all “free” motions in the sense that they don’t require external work — they’re constrained by the loop closure but allowed by it.
Null Space Projector
A useful computational tool is the null space projector:
\[ \bm{P} = \bm{I} - \bm{J}_c^+ \bm{J}_c \tag{22}\]
where \(\bm{J}_c^+\) is the pseudoinverse of \(\bm{J}_c\).
This matrix projects any velocity onto the null space:
\[ \dot{\bm{q}}_{\text{null}} = \bm{P}\,\dot{\bm{q}}_{\text{any}} \tag{23}\]
Any velocity of the form \(\dot{\bm{q}}_{\text{null}}\) satisfies the constraint exactly.
Internal Forces and the Dual Null Space
Just as the null space describes allowed velocities, the dual null space describes internal forces.
- Useful forces: those in the range of \(\bm{J}_c^T\). These forces constrain the motion (they do work on the constraint).
- Internal forces: those in the null space of \(\bm{J}_c^T\). These forces don’t constrain motion — they create internal stress without affecting the kinematics.
A fundamental property of linear algebra:
\[ \mathcal{N}(\bm{J}_c) \perp \text{Range}(\bm{J}_c^T) \tag{24}\]
Mechanically: a force in the range of \(\bm{J}_c^T\) does zero work on any velocity in the null space of \(\bm{J}_c\).
Internal forces (those in the null space of \(\bm{J}_c^T\)) are mechanically “invisible” — they don’t change the kinematics. But they create real stresses in tissues.
For example, a golfer might grip the club very tightly (large internal grip force) while maintaining identical club trajectory compared to a golfer with light grip. The kinematics are the same, but the internal stresses are very different. The tight-grip golfer may fatigue forearm muscles and risk injury from the excess internal force.
This is why the dual null space matters for injury-risk and coaching discussions: it identifies quantities that require force measurements, tissue models, or explicit load-sharing assumptions before the text can make applied claims.
Why Drift Forces Are Not Constrained by the Loop
A critical insight from Chapter 9: drift terms can be computed from kinematics once the model, segment inertias, and coordinate convention are specified. They are not affected by muscle load-sharing ambiguity, but they are still model-conditioned.
Gravity
Gravity acts on the center of mass:
\[ \bm{F}_{\text{grav}} = m\bm{g} \tag{25}\]
The center of mass position is determined by the skeleton’s configuration \(\bm{q}\) and the segment mass model. Once those are known, gravity is determined by the model.
Coriolis Force
The Coriolis force is:
\[ \bm{F}_{\text{Cor}} = -2m\,\bm{\omega} \times \bm{v}_{\text{rel}} \tag{26}\]
Both \(\bm{\omega}\) (body rotation rate) and \(\bm{v}_{\text{rel}}\) (relative velocity) are estimated from joint angles and velocities after filtering and differentiation.
Moreover, Coriolis is perpendicular to the velocity that creates it. This perpendicularity is a kinematic fact, not dependent on forces.
Centrifugal Force
The centrifugal acceleration (in the rotating frame) is:
\[ \bm{a}_{\text{cent}} = -\bm{\omega} \times (\bm{\omega} \times \bm{r}) \tag{27}\]
This depends on \(\bm{\omega}\) (rotation rate, from kinematics) and \(\bm{r}\) (position, from the model geometry).
From motion capture plus a declared model, a biomechanist can compute the total drift term:
\[ \bm{F}_{\text{drift}} = \bm{F}_{\text{grav}} + \bm{F}_{\text{Cor}} + \bm{F}_{\text{cent}} + \text{(elastic drift)} \tag{28}\]
This total drift term has no muscle load-sharing ambiguity, but it depends on the selected model, parameters, and filtering. The ZTCF framework (Chapter 6) leverages this distinction without claiming that drift estimates are independent of modeling choices.
A Concrete Example: The Two-Handed Golf Grip
Let us work through a concrete example: the biomechanics of holding a golf club with both hands.
Model the system as follows:
- Left arm: 3 joints (shoulder, elbow, wrist) with coordinates \(q_L^{(1)}, q_L^{(2)}, q_L^{(3)}\).
- Right arm: 3 joints with coordinates \(q_R^{(1)}, q_R^{(2)}, q_R^{(3)}\).
- A club held at a fixed position relative to each hand.
- Total: 6 degrees of freedom without constraints.
The constraint is simple: both hands must grip the same club. The constraint equation is: \[ \bm{\Phi}_{\text{grip}} = \text{(position of right hand)} - \text{(position of left hand)} - \text{(club geometry)} = \bm{0} \tag{29}\]
This constraint is \(k = 3\) dimensional (three spatial coordinates). So the constrained system has \(6 - 3 = 3\) independent DOF.
But we still have 6 actuators (muscles acting on 6 joint angles). The system is redundantly actuated: more muscle groups than independent degrees of freedom.
Setting Up the Equations
The equation of motion for the combined two-arm system (without constraints): \[ \bm{M}(q_L, q_R)\begin{bmatrix}\ddot{\bm{q}}_L \\ \ddot{\bm{q}}_R\end{bmatrix} + \bm{h} = \begin{bmatrix}\bm{\tau}_L \\ \bm{\tau}_R\end{bmatrix} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda}_{\text{grip}} \tag{30}\]
where \(\bm{\tau}_L\) and \(\bm{\tau}_R\) are the torques applied by the left and right arm muscles.
The constraint Jacobian \(\bm{J}_c \in \mathbb{R}^{3 \times 6}\) relates changes in joint angles to changes in the grip constraint.
The constraint force \(\boldsymbol{\lambda}_{\text{grip}} \in \mathbb{R}^3\) represents the internal reaction force between the two hands. It is exerted on the left hand in one direction and on the right hand in the opposite direction, forming an equal-and-opposite pair.
The Underdetermined Inverse Problem
Suppose a motion-capture system measures the trajectory \(\bm{q}_L(t)\) and \(\bm{q}_R(t)\). We compute \(\ddot{\bm{q}}_L\) and \(\ddot{\bm{q}}_R\) by differentiating twice.
From the equations of motion: \[ \begin{bmatrix}\bm{\tau}_L \\ \bm{\tau}_R\end{bmatrix} = \bm{M}\begin{bmatrix}\ddot{\bm{q}}_L \\ \ddot{\bm{q}}_R\end{bmatrix} + \bm{h} - \bm{J}_c^T\,\boldsymbol{\lambda}_{\text{grip}} \tag{31}\]
This gives us 6 equations (three for the left arm, three for the right arm).
The unknowns are:
- \(\bm{\tau}_L \in \mathbb{R}^3\) (3 left-arm muscle torques)
- \(\bm{\tau}_R \in \mathbb{R}^3\) (3 right-arm muscle torques)
- \(\boldsymbol{\lambda}_{\text{grip}} \in \mathbb{R}^3\) (3 components of grip force)
Total: \(3 + 3 + 3 = 9\) unknowns, but only 6 equations.
Suppose the constraint forces have been determined from a dynamic model plus auxiliary measurements or assumptions. The kinematic compatibility condition is: \[ \bm{J}_c\,\ddot{\bm{q}} + \dot{\bm{J}}_c\,\dot{\bm{q}} = \bm{0} \tag{32}\]
Now, from the equation of motion: \[ \begin{bmatrix}\bm{\tau}_L \\ \bm{\tau}_R\end{bmatrix} = \bm{M}\begin{bmatrix}\ddot{\bm{q}}_L \\ \ddot{\bm{q}}_R\end{bmatrix} + \bm{h} - \bm{J}_c^T\,\boldsymbol{\lambda}_{\text{grip}} \tag{33}\]
The right-hand side is known. Call it \(\bm{r} = \bm{M}\begin{bmatrix}\ddot{\bm{q}}_L \\ \ddot{\bm{q}}_R\end{bmatrix} + \bm{h} - \bm{J}_c^T\,\boldsymbol{\lambda}_{\text{grip}}\).
We need to find 6 muscle torques from this one 6-dimensional vector \(\bm{r}\). But \(\bm{r}\) contains only the net force on the arms. If the left arm pushes on the club with torque \(\boldsymbol{\tau}_L^{(0)}\) and the right arm pulls with torque \(\boldsymbol{\tau}_R^{(0)} = -\boldsymbol{\tau}_L^{(0)}\), the net effect is zero.
Any decomposition of \(\bm{r}\) as \(\bm{r} = \bm{\tau}_L + \bm{\tau}_R\) is valid. The physical motor commands of the left arm can be adjusted upward and the right arm downward (or vice versa) without changing the observed kinematics.
The left arm “load” and the right arm “load” are unobservable from kinematics alone.
In a system where both hands grip a common object: The total modeled generalized load (drift + control combined) is determined once the model and kinematics are specified: \[ \mathbf{F}_{\text{total}} = \mathbf{M}\,\ddot{\bm{q}} + \mathbf{C}\,\dot{\bm{q}} + \mathbf{g} \tag{34}\]
But this total can be decomposed between hands infinitely many ways: \[ \mathbf{F}_{\text{total}} = \mathbf{F}_L + \mathbf{F}_R \tag{35}\]
where any pair \((\mathbf{F}_L, \mathbf{F}_R)\) satisfying \(\mathbf{F}_L + \mathbf{F}_R = \mathbf{F}_{\text{total}}\) is equally valid kinematically.
Mathematically: the solution space is the affine subspace \[ \{ (\mathbf{F}_L, \mathbf{F}_R) : \mathbf{F}_L + \mathbf{F}_R = \mathbf{F}_{\text{total}} \} \tag{36}\]
This is a 3-dimensional affine subspace (codimension 3 in the 6-dimensional space of possible \((\mathbf{F}_L, \mathbf{F}_R)\) pairs).
Vaughan’s Resolution Strategy
(Vaughan 1981, 1983) proposed several strategies to resolve this ambiguity, historical precedents for the approaches above:
- Proportional load sharing: assume the load is distributed proportionally to the sum of kinetic and potential energies in each limb. This is a heuristic without strong physical justification.
- Optimization criterion: minimize a scalar objective such as \(J = \sum_i (\tau_i / \tau_{i,\text{max}})^2\) or \(J = \sum_i (\dot{E}_i)^2\) (metabolic cost), subject to the constraint \(\bm{F}_L + \bm{F}_R = \bm{F}_{\text{total}}\).
- Instrumented measurement: use force plates under each hand (or each foot for lower body) to directly measure the constraint forces, breaking the ambiguity.
The optimization approach has become standard in biomechanics, with the understanding that different objective functions (minimize muscle activation, minimize metabolic cost, minimize joint torques, etc.) will yield different load distributions — all of which are mechanically consistent with the measured motion.
Resolving Ambiguity: EMG, Optimization, and Instrumented Equipment
Three general approaches exist to resolve the ambiguity in inverse dynamics of parallel systems:
Approach 1: Electromyography (EMG)
Electromyography is the measurement of electrical activity in muscles. Electrodes (surface or intramuscular) detect the action potentials generated by motor units when a muscle contracts.
EMG signal amplitude is typically proportional to muscle activation level (recruitment) and contraction force (Zajac 1989; Delp et al. 2007).
EMG data can be used to constrain the solution: if EMG shows that the right arm is much more active than the left, the load distribution must favor the right arm.
Strengths: - Direct measurement of muscle activation (neural signal). - Relatively non-invasive (surface electrodes). - High temporal resolution (can capture millisecond-scale changes in activation).
Limitations: - EMG does not measure force directly—the relationship between EMG amplitude and force is nonlinear and depends on muscle length, velocity, fatigue state, and many other factors. - Cross-talk from nearby muscles can contaminate the signal. - Some deep muscles (e.g., deep core stabilizers) are difficult to record with surface electrodes. - EMG signal is noisy and requires filtering and processing, introducing artifacts.
In practice, EMG is most useful as a qualitative indicator (which muscles are active) rather than a quantitative measure of force.
Approach 2: Optimization
An optimization approach assumes the golfer distributes loads according to some implicit criterion (e.g., minimize energy, minimize fatigue, minimize peak joint torque). By applying this criterion, we can select a specific solution from the ambiguous solution space.
Minimize a scalar objective function: \[ J = \sum_i (\tau_i)^2 \quad \text{or} \quad J = \sum_i (\tau_i / \tau_{i,\text{max}})^2 \quad \text{or} \quad J = \sum_i |EMG_i| \tag{37}\]
Subject to: \[ \bm{F}_L + \bm{F}_R = \bm{F}_{\text{total}} \tag{38}\]
and any additional constraints from biomechanical limits or measured data (e.g., EMG).
A common choice is to minimize the sum of squared torques: \[ J = \sum_i \tau_i^2 \tag{39}\]
Subject to \(\bm{F}_L + \bm{F}_R = \bm{F}_{\text{total}}\).
This is a quadratic program with a linear constraint. The solution is the “minimum-norm” distribution: the distribution that achieves the required total force while minimizing the total joint torque magnitude.
The solution can be written explicitly using the pseudoinverse and null space projector: \[ \bm{F}_{\text{min-norm}} = \bm{J}_c^+ \bm{F}_{\text{total}} \tag{40}\]
Strengths: - Provides a deterministic solution. - Computationally straightforward (quadratic programs, convex optimization). - Results are often physiologically reasonable (minimum-norm solutions correlate with energy efficiency in some cases).
Limitations: - The choice of objective function is somewhat arbitrary. Different objectives yield different solutions. - Golfers may not actually optimize according to the chosen criterion—different golfers may use different strategies. - Optimization cannot capture individual variation in control strategy without additional data.
The optimization approach is best viewed as a useful heuristic for generating plausible load distributions, not as a definitive answer.
Approach 3: Instrumented Equipment (Grip Sensors, Force Plates)
The most direct approach: measure the constraint forces directly using sensors.
Force sensors mounted on or around the golf club grip can measure: - Left-hand grip force (magnitude and direction). - Right-hand grip force (magnitude and direction). - The combined wrench (resultant force and moment).
Modern grip sensors often use capacitive, resistive, or piezoelectric elements. Some are integrated into the grip itself; others are external measurement devices (like a six-axis load cell under the hands).
With grip force data, one important part of the ambiguity is constrained: \[ \bm{F}_L + \bm{F}_R = \bm{F}_{\text{measured}} \tag{41}\]
The measured grip wrench constrains the hand-club interaction, so model-conditioned net joint torques can be estimated with fewer load-sharing assumptions. Muscle-by-muscle decomposition still requires EMG, recruitment modeling, or another physiological prior.
Strengths: - Direct measurement of a boundary wrench that motion capture cannot provide. - Reduces load-sharing ambiguity in the grip/club interaction. - Can provide high-fidelity data after calibration.
Limitations: - Adds complexity and cost to the experimental setup. - Requires careful calibration. - Can affect the golfer’s natural swing (extra sensors on the club change its balance and feel). - Data collection requires specialized equipment and expertise.
Instrumented approaches are typically reserved for detailed research studies, not routine biomechanical screening.
Why Forward Works but Inverse Doesn’t: The Asymmetry
Here is one of the most subtle and important insights in mechanics: forward integration and inverse inference are not symmetric operations.
Forward integration is better posed. Specify the model, applied torques, contacts, and initial state, and the equations compute the skeleton’s motion while the regularity assumptions hold. Even with loops and constraints, a regular constrained system has a unique acceleration for the stated inputs.
Inverse inference is more fragile. Measure the skeleton’s motion and try to reverse-engineer the muscle forces that caused it. In an open chain, net joint torques can be estimated under a model; in a closed loop, load sharing and internal contact forces remain underdetermined without additional data. The same motion can result from many different combinations of muscle forces, as long as those combinations produce the same net effect.
The direction matters because causality flows forward (from forces to motion) but measurement flows backward (from motion to forces). These are not inverse operations in the sense of matrix inverse. They are genuinely different logical operations.
Forward Dynamics: Always Uniquely Solvable
Given applied torques \(\bm{u}(t)\) and an initial state \(\bm{q}(0), \dot{\bm{q}}(0)\), the constrained differential equations \[ \begin{bmatrix} \bm{M}(\bm{q}) & -\bm{J}_c^T \\ \bm{J}_c & \bm{0} \end{bmatrix} \begin{bmatrix} \ddot{\bm{q}} \\ \boldsymbol{\lambda} \end{bmatrix} = \begin{bmatrix} \bm{B}\bm{u} - \bm{h} \\ -\dot{\bm{J}}_c\dot{\bm{q}} \end{bmatrix} \tag{42}\]
has a unique solution at each regular time instant when \(\bm{M}\) is positive definite, \(\bm{J}_c\) has full row rank, and the contact mode is fixed. The motion \(\bm{q}(t)\) evolves deterministically forward in time until those assumptions change.
Why? The coefficient matrix on the left is the KKT matrix (Equation 8). Under the regularity assumptions above, it is nonsingular, so the system can be solved uniquely for \(\ddot{\bm{q}}\) and \(\boldsymbol{\lambda}\) at each instant.
Physically: if you know the model, contact mode, and applied loads, physics determines the skeleton’s acceleration. Ambiguity enters when those inputs are inferred from the motion rather than specified.
Inverse Dynamics: Not Uniquely Solvable
Given a measured trajectory \(\bm{q}(t), \dot{\bm{q}}(t), \ddot{\bm{q}}(t)\) in a system with loop constraints, the equation \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} = \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{h}(\bm{q},\dot{\bm{q}}) \tag{43}\]
does not have a unique solution when \(\mathrm{rank}(\bm{B}) < p\) or when internal constraint forces couple with applied torques.
The applied torques \(\bm{u}\) and constraint forces \(\boldsymbol{\lambda}\) lie in a solution set determined by the model, measurements, and auxiliary assumptions; the individual applied loads are not generally identifiable from kinematics alone.
Why? The measurement gives us \(n\) equations (one per coordinate). The unknowns are \(\bm{u}\) (applied) and \(\boldsymbol{\lambda}\) (constraint). If there are more unknowns than equations, the system is underdetermined.
Physically: knowing how the skeleton moved does not fully specify what the muscles were doing. The muscles’ effort can be distributed infinitely many ways among the different muscle groups, as long as their combined effect matches the observed motion.
What CAN We Determine? The Identifiable Subspace
Despite the ambiguity, inverse dynamics is not useless. Some quantities are directly measured, some are model-conditioned estimates, and some remain unidentifiable without additional data. It is important to know exactly which category each claim occupies.
The Identifiable Components
From motion capture data of a system with loop constraints, the following quantities are observable or estimable under stated assumptions:
Total generalized load (drift + control): The sum of modeled generalized forces and moments required to produce the measured acceleration. This is computed from the right-hand side of the equation of motion and is independent of how the load is distributed among individual actuators, provided the model and external loads are specified: \[ \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q}) \]
Constraint compatibility: The loop-closure equations determine which accelerations are kinematically admissible: \[ \bm{J}_c\,\ddot{\bm{q}} + \dot{\bm{J}}_c\,\dot{\bm{q}} = \bm{0} \] The multipliers \(\boldsymbol{\lambda}\) then require the dynamic model plus the applied-load assumptions; they are not measured directly by motion capture.
Net joint loads: The model-conditioned net load at a joint can be estimated from local dynamics: \[ \tau_{\text{joint}} = I\,\ddot{q} + \text{(local Coriolis and gravity terms)} \]
Total net moment about the center of mass: For multi-body systems, the total kinetic moment can be uniquely computed from kinematics.
The following table summarizes the evidentiary status of common quantities before stronger biomechanical language is used:
| Quantity | Primary evidence needed | Editorial status |
|---|---|---|
| Segment kinematics | Motion capture with filtering and coordinate definitions | Measured or estimated from data |
| Net joint loads | Kinematics, segment inertias, external loads, and contact model | Model-conditioned inverse-dynamics estimate |
| Grip/ground boundary wrench | Instrumented grip, force plate, or declared contact model | Measured when instrumented; otherwise assumed |
| Muscle forces and activation | EMG, musculoskeletal model, and recruitment criterion | Inferred, not identifiable from kinematics alone |
| Tissue stress or injury risk | Tissue geometry, material model, loading history, and validation | Speculative unless separately modeled and validated |
The following quantities are underdetermined:
- Individual muscle forces: How the total joint torque is distributed among the left vs. right hand, or among the flexor vs. extensor muscles, is not uniquely determined. This is the fundamental load-sharing ambiguity.
- Muscle activation patterns: Without EMG or other supplementary data, you cannot infer which specific muscles are active or how hard each is working.
- Internal stresses in tissues: High grip pressure vs. low grip pressure produce identical kinematics but different internal stresses. These internal stresses are invisible to motion capture.
At the joint level, inverse dynamics estimates a net load: \[ \tau_{\text{joint}} = M_{\text{joint}}\,\ddot{q}_{\text{joint}} + C_{\text{joint}}\,\dot{q}_{\text{joint}} + g_{\text{joint}} - \text{(constraint forces from children)} \tag{44}\]
This torque is the net torque at the joint—the sum of all forces and moments assigned to that joint by the model (muscles, ligaments, constraint forces, etc.). It is not a direct measurement; it depends on kinematic smoothing, segment inertial parameters, external forces, and the constraint model.
However, this net joint torque is not the same as muscle torque. The net torque includes: - Active muscle torques. - Passive tissue torques (ligaments, tendons, capsule). - Constraint forces.
All of these contribute to the net joint torque. To separate them requires additional information, such as EMG, passive tissue models, grip/force-plate measurements, or an explicitly justified optimization criterion.
Null Space Analysis
To characterize exactly which combinations of applied torques are invisible, compute the null space of the force distribution matrix:
\[ \mathcal{N} = \mathrm{null}\left(\bm{B}(\bm{q})\right) \cap \mathrm{null}\left(\bm{J}_c^T(\bm{q})\right)^\perp \tag{45}\]
Any torque vector in this null space produces zero observable force on the system. These are the “invisible” motor commands.
In the two-handed grip with identical left and right arms, suppose the constraint force is zero (the hands are not pushing against each other, just lightly touching).
Then the null space includes all vectors of the form: \[ \begin{bmatrix} \bm{\tau}_L \\ \bm{\tau}_R \end{bmatrix} = \begin{bmatrix} \bm{\delta} \\ -\bm{\delta} \end{bmatrix} \]
where \(\bm{\delta}\) is any 3-dimensional torque vector.
This represents the left arm pushing harder and the right arm pulling back by the same amount. The net effect on the club is zero. This entire family of motor commands is invisible to inverse dynamics.
The dimension of the null space is 3. The number of degrees of freedom is 3. So the unidentifiable portion spans half the space of possible motor commands!
Strategies for Coping With Underdetermined Inverse Dynamics
Optimization-Based Approaches
When inverse dynamics has no unique solution, the standard approach is to minimize some cost function subject to the equations of motion:
Given the underdetermined system \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T\,\boldsymbol{\lambda} = \bm{r}(\bm{q},\dot{\bm{q}},\ddot{\bm{q}}) \]
solve: \[ \min_{\bm{u}, \boldsymbol{\lambda}} \left\|\bm{u}\right\|^2 + \alpha\left\|\boldsymbol{\lambda}\right\|^2 \tag{46}\]
subject to the equations of motion. The solution is given by the Moore-Penrose pseudoinverse: \[ \bm{u}^* = \bm{B}^+(\bm{r} - \bm{J}_c^T\,\boldsymbol{\lambda}) \tag{47}\]
where \(\bm{B}^+ = (\bm{B}^T\bm{B})^{-1}\bm{B}^T\) is the left pseudoinverse of \(\bm{B}\).
This approach yields one selected solution, but it is a modeling choice, not a physical fact. The assumption that muscles minimize “effort” (measured as norm of torques) is a modeling assumption. It may or may not be accurate for a real golfer.
Different cost functions (e.g., minimizing total power, or metabolic cost) yield different answers. The “correct” answer depends on how the nervous system actually controls motion, which is an open neuroscience question.
EMG-Informed Methods
Instead of assuming muscles minimize effort, measure the muscles’ electrical activity directly:
Record electromyographic (EMG) signals from major muscles during the swing. These signals (motor unit action potentials) are correlated with muscle activation (though the exact relationship varies and depends on many factors including electrode placement, muscle depth, and contraction type (Zajac 1989; Delp et al. 2007)). Use these measurements as constraints on the inverse dynamics problem:
\[ \min_{\bm{u}} \left\|\bm{u} - \bm{u}_{\text{EMG}}\right\|^2 \]
subject to: \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T\,\boldsymbol{\lambda} = \bm{r} \]
where \(\bm{u}_{\text{EMG}}\) is derived from integrated and normalized EMG signals.
This approach provides additional information that kinematics alone cannot: the neuromuscular commands themselves. The solution is now constrained by physiology, not just mechanics.
EMG-informed methods are more realistic but also more labor-intensive. They require placing electrodes on many muscles, careful signal processing, and a valid model relating EMG to muscle force.
Instrumented Clubs and Force Sensors
The most direct way to break the underdetermined inverse problem is to measure constraint forces directly:
A golf club instrumented with a 6-DOF force-torque sensor at the grip can measure the forces and torques applied by both hands simultaneously.
Given these direct measurements of the grip forces, the inverse dynamics equations become: \[ \bm{B}(\bm{q})\,\bm{u} = \bm{r} - \bm{J}_c^T\,\boldsymbol{\lambda}_{\text{measured}} \]
where \(\boldsymbol{\lambda}_{\text{measured}}\) is known from the force sensor. Now, the system has fewer hidden loads. If the remaining generalized-actuator model is square and full rank, the net torque estimate can be determined for that model.
This is why instrumented clubs are a valuable research tool: they turn an otherwise hidden boundary wrench into measured data and reduce the assumptions needed for inverse dynamics.
Strain Gauge Instrumentation
A strain gauge is a thin resistive element that changes resistance when strained. By gluing strain gauges to the club shaft (or grip), researchers can measure the forces and moments acting on the club.
Strain gauges are typically arranged in a Wheatstone bridge configuration to maximize sensitivity and cancel out temperature-related drift:
\[ V_{\text{output}} = V_{\text{input}} \times \frac{R_1 R_3 - R_2 R_4}{(R_1 + R_2)(R_3 + R_4)} \tag{48}\]
When one strain gauge experiences tension (strain) and the opposite experiences compression, the output voltage is proportional to the strain.
Piezoelectric Force Sensors
Piezoelectric sensors generate an electrical signal when mechanically deformed. They are faster and more sensitive than strain gauges but typically require amplification.
Certain crystals (quartz, PZT ceramics) generate a voltage when stressed:
\[ \bm{V} = \bm{d} \cdot \bm{\sigma} \tag{49}\]
where \(\bm{d}\) is the piezoelectric coefficient and \(\bm{\sigma}\) is the applied stress.
Piezoelectric sensors are often arranged in a hexapod configuration (6 sensors, one for each DOF: 3 forces, 3 moments).
Two-Point Wrench Measurement
With force/moment data from multiple points, a biomechanist can compute the resultant wrench (total force and moment) acting on the club.
A wrench is a 6D vector combining force and moment:
\[ \mathcal{W} = \begin{bmatrix} \bm{F} \\ \bm{M} \end{bmatrix} \in \mathbb{R}^6 \tag{50}\]
If two independent grip points on the club have known wrenches \(\mathcal{W}_L\) and \(\mathcal{W}_R\), the total wrench is:
\[ \mathcal{W}_{\text{total}} = \mathcal{W}_L + \mathcal{W}_R \tag{51}\]
This directly measures the resultant constraint forces and resolves the ambiguity (at least in the grip forces).
Reducing the System: Cutting the Loop
Some research simplifies the problem by hand-modeling one limb as “driving” and others as “passive”:
A researcher models the golf swing by assuming the right arm (dominant, in a right-handed golfer) applies all the torque. The left arm is modeled as a passive link, responding to forces and torques applied through the grip.
Mathematically, this reduces the number of active DOF from 6 to 3 (the dominant arm’s joints). The constraint equations still hold (the grip constraint), but now the constraint forces are the only unknown applied through the non-dominant arm.
The inverse problem becomes determined.
However, this assumption—that the left arm is passive—is a modeling choice. In reality, a skilled golfer uses both arms actively, and their relative contributions vary. The assumption may be reasonable as a first approximation but becomes inaccurate if the golfer’s strategy shifts.
Lower Body Inverse Dynamics: GRF and Feet
The lower body biomechanics can be analyzed using the same inverse dynamics framework, but with the advantage that force plate data provides a known boundary condition.
Force Plate Boundary Condition
A force plate measures the total force and moment exerted by the ground on the golfer’s feet. This known external wrench supplies an important boundary condition; it improves identifiability of lower-limb net joint loads but does not by itself determine individual muscle forces or all internal contact loads.
With force plate data:
- The distal boundary condition (force/moment at the foot) is known (measured by force plate).
- The proximal boundary condition (forces at the hip, if we’re analyzing the leg only) is unknown but can be computed.
- The leg kinematics is measured.
- RNEA can be applied to estimate model-conditioned net joint torques.
This is in contrast to the upper body, where the distal boundary condition at the club and hands is often only partially measured. The club’s acceleration may be known, but grip forces, aerodynamic drag, and impact loads still need instrumentation or modeling assumptions.
Sequential Ankle-Knee-Hip Computation
Lower body inverse dynamics is computed sequentially, distal to proximal:
- Ankle: apply RNEA using the foot’s acceleration (from kinematics) and the foot’s force/moment (from force plate). Solve for ankle joint torque.
- Knee: using the ankle torque and lower leg’s acceleration, compute the forces and moments at the knee. Solve for knee joint torque.
- Hip: using the knee torque and thigh’s acceleration, compute the forces and moments at the hip. Solve for hip joint torque.
Example: Lower Body Inverse Dynamics
A 100 kg golfer during the downswing:
- Force plate measures vertical GRF: \(F_z = 1400\) N (1.4 BW).
- Force plate measures free moment: \(M_z = 80\) N·m.
- Motion capture shows hip acceleration: \(\ddot{\theta}_{\text{hip}} = 200\) rad/s².
- Hip inertia: \(I_{\text{hip}} = 2\) kg·m².
From kinematics and the force plate data, we can compute the hip torque that produced the observed acceleration.
If the ground torque is \(M_z = 80\) N·m (an illustrative value chosen from the scale of reported force-plate and inverse-dynamics golf-swing measurements, not a universal benchmark) (Nesbit 2005), and this is applied at the feet (roughly 0.2 m from the pelvis), the resulting pelvis torque is approximately \(\tau_{\text{pelvis}} = M_z / I_{\text{hip}} \times\) (accounting for moment arms and mass distribution).
This is a better-conditioned inverse-dynamics problem because the force plate provides the boundary condition, but the numerical value is still model-dependent.
Ground Reaction Torque: Initiating Pelvis Rotation
The ground reaction torque (free moment) \(M_z\) is the torque applied by the ground about the vertical axis. It can be an important contributor to pelvis rotation in models that include force-plate boundary conditions, but its interpretation depends on stance, foot contact, segment inertias, and the chosen pelvis coordinate convention.
Computation of Ground Reaction Torque
If force plate data is available, \(M_z\) is directly measured. If not, it can be approximated from the offset of the vertical ground reaction force from the body’s center of rotation.
If the vertical GRF \(F_z\) is applied at a horizontal offset \(\bm{r}\) from the pelvis center, the resulting torque is:
\[ M_z = \bm{r} \times F_z \tag{52}\]
More precisely, if the center of pressure is at horizontal position \((x_{\text{COP}}, y_{\text{COP}})\) and the pelvis center is at \((x_p, y_p)\), then:
\[ M_z = (x_{\text{COP}} - x_p) \times F_z^y - (y_{\text{COP}} - y_p) \times F_z^x \tag{53}\]
where \(F_z^x\) and \(F_z^y\) are the horizontal components of the GRF vector.
Role in Downswing Initiation
During the transition from backswing to downswing, the pelvis begins to accelerate. This acceleration is driven by:
- The ground reaction torque \(M_z\) (from the force plate).
- The hip muscle torques (computed from inverse dynamics).
The relative contributions vary by golfer, stance, coordinate convention, and model decomposition. In force-plate-supported inverse-dynamics models, ground-reaction and free-moment terms can represent a substantial share of the pelvis acceleration budget, but the exact percentage should be reported from the fitted model rather than treated as a fixed value (Nesbit 2005).
Forward and Backward Torque Asymmetry
An interesting feature of ground reaction torque is the asymmetry between forward (toward the target) and backward (away from target) torques.
During the downswing, the ground typically exerts a torque that accelerates the pelvis (positive torque in the direction of swing). This is mechanically assisting the swing.
During the follow-through, the ground may exert a braking torque (negative torque opposing pelvis rotation) as the golfer’s feet push off the ground to stabilize balance.
This asymmetry reveals the “ground-up” power transfer story: the ground actively powers the downswing but passively decelerates the follow-through.
Implications for the Zero-Torque Counterfactual Framework
The forward zero-torque counterfactual (ZTCF) asks a different question than inverse dynamics: What motion does the declared effective plant produce from this state when the applied generalized-control channel is set to zero? It does not ask what individual muscles did.
This is a forward problem, not an inverse problem. And for forward problems, the parallel loop is not an obstacle—it is fully handled by the laws of physics.
ZTCF as Forward Dynamics
Recall the ZTCF governing equation: \[ \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{C}(\bm{q},\dot{\bm{q}})\,\dot{\bm{q}} + \bm{g}(\bm{q}) = \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} \tag{54}\]
This is forward dynamics with \(\bm{u} = \bm{0}\) (the applied torques are set to zero). The only forces acting are constraint forces and gravity.
The ZTCF trajectory is a forward integration problem. Given initial conditions \(\bm{q}(0), \dot{\bm{q}}(0)\), a fixed contact mode, and the constraint equations \(\bm{\Phi}(\bm{q}) = \bm{0}\), the motion \(\bm{q}(t)\) is determined by integrating the constrained EOM forward while the regularity assumptions hold.
Even though the system has parallel loops and redundant actuators, the forward integration is well-posed under the stated assumptions. The KKT matrix (Equation 8) is nonsingular at each regular time step, so the constraint forces \(\boldsymbol{\lambda}\) and accelerations \(\ddot{\bm{q}}\) are determined by the model.
The ZTCF trajectory is the model-conditioned solution to the zero-control problem. There is no muscle load-sharing ambiguity, but there is still model, contact, and parameter dependence.
This is the practical advantage of the ZTCF approach. It avoids muscle load-sharing ambiguity by posing a forward problem, while remaining sensitive to the chosen model, contact mode, regularity assumptions, and parameter values.
Comparing Estimation Approaches
Inverse Dynamics Approach:
- Question: What torques caused this measured motion?
- Method: Measure \(\bm{q}(t)\), differentiate to get \(\ddot{\bm{q}}(t)\), solve backward.
- In parallel systems: Underdetermined. No unique answer without additional assumptions (EMG, optimization, instrumentation).
- Reliability: Fragile. Depends heavily on modeling assumptions and measurement noise.
Forward Simulation Approach (ZTCF):
- Question: What motion occurs when the declared applied generalized-control channel is set to zero?
- Method: Set \(\bm{u} = \bm{0}\), integrate the constrained EOM forward from \(\bm{q}(0), \dot{\bm{q}}(0)\).
- In parallel systems: Well-determined under fixed model, contact, and regularity assumptions.
- Reliability: Avoids load-sharing ambiguity, but still depends on the model and contact assumptions.
The Trade-Off: Inverse dynamics estimates net generalized loads compatible with measured motion and a declared model; it does not uniquely recover muscle commands. Forward simulation answers a different model-conditioned question under zero declared applied control. The ZTCF framework avoids muscle load-sharing ambiguity but remains sensitive to the plant, contact mode, parameters, and initial state.
The Condition Number and Near-Singular Configurations
Even for open chains, inverse dynamics becomes numerically unreliable in certain configurations. This is a separate but related issue.
Condition Number of the Inverse
For an open-chain system with \(n\) joints and \(n\) actuators, the inverse dynamics problem is: \[ \bm{u} = \bm{M}(\bm{q})\,\ddot{\bm{q}} + \bm{h}(\bm{q},\dot{\bm{q}}) \tag{55}\]
Even though the mass matrix \(\bm{M}\) is always invertible, it may be nearly singular in some configurations. The condition number measures this:
The condition number of a matrix \(\bm{M}\) is defined as: \[ \kappa(\bm{M}) = \|\bm{M}\| \cdot \|\bm{M}^{-1}\| \tag{56}\]
A condition number of 1 means the matrix is perfectly conditioned. A large condition number means the matrix is nearly singular and difficult to invert numerically.
For inverse dynamics, a high condition number means small errors in measured \(\ddot{\bm{q}}\) (from noise or differentiation errors) lead to large errors in computed \(\bm{u}\).
Singular Configurations
Certain body configurations have high condition numbers:
Consider a simple two-link arm (shoulder and elbow). When the arm is fully extended, the Jacobian becomes singular—the wrist can no longer move in all directions. The mass matrix at this configuration has a very high condition number.
If a motion capture system measures the arm near full extension and tries to compute the inverse dynamics, small noise in the acceleration measurement can lead to wildly oscillating torque estimates.
This is not a fundamental ambiguity (the system is still open-chain), but rather a numerical ill-conditioning. It is still solvable in principle, but requires careful filtering and regularization in practice.
There are two distinct failure modes for inverse dynamics:
Ill-conditioning: The system is square but nearly singular. Mathematically solvable, but numerically unstable. Occurs in open chains at singular configurations.
Underdetermined: The system is rectangular (more unknowns than equations). No unique solution exists, not even in principle. Occurs in parallel mechanisms.
The ZTCF framework avoids the load-sharing ambiguity, but it does not remove model-conditioning. Forward integration is well determined when the KKT matrix remains nonsingular and the contact mode is fixed; it can still become ill-conditioned near singular configurations or unsupported contact switches.
The Broader Lesson: When to Trust Inverse Dynamics
In biomechanics and robotics research, inverse dynamics is used constantly. This section provides guidance on when it is reliable and when it should be treated with skepticism.
Trust as Model-Conditioned Net Loads: Open Serial Chains
For a truly open-chain system (single arm reaching, a leg during swing phase when the foot is in the air), inverse dynamics can be robust at the net-joint-load level:
If the system is an open kinematic chain with independent coordinates, known external loads, and a configuration that is not near a singularity, inverse dynamics is:
- Mathematically well determined at the net-load level: One generalized-load solution for the stated model.
- Numerically stable: Small errors in kinematics produce small errors in inferred torques.
- Physically interpretable with caveats: The computed torques estimate net joint loading; muscle activity still requires a recruitment model or measurements.
Examples: a single arm reaching; a single leg during the swing phase of walking; a finger flexing in isolation.
Trust the Totals, Not the Details: Parallel Systems
For parallel systems (two-handed grip, both feet planted, spine-girdle complex), inverse dynamics gives reliable aggregated information but unreliable decomposed information:
In parallel systems, you can use the following aggregates when the relevant model and measurement assumptions are stated:
- Total kinetic energy and power flow into the system.
- Net joint moments (summed across all muscles at a joint).
- Boundary or constraint loads when they are measured directly or inferred from a declared contact model.
- Center-of-mass acceleration and angular momentum.
You cannot trust:
- Individual muscle forces in redundant systems.
- Decomposition of torque between left and right limbs.
- Internal shear forces in a twisted spine.
- Any quantity that depends on separating the null space.
Example: In a two-handed golf swing, you can reliably compute the total torque applied to the club. But you cannot reliably compute the individual contributions of the left and right arms without additional measurements (like grip force sensors).
Don’t Trust Without Scrutiny: Published Claims
When reading biomechanics papers that claim to have computed individual joint torques in a closed-loop system (e.g., “the left hip abductor contributed 45 N·m during push-off”), be skeptical. Look for:
Unexplained assumptions: Did the authors assume one limb was “dominant” or “driving”? This is a modeling choice that should be stated explicitly.
No null space analysis: Did they compute or discuss the null space of their system? If not, they may not have checked whether their solution is unique.
Optimization without justification: If they used a cost function (minimize effort, minimize power, etc.), what is the biological justification? Different cost functions give different answers.
No EMG validation: Do their computed torques agree with EMG measurements? If not, the inferred muscle activity may be wrong.
Claimed precision without uncertainty: If a paper reports torques to the nearest Newton-meter without confidence intervals or sensitivity analysis, be suspicious. Inverse dynamics solutions are often sensitive to small changes in assumptions.
The ZTCF framework (Chapter 6) asks: “What motion does the declared effective plant produce from this state when applied generalized control is zero?” It does not specify muscle activation.
This is a forward dynamics problem: given a model, initial state, contact assumptions, and drift forces, integrate forward to predict the motion.
Forward dynamics is well determined even in parallel systems when the constrained KKT system remains regular (recall Equation 42). Therefore, ZTCF avoids muscle load-sharing ambiguity, but it remains model- and parameter-dependent.
The ZTCF result is the baseline motion that the declared drift field would produce. The difference from achieved motion is a model-conditioned residual, not a unique muscle-control estimate.
By computing this perturbation directly (rather than trying to invert the forces), the ZTCF framework sidesteps the underdetermined inverse problem entirely.
Consider the golf swing with a two-handed grip:
- Compute drift terms: From the measured kinematics, model parameters, and contact assumptions, compute gravity, Coriolis, and centrifugal terms.
- Forward dynamics with drift only: Integrate the equation of motion with the declared applied generalized-control channel set to zero: \[ \bm{M}\,\ddot{\bm{q}} = -\bm{C}\,\dot{\bm{q}} - \bm{g} + \text{(constraint forces)} \tag{57}\] This is a forward problem (forces given, motion sought). It is well-determined.
- ZTCF prediction: The solution is the motion that drift alone would produce, subject to the constraints.
- Control input: The muscle torques are whatever is needed to produce the actual motion instead of the ZTCF motion: \[ \bm{u}_{\text{control}} = \bm{M}(\ddot{\bm{q}}_{\text{actual}} - \ddot{\bm{q}}_{\text{ZTCF}}) + \text{(cross terms)} \tag{58}\] This control term is a model-conditioned net control estimate, not a muscle-by-muscle measurement.
By framing the baseline as forward dynamics (ZTCF) rather than inverse dynamics, we avoid the muscle load-sharing ambiguity while preserving a clear record of model assumptions.
Synthesis: What Inverse Dynamics Can and Cannot Tell You
What inverse dynamics CAN estimate when the model and external loads are stated: 1. The model-conditioned net force and moment assigned to each joint. 2. Constraint loads when the relevant boundary conditions or sensors are available. 3. The ground reaction force and torque when force plates are available. 4. The sequential dynamics of the lower body (ankle → knee → hip, with force plate boundary condition).
What inverse dynamics CANNOT tell you (without additional information): 1. The distribution of load between the two hands or two feet (in a parallel system). 2. Individual muscle forces or activation patterns (without EMG or optimization assumptions). 3. Internal stresses in tissues (without models of passive tissue properties). 4. Which of multiple kinematically equivalent motor strategies the golfer is actually using.
How to break the ambiguity: 1. Add force/moment sensors at the grip (instrumented clubs). 2. Add EMG sensors to the relevant muscles. 3. Apply an optimization criterion (e.g., minimize metabolic cost). 4. Use sport-specific priors only when they are stated as assumptions and checked against data.
Summary: Why the ZTCF Is More Robust
The fundamental asymmetry: Forward dynamics is well determined for a stated model and applied loads. Inverse dynamics is often underdetermined (given motion, find forces) when the system has loops and redundant actuators.
Why: An open chain has \(n\) DOF and \(n\) actuators. The mass matrix is square and invertible. A parallel mechanism has \(n - k\) independent DOF but still has \(p\) actuators (often \(p > n - k\)). The force balance equation becomes rectangular, with more unknowns than equations.
What remains observable: Kinematics, center-of-mass motion, aggregate power estimates, and model-conditioned net loads can be computed when the model and external loads are stated. Individual muscle contributions and internal load sharing in redundant systems are not identified by motion capture alone.
The ZTCF advantage: By asking “what motion occurs with zero applied torque?” instead of “what torques caused this motion?”, the ZTCF poses a forward problem. The trajectory is no longer affected by muscle load-sharing ambiguity, although it remains dependent on the model, parameters, and contact assumptions.
Practical implication: The ZTCF baseline trajectory can be computed once the model is specified. Deviations from the ZTCF trajectory estimate the net effect of applied control under that model. This is more robust than trying to infer individual muscle contributions directly, but it is not independent of the model.
In Plain Language: Knowing how a golfer swings does not uniquely specify what every muscle was doing. A ZTCF calculation asks a different, forward question: what would this model do if applied torques were set to zero? The difference between the actual swing and that baseline estimates net control without decomposing it into individual muscles.
Chapter Exercises
- Open vs. Closed Chain (Conceptual)
Consider three systems:
- A single arm reaching to touch a table (open chain).
- A human standing upright with both feet on the ground (closed chain via ground contact).
- A robotic parallel manipulator with six actuators controlling a platform in 3D space (closed chain by design).
For each system, state whether inverse dynamics is well-determined. If underdetermined, describe what information would make the problem determined again.
- The Two-Arm Grip (Calculation)
A simplified model of two identical robotic arms gripping a club:
- Each arm has 2 DOF (shoulder abduction and elbow flexion), so \(n_{\text{total}} = 4\).
- The grip constraint is 1-dimensional (the hands must maintain a fixed distance).
- The system is therefore \(4 - 1 = 3\) independent DOF.
The measured accelerations are \(\ddot{q}_L = 1.0\) rad/s\(^2\) and \(\ddot{q}_R = 0.5\) rad/s\(^2\) at a particular instant. The required generalized force (from kinematics) is \(r = 10\) N·m.
How many unknowns are there? (Applied torques \(\tau_L, \tau_R\) and constraint multiplier \(\lambda\).)
How many equations?
Is the system determined, underdetermined, or overdetermined?
Without additional information, can you compute individual arm torques? Why or why not?
Null Space in Redundant Systems (Theory)
Consider a system where the force balance is: \[ \bm{B}(\bm{q})\,\bm{u} + \bm{J}_c^T(\bm{q})\,\boldsymbol{\lambda} = \bm{r} \]
where \(\bm{B} \in \mathbb{R}^{3 \times 4}\) (3 equations, 4 applied torques) and \(\bm{J}_c^T \in \mathbb{R}^{3 \times 2}\) (2 constraint forces).
What is the total number of unknowns?
What is the dimension of the underdetermined system (number of unknowns minus equations)?
If \(\bm{B}\) has full row rank, what is the dimension of the null space of \(\bm{B}\)?
ZTCF as Forward Dynamics (Conceptual)
Explain in one paragraph why the ZTCF (setting \(\bm{u} = \bm{0}\)) is more robust to parallel loop constraints than inverse dynamics. Use the terms “forward problem,” “well-determined,” and “KKT matrix” in your explanation.
- Conditioning of Inverse Dynamics (Numerical Thought Experiment)
Suppose an open-chain arm has a mass matrix \[ \bm{M}(q) = \begin{bmatrix} 1 & 0 \\ 0 & \epsilon \end{bmatrix} \]
where \(\epsilon\) is small (near-singular configuration).
Compute \(\bm{M}^{-1}\).
What is \(\kappa(\bm{M})\), the condition number, as a function of \(\epsilon\)?
If acceleration measurements have an error of \(\pm 0.1\) rad/s\(^2\), how large is the error in inferred torques when \(\epsilon = 0.1\)? When \(\epsilon = 0.01\)?
Explain why small measurement errors lead to large errors in computed torques.
Load Sharing in Golf (Application)
A golfer grips a 5-iron with both hands. During the downswing, the club accelerates at \(\ddot{\theta}_{\text{club}} = 500\) rad/s\(^2\).
The measured acceleration tells you the total generalized force required: \(r = I\,\ddot{\theta} = 100\) N·m (where \(I\) is the club’s moment of inertia about the grip point).
This \(r = 100\) N·m is the sum of torques from the left hand and right hand: \(\tau_L + \tau_R = 100\) N·m.
Without additional information, what are all possible combinations of \((\tau_L, \tau_R)\) that satisfy this equation?
If you additionally measure with grip sensors that \(\tau_R = 60\) N·m, what is \(\tau_L\)?
Explain why EMG signals or grip sensors are necessary to uniquely determine individual arm contributions.
Constraint Forces vs. Applied Torques (Theoretical)
In a parallel system with loop constraints:
Explain why constraint compatibility can be checked from kinematics, while the corresponding constraint multipliers require a dynamic model plus applied-load assumptions or additional measurements.
Which equations constrain the admissible accelerations, and which equations introduce the multipliers?
Why can a change in applied torques be hidden in the null space without changing the observed kinematics?
Red Flag Detection (Reading Critically)
You read a biomechanics paper that claims: “We computed that the left erector spinae muscle group generated 80 N·m of extension torque during the golf downswing, while the right erector spinae generated 60 N·m.”
Given that the spine is a parallel mechanism with multiple muscles on each side and closed kinematic loops, list at least three pieces of missing information that would make you skeptical of these numbers.