explainer
Wrenches: combine force, moment, and power across frames
Calculate a force's moment about a chosen origin, include a free couple, and transform a moment-first wrench between frames. Use a worked planar load to check the inverse-transpose rule and power invariance.
What you will learn
- Calculate the moment of a point force about a specified origin.
- Distinguish a free couple, a point force, and a zero wrench.
- Transform a moment-first wrench with a consistent frame convention.
- Check power using a wrench and twist expressed in matching coordinates.
- Explain the sign difference between external and robot-applied contact loads.
Before you start
A wrist sensor can report a different moment after you move its measurement into a tool frame. The physical load can stay exactly the same. The moment changes because the new frame measures it about a different origin.
A wrench combines force and moment into one six-component description of a rigid body's applied load. This lesson builds that description from a point force and a free couple, changes its reference frame, and checks the result through mechanical power.
State the force and its reference origin
Let a force f act at position q, measured from a chosen origin. Its moment about that origin is q × f. With q in meters and f in newtons, the moment has units of newton-meters, written N·m.
The cross product determines both magnitude and direction. Its magnitude is ‖q‖‖f‖sin α, where α is the angle between q and f. Equivalently, use the force magnitude times the perpendicular distance from the origin to the force's line of action.
In a right-handed x-y plane, +z points out of the page. The signed moment is:
m_z = qₓfᵧ − qᵧfₓ
Positive m_z corresponds to a counterclockwise moment; negative m_z corresponds to clockwise. This sign describes the load's rotational tendency. The body's actual acceleration also depends on its inertia, constraints, and other loads.
A point force's moment depends on the reference origin. Sliding its application point along its own line of action preserves the moment: (q + λf) × f = q × f, with λ chosen so λf has length units. Moving the force off that line generally changes the moment.
Add a free couple
Two equal and opposite forces on distinct parallel lines can produce zero net force and a nonzero moment. This load is a couple. For forces f and −f at q₁ and q₂, their combined moment is:
c = q₁ × f + q₂ × (−f) = (q₁ − q₂) × f.
Changing the reference origin shifts both q₁ and q₂ equally, so their difference stays the same. A couple's moment is therefore independent of the reference origin in an ideal rigid-body model. Its vector coordinates still rotate when the coordinate axes rotate. The University of Illinois Mechanics Reference explains force moments and couples.
For example, an upward 2 N force at (1, 0) m and a downward 2 N force at (0, 0) m give zero net force and a +2 N·m couple. The couple remains +2 N·m about every planar reference origin.
With one point force and an additional free couple c, the total moment is:
m = q × f + c
For several applied forces, sum their forces and moments about the same origin. The resulting wrench records their combined effect on rigid-body motion. It does not retain the full contact distribution or predict local stress and deformation.
Pack the wrench and name its frame
We use moment-first column coordinates:
F = (m, f), V = (ω, v)
The first three entries of F use N·m; the last three use N. The matching twist is angular first. Some software uses a different ordering, so the array length alone does not identify a convention.
Choose a transform T_ab = [R, p; 0, 1] that maps coordinates from frame b into frame a:
q_a = Rq_b + p.
Here R is a proper rotation, and p is the position of origin b expressed in a. The moments m_a and m_b refer to their respective frame origins. The forces f_a and f_b describe the same physical force in different axes.
The experiment uses the planar restriction F = (m_z, f_x, f_y) and V = (ω_z, v_x, v_y). Both frames share a +z direction, while b can rotate within the plane and use a different origin. All changes describe one instantaneous physical configuration.
Transform force and moment together
Force components rotate as f_a = Rf_b. Substitute q_a = Rq_b + p into the moment equation and rotate the free couple as c_a = Rc_b. Because proper rotations preserve cross products:
m_a = (Rq_b + p) × Rf_b + Rc_b = Rm_b + p × f_a.
This gives both directions of the coordinate change:
f_a = Rf_b, m_a = Rm_b + p × f_a
f_b = Rᵀf_a, m_b = Rᵀ(m_a − p × f_a)
The extra cross product accounts for the changed moment arm. Rotating m and f separately works when the origins coincide. It can miss a moment when the origin moves.
The adjoint lesson gives V_a = Ad_T V_b for T = T_ab. The corresponding wrench rule uses the inverse transpose:
F_a = Ad_T⁻ᵀ F_b, F_b = Ad_Tᵀ F_a
Here Ad_T⁻ᵀ means (Ad_T⁻¹)ᵀ. It is also Ad_(T⁻¹)ᵀ. These operations act on the adjoint matrix; the six-component wrench does not multiply directly by the four-by-four pose T.
Modern Robotics derives the wrench transformation from its pairing with a twist. That pairing provides a practical check on the signs and transpose.
Pair a wrench with its matching twist
For an applied force f, a point velocity q̇, a free couple c, and angular velocity ω, the delivered mechanical power is P = f · q̇ + c · ω. Rigid motion gives q̇ = ω × q + v. Substituting and rearranging the scalar triple product yields:
P = f · q̇ + c · ω
P = (q × f + c) · ω + f · v = FᵀV
Both terms have power units: N·m times rad/s and N times m/s produce watts, with radians dimensionless. The twist's v is its velocity-field component at the chosen origin. It generally differs from q̇ at the force point.
Using V_a = Ad_T V_b gives F_aᵀV_a = F_aᵀAd_T V_b = (Ad_TᵀF_a)ᵀV_b. Thus the wrench rule above preserves F_aᵀV_a = F_bᵀV_b for every twist. Both descriptions refer to the same load and motion; mixing F_a with V_b has no such guarantee.
This is coordinate invariance for a matching physical wrench and twist. Changing the physical motion can change power. Positive power means the applied load supplies mechanical power to the chosen motion; negative power means it removes power.
The raw Euclidean norm of the six wrench coordinates has no comparable guarantee. Moving the origin can change the moment, and an unweighted sum of squared N and N·m components mixes units. A force vector's length remains unchanged under rotation; that narrower fact does not make the combined wrench norm invariant under a general frame change.
Work through two descriptions of one load
Apply f_a = (2, 1) N at q_a = (1, 1) m, with c_z = 0.5 N·m. The moment about a is:
m_a = 1 × 1 − 1 × 2 + 0.5 = −0.5 N·m.
Place origin b at p = (1, 0) m and rotate its axes +90° from a. Since Rᵀ(x, y) = (y, −x) for this rotation:
f_b = (1, −2) N, q_b = Rᵀ(q_a − p) = (1, 0) m.
The direct moment calculation gives m_b = 1 × (−2) − 0 × 1 + 0.5 = −1.5 N·m. The coordinate rule agrees: m_b = m_a − (pₓfᵧ − pᵧfₓ) = −0.5 − 1 = −1.5. A planar rotation leaves the scalar z component unchanged.
Choose the hypothetical instantaneous twist V_a = (1, 0.5, −0.25), with angular rate in rad/s and linear entries in m/s. The velocity field at origin b is v_a + ω × p = (0.5, 0.75). Rotating that vector into b gives:
V_b = (1, 0.75, −0.5).
Now check power in both frames:
P_a = (−0.5)(1) + (2)(0.5) + (1)(−0.25) = 0.25 W.
P_b = (−1.5)(1) + (1)(0.75) + (−2)(−0.5) = 0.25 W.
At the force point, q̇_a = (−0.5, 0.75) m/s. The force supplies 2(−0.5) + 1(0.75) = −0.25 W, while the couple supplies 0.5 × 1 = 0.5 W. Their total is again 0.25 W.
Move the reference frame and compare power
The force point and V_a stay fixed. Four sliders control frame b and the free couple; a selector changes the applied force. The diagram shows the physical points in frame a, while the readouts also express them in b.
Choose Rotate coordinates only to keep the origins together. The force components change, while the planar moment stays the same. Choose Origin at force point to make q_b zero. The point force then contributes zero moment about b, leaving exactly the free couple.
Choose Pure couple to remove the point force while retaining a moment. Moving the origin has no effect on that moment. Zero wrench removes both contributions. Zero force alone does not establish zero wrench.
The Opposite applied load preset reverses both the point force and the free couple while retaining the chosen motion. Power changes from +0.25 W to −0.25 W. Frame changes preserve the power of one load; reversing the physical load changes it.
The amber arrow uses its own stated display scale. Its endpoint does not locate another material point. The free couple appears numerically because it has no unique application location in this rigid-body model. The experiment compares coordinates and instantaneous power; it does not simulate acceleration under the load.
Keep applied-load signs and model limits explicit
A force-torque measurement needs its axes, moment reference point, units, component order, and applied-load sign. Transforming a wrist measurement to a tool tip requires the origin-shift term as well as the rotation. Sensor calibration and the choice of which body receives the load are separate parts of that interpretation.
Our F describes a load applied to the body. At a contact, the robot's load on the environment is the opposite of the environment's load on the robot, when both use matching axes and a common moment reference point.
For an ideal static robot with other loads omitted, an external wrench F_ext contributes generalized joint load JᵀF_ext. Balancing it requires τ_act = −JᵀF_ext. If F_out = −F_ext instead denotes the wrench the robot applies outward, the same statement becomes τ_act = JᵀF_out. Modern Robotics states its balancing-wrench convention explicitly.
The robot statics lesson develops that balance. The space and body Jacobians lesson shows how to choose a matching velocity map. Using a body-frame wrench with a space-frame Jacobian generally breaks the pairing.
The same conventions matter when training a model to estimate contact loads. Labels from different sensor origins can contain different moments for the same physical load. A loss that combines force and moment errors needs explicit unit-aware weighting or a chosen length scale. A resultant wrench also leaves the local pressure and stress distribution unspecified.
Reproduce the calculation in Python
This Python 3 example uses the standard library. It transforms the load, checks the moment directly at the transformed point, and compares three power calculations. Printed planar wrenches use (m_z, f_x, f_y); printed twists use (ω_z, v_x, v_y).
from math import cos, sin, pi
def rotate(angle, xy):
c, s = cos(angle), sin(angle)
x, y = xy
return (c*x - s*y, s*x + c*y)
def cross2(q, force):
return q[0]*force[1] - q[1]*force[0]
def dot(a, b):
return sum(x*y for x, y in zip(a, b))
def formatted(values):
return '(' + ', '.join(
f'{0.0 if abs(x) < 0.5e-6 else x:.6f}' for x in values
) + ')'
q_a, f_a, couple = (1.0, 1.0), (2.0, 1.0), 0.5
p, angle = (1.0, 0.0), pi / 2
omega, v_a = 1.0, (0.5, -0.25)
m_a = cross2(q_a, f_a) + couple
f_b = rotate(-angle, f_a)
q_b = rotate(-angle, (q_a[0]-p[0], q_a[1]-p[1]))
m_b = m_a - cross2(p, f_a)
assert abs(m_b - (cross2(q_b, f_b) + couple)) < 1e-12
v_b = rotate(-angle, (v_a[0]-omega*p[1], v_a[1]+omega*p[0]))
power_a = m_a*omega + dot(f_a, v_a)
power_b = m_b*omega + dot(f_b, v_b)
q_dot = (v_a[0]-omega*q_a[1], v_a[1]+omega*q_a[0])
point_power = dot(f_a, q_dot) + couple*omega
assert abs(power_a - power_b) < 1e-12
assert abs(power_a - point_power) < 1e-12
print('Wrench a:', formatted((m_a, *f_a)))
print('Wrench b:', formatted((m_b, *f_b)))
print('Point in b:', formatted(q_b))
print('Twist b:', formatted((omega, *v_b)))
print(f'Power in a: {power_a:.6f} W')
print(f'Power in b: {power_b:.6f} W')
print(f'Point force plus couple: {point_power:.6f} W')
Expected output:
Wrench a: (-0.500000, 2.000000, 1.000000)
Wrench b: (-1.500000, 1.000000, -2.000000)
Point in b: (1.000000, 0.000000)
Twist b: (1.000000, 0.750000, -0.500000)
Power in a: 0.250000 W
Power in b: 0.250000 W
Point force plus couple: 0.250000 W
Change p or angle while keeping the applied force, couple, and V_a fixed. The wrench and twist components in b can change, while all three power calculations continue to agree within floating-point precision.
Try it yourself
Exercise 1. Apply f_a = (0, 3) N at q_a = (2, 0) m, with no free couple. Put origin b at the force point and rotate its axes +90°. Find F_a and F_b in planar moment-first order. For V_a = (1, 0, 0), find V_b and compare the two power calculations.
Show solution 1
The moment about a is 2 × 3 = 6 N·m, so F_a = (6, 0, 3). Since q_b = (0, 0), the moment about b is zero. Rᵀ rotates the force to (3, 0), giving F_b = (0, 3, 0).
The velocity of origin b is (0, 2) m/s in a. Rotating into b gives (2, 0), so V_b = (1, 2, 0). Power is 6 × 1 = 6 W in a and 3 × 2 = 6 W in b. The angular and linear terms redistribute across origins while the total agrees.
Exercise 2. Two forces form the +2 N·m planar couple described earlier, with zero net force. Move the reference origin to (5, −3) m and rotate its axes +90°. What is the new planar wrench? If the body's angular velocity is −0.5 rad/s, how much power does the couple deliver? What happens to power when angular velocity is zero?
Show solution 2
The pure couple has F = (2, 0, 0) in both planar frames. The origin change contributes no extra moment because the net force is zero. Rotation about z preserves the signed z moment.
Power is 2 × (−0.5) = −1 W, so the couple removes power from this motion. At zero angular velocity, its power is zero even if the body translates. The nonzero couple still exists; zero instantaneous power does not establish a zero load or static balance.
Continue with robot statics to map an applied wrench into joint loads and calculate the actuation that balances it.
Sources and further study
- Lynch and Park, Modern Robotics: Wrenches. Moment-first wrench coordinates, force-torque measurements, power pairing, and the frame transformation.
- University of Illinois Mechanics Reference: Moments. Cross-product moments, moment arms, planar signs, and the origin independence of a free couple.
- Lynch and Park, Modern Robotics: Statics of Open Chains. The Jacobian-transpose relation and the distinction between an applied disturbance and the wrench that balances it.