Free shipping on every order. No tariffs or duties to pay at checkout or on delivery.

Backlash and torsional stiffness in robot joints

By Tolerance Labs engineering team · Updated

Two joints with the same torque rating can place a tool very differently. The difference is how far the joint moves before it takes load, and how much it twists once it does. This guide defines those quantities, shows how to measure them, and turns them into tool-tip error and resonant frequency.

Four terms and the hysteresis curve

Lock the motor side of a joint and twist the output from zero to plus rated torque, back through zero to minus rated torque, and back to zero. Plot output angle against torque. The result is a loop, the hysteresis curve, and four datasheet terms come from it.

TermWhat it isTypical unit
BacklashFree play when torque reverses: the output turns with almost no torque until the teeth meet on the other flankarcmin
Lost motionTotal twist across a small torque window around zero, typically a few percent of rated torque, such as ±3%. Includes backlash and the soft start of the curvearcmin
Hysteresis lossWidth of the loop at zero torque after loading to rated torque in each directionarcmin
Torsional stiffnessSlope of the curve, torque per unit twist. Often given for two or three torque bandsN·m/rad or N·m/arcmin

Near zero torque the curve is flat: the joint moves with little resistance while clearances close and contacts seat. Beyond that it steepens. Harmonic reducers have almost no backlash but a soft, nonlinear zone near zero, which is why their datasheets list stiffness in bands. Typical values for each reducer type are in harmonic vs planetary vs cycloidal reducers, so this guide does not repeat them.

Unit conversion: 1 arcmin = π ÷ (180 × 60) ≈ 2.91 × 10⁻⁴ rad, so 1 N·m/arcmin ≈ 3,440 N·m/rad.

Measuring them on the bench

  • Lock the input. Clamp the motor rotor or engage the brake, so the servo loop is not part of the measurement.
  • Fix the housing rigidly and apply torque at the output with a lever and weights, or a lever and a load cell.
  • Measure output angle close to the axis, with a dial indicator on a lever, an autocollimator or a high-accuracy output encoder. Measuring at the end of a link adds the link’s own bending.
  • Step through the full loop: preload in one direction, zero the reading, load in steps to plus rated torque, then to minus rated and back to zero, recording the angle at each step.
  • Repeat at several output positions, since gear and bearing errors vary around a revolution.

The indicator needs fine resolution. On a 200 mm lever, 1 arcmin of twist moves the contact point 200 × 2.91 × 10⁻⁴ ≈ 0.058 mm. Resolving a tenth of that needs an indicator that reads to about 0.005 mm, and 0.001 mm is better. At high torque, account for the lever’s own bending.

You can also measure with the joint powered, holding position on the motor encoder while an output encoder reads the twist. That is closer to how the joint behaves in use, but the result includes the servo’s stiffness.

From joint angle to tool-tip error

A small angular error θ at a joint moves a point at distance L by an arc of length L × θ, with θ in radians. Example for a shoulder joint 0.8 m from the tool:

  • Backlash of 3 arcmin: 3 × 2.91 × 10⁻⁴ ≈ 8.7 × 10⁻⁴ rad, and 800 mm × 8.7 × 10⁻⁴ ≈ 0.70 mm.
  • Backlash of 15 arcmin, common on low-cost planetary stages: 15 × 2.91 × 10⁻⁴ ≈ 4.4 × 10⁻³ rad, and 800 mm × 4.4 × 10⁻³ ≈ 3.5 mm.
  • Twist under 25 N·m of gravity torque on a joint of 10,000 N·m/rad: 25 ÷ 10,000 = 2.5 × 10⁻³ rad, and 800 mm × 2.5 × 10⁻³ = 2.0 mm.

Stiffness often costs more accuracy than backlash, but the two behave differently. Gravity twist repeats for a given pose and payload, so a model can compensate for it. Backlash depends on the direction of the last load reversal, which is hard to predict where gravity torque crosses zero, as it does when an arm passes overhead. Closing the position loop on an output encoder removes both from the static position, but not from the dynamics.

In a serial arm, each joint’s angular error is multiplied by its own distance to the tool, and the results add. Joints near the base matter most.

Stiffness sets the resonant frequency

A joint driving a load is a spring and a mass. With the motor side held still, the load oscillates at f = (1/2π) × √(k ÷ J), where k is the torsional stiffness and J is the load’s inertia about the joint axis.

  • k = 10,000 N·m/rad and J = 0.5 kg·m²: √(10,000 ÷ 0.5) = √20,000 ≈ 141 rad/s, and f ≈ 141 ÷ 6.28 ≈ 22.5 Hz.
  • Halve the stiffness or double the inertia: f falls by a factor of √2, to about 22.5 ÷ 1.41 ≈ 15.9 Hz.
  • Add a torque sensor or a coupling in series and the combined stiffness falls; see joint torque sensors.

That locked-motor frequency is the antiresonance the motor sees. With the motor free to move, the system resonates higher, at √(1 + Jload ÷ Jmotor) times that frequency, where Jmotor is the rotor inertia times the ratio squared. If the reflected rotor inertia equals the load inertia, the resonance is √2 × 22.5 ≈ 31.8 Hz. Payload changes both numbers, and a harmonic reducer’s stiffness changes with torque, so the resonance moves with the task.

How they limit control bandwidth

A position loop cannot be tuned much faster than the first resonance without exciting it. A common rule of thumb keeps the position-loop bandwidth a factor of three to five below it. For the 22.5 Hz example, that is 22.5 ÷ 5 = 4.5 Hz to 22.5 ÷ 3 = 7.5 Hz. Notch filters let you push a little higher, but only while the resonance stays where you tuned them.

Backlash causes a different problem. Inside the backlash zone the motor is disconnected from the load, so loop gain drops to nearly zero and then jumps when the teeth meet. A loop closed on the output encoder can hunt, oscillating across the gap, especially near zero load torque. A loop closed on the motor encoder is stable but leaves the backlash as position error. Many joints close velocity on the motor encoder and add a slower position correction from the output encoder. Force control meets the same limits; see impedance control and MIT mode.

Budgeting backlash and stiffness per joint

Start from the tool-tip error you can accept, split it across the joints, and divide each share by that joint’s distance to the tool. Example for a three-joint arm with a 1.0 mm worst-case budget, summed linearly:

JointDistance to tool (m)Share of error (mm)Allowed angle
Shoulder0.800.40.4 ÷ 800 = 5.0 × 10⁻⁴ rad ≈ 1.7 arcmin
Elbow0.450.40.4 ÷ 450 ≈ 8.9 × 10⁻⁴ rad ≈ 3.1 arcmin
Wrist0.100.20.2 ÷ 100 = 2.0 × 10⁻³ rad ≈ 6.9 arcmin

Each joint’s lost motion plus its uncompensated twist under load must fit inside its allowed angle. The shoulder needs lost motion well under 2 arcmin and high stiffness; the wrist can accept a looser reducer. A linear sum is the worst case. When the errors are independent, a root-sum-square total is a more typical estimate. Then check that each joint’s stiffness puts the resonance high enough for the bandwidth you need. Sizing robot arm joints covers torque for the same kind of arm.

Checklist

  • Get backlash, lost motion with its torque window, hysteresis and stiffness bands from each datasheet.
  • Convert stiffness to N·m/rad and use the band you will operate in.
  • Measure on the bench with the input locked, close to the axis, at several output positions.
  • Convert each joint’s error to tool-tip error with its distance to the tool.
  • Separate repeatable gravity twist from direction-dependent backlash.
  • Compute f = (1/2π) × √(k ÷ J) with the real payload, and keep loop bandwidth well below it.
  • Budget per joint, tightest at the base.

Compare stiffness and lost motion across harmonic joint modules and high-ratio and cycloidal joints, or browse robot arms.

More guides

Not sure what fits? Tell us what you're building.

We procure every part of the robot. Send a sentence or a BOM and we come back with options and a landed quote.

Send a request