Collision Detection in Humanoid Joints: Momentum Observers, Torque Sensing and ISO/TS 15066 Limits

Joints & actuators · Explainer

Collision detection in humanoid joints: how a robot feels a bump it didn’t plan

A humanoid that works next to people has to notice when its arm or body hits something it did not expect, and react within milliseconds. Most of that sensing happens inside the joints: encoders, motor current or torque sensors, a dynamic model and an observer that turns the mismatch into an estimate of external torque. ISO/TS 15066 sets how hard the contact may be.

65 N
Lowest ISO/TS 15066 permissible force for any body region: the face
140 N
Permissible force for hands and fingers, the region a humanoid arm is most likely to touch
5×
Larger torque error from motor current than from a strain-gauge joint torque sensor in a 2025 leg test
0.24
m/s: permissible relative speed into the chest for a 20 kg effective robot mass (energy model)

Sources: ISO/TS 15066 body-model values as tabulated in arXiv 2311.13814; arXiv 2510.10843; humanoid.guide calculation from the same table (see Table 2).

Why a humanoid has to sense contact through its joints

Cameras and depth sensors let a robot avoid people it can see. They do not tell it that its elbow has just brushed a shelf, that a co-worker has stepped into its swinging arm, or that a box is heavier than planned. Those events show up first as forces on the robot’s structure, and the cheapest place to measure them is in the joints that already exist. Every humanoid joint has a position encoder and a servo drive that knows its motor current, and many add a second encoder or a torque sensor.

Collision handling is usually split into stages: detection (did something happen?), isolation (which link was hit?), identification (how hard, and in which direction?) and reaction (what does the robot do next?). Detection must be fast and must not raise false alarms during normal, vigorous motion. That is harder on a humanoid than on a fixed factory arm, because the feet hit the ground at every step and the whole body is accelerating.

Figure 1 · From joint signals to a reaction: the momentum-observer pipeline

Joint encoders position q, velocity q̇ Drive or torque sensor motor current i, or τ Momentum observer dynamic model M(q), C, g compares measured and predicted momentum M q̇ |r| > limit? residual r ≈ filtered τ external Reaction StopGo compliantReflex awaySlow down DETECTISOLATEIDENTIFYREACT Residual crosses athreshold The hit link sits abovethe joints that respond Force size and direction,often with F/T sensors Chosen by the safetyand motion controllers Schematic. Stages after De Luca, Haddadin and others; reaction options after the TUM collision-detection lecture notes.

Illustration: humanoid.guide, after TUM RPCHI lecture notes (KUKA LWR III) and Vorndamme, Schappler & Haddadin, ICRA 2017. Schematic, not a specific product.

The momentum observer: the workhorse method

The most widely used detector in research and in collaborative arms is the generalized momentum observer, developed by Alessandro De Luca, Sami Haddadin and colleagues on the DLR/KUKA lightweight robot. The robot’s generalized momentum is p = M(q)·q̇: joint velocities weighted by the inertia matrix. A dynamic model predicts how that momentum should change given the commanded motor torque, gravity and Coriolis terms. The observer integrates the difference between prediction and measurement and feeds it back through a gain. The output, the residual r, behaves like a first-order low-pass filtered copy of the external joint torque.

Two properties made it the default. It needs only joint positions, velocities and motor torque, with no acceleration signal (which is noisy) and no inverse of the inertia matrix. And each joint gets its own residual, so the joints that respond tell the robot roughly where the hit was: a collision on a link shows up in the joints between that link and the base, not in those beyond it. The gain sets the trade-off. A higher gain gives a faster residual but passes more noise, which forces a higher threshold.

Figure 2 · Animated · A residual rising after a contact and crossing the detection threshold

0510 050100150200 TIME (MS) RESIDUAL r (N·M) Threshold 3 N·m Contact, 60 ms True external torque 10 N·m DETECTED · 67 MS Illustrative: 10 N·m external torque step, observer time constant 20 ms, sensor noise under 1 N·m.

Illustration: humanoid.guide. Curve computed as r = 10·(1 − e−t/20 ms) plus synthetic noise; real gains, noise and thresholds vary by robot. CSS animation; shows the final state when reduced motion is requested.

Current, torque sensors or skin: what the joint measures

The observer is only as good as its torque signal. Inferring torque from motor current is free, because the drive measures current anyway, but between the motor and the link sit gear friction, backlash, hysteresis and torque ripple. A 2025 study on a two-joint leg compared both on the same hardware: a custom strain-gauge joint torque sensor tracked ground truth with an RMS error of 0.032 N·m, while the motor-current estimate had 0.164 N·m, about five times worse. Friction grows with gear ratio, so the gap is widest in high-ratio strain-wave joints and smallest in quasi-direct-drive joints, which is one reason low-ratio legs are good at feeling contact.

Model errors are the other enemy. A learned model helps: researchers have trained Gaussian-process models of motor current on a UR10 arm, using only currents and joint positions, to handle friction at very low speed where analytic models fail. On a humanoid, the feet complicate everything. A detector has to separate expected foot-ground forces from unexpected hits, which is why the humanoid work so far adds force/torque sensors in the structure. Vorndamme, Schappler and Haddadin’s 2017 algorithm for detecting, isolating and identifying collisions on a general humanoid used momentum observers plus internal force/torque sensors, and was demonstrated on a simulated Atlas. On an ANYmal quadruped with an arm, a momentum-based observer detected collisions with a delay of about 160 ms at a threshold of 10% of the estimated force, the fastest of six estimators compared.

Table 1 · Ways a humanoid joint can sense an unplanned contact

SignalExtra hardwareStrengthWeaknessPublished figure
Motor current + modelNoneFree, every joint has itGear friction, ripple, model errors0.164 N·m RMSE
Joint torque sensorStrain gauges at the outputSees torque after the gearboxCost, stiffness, cabling, drift0.032 N·m RMSE
Six-axis F/T sensors in the structureOne or more F/T cellsContact force and locationExpensive, needs dynamic compensation<0.2 N force error
Tactile or capacitive skinSensor coveringLocation, can sense before touchCoverage, wiring, durability—

Sources: arXiv 2510.10843 (2-DoF leg, strain-gauge sensors up to 8.5 N·m, hip F/T sensor; force error below 0.2 N under static loads); Vorndamme et al., ICRA 2017; arXiv 1905.08689. — means no comparable figure in these sources.

How hard is too hard: the ISO/TS 15066 body model

Detection decides when a robot notices contact. The limits decide what the contact may feel like before that. ISO/TS 15066, written for collaborative industrial robots and now folded into ISO 10218-2:2025, gives a body model of 29 areas in 12 regions with permissible forces and pressures, built on pain-onset studies. It separates quasi-static contact, where a person is clamped or pressed, from transient contact, a brief impact the person can recoil from, which is allowed to be higher. The quasi-static force limits run from 65 N for the face to 220 N for the thighs and knees.

Chart 1 · Maximum permissible contact force by body region, ISO/TS 15066

Skull and foreheadFaceNeckBack and shouldersChestAbdomenPelvisUpper arms and elbowsLower arms and wristsHands and fingersThighs and kneesLower legs 130 N65 N150 N210 N140 N110 N180 N150 N160 N140 N220 N130 N 050100150200250 MAXIMUM PERMISSIBLE FORCE (N)

Source: ISO/TS 15066:2016 body-model values as tabulated in Safe Physical Human-Robot Interaction through Variable Impedance Control based on ISO/TS 15066 (arXiv 2311.13814). Values shown are the quasi-static limits; transient limits are higher.

The same table gives an effective spring constant and an effective mass for each region, which turns a force limit into a speed limit. If all the robot’s kinetic energy at impact goes into compressing the body region, the peak force is F = v·√(μ·k), where μ is the reduced mass of robot and body part. Rearranged, the permissible relative speed is v = F / √(μ·k). The robot’s effective mass depends on its pose and which link hits, which is exactly why reflected rotor inertia, set by gear ratio, matters for safety.

Table 2 · Permissible relative speed at impact, by robot effective mass

Body regionForce · k · body massRobot 2 kgRobot 5 kgRobot 10 kgRobot 20 kg
Hands and fingers140 N · 75 N/mm · 0.6 kg0.75 m/s0.70 m/s0.68 m/s0.67 m/s
Lower arms and wrists160 N · 40 N/mm · 2 kg0.80 m/s0.67 m/s0.62 m/s0.59 m/s
Chest140 N · 25 N/mm · 40 kg0.64 m/s0.42 m/s0.31 m/s0.24 m/s

Calculation: humanoid.guide, v = F / √(μ·k), μ = (1/mbody + 1/mrobot)−1, using the quasi-static force values, spring constants and effective body masses tabulated in arXiv 2311.13814. Using the quasi-static force is conservative; a formal assessment follows the full standard and measured contact.

The numbers are sobering for a full-size humanoid. A light hand meeting a light hand is allowed around 0.7 m/s. A heavy arm segment moving into a chest, with 20 kg of effective mass behind it, is allowed about a quarter of a metre per second. No detector can undo energy that is already in the impact, so speed and effective mass have to be limited near people before anything is detected, and detection then limits what happens after the first touch: how long the robot keeps pushing and whether it clamps someone.

Collision detection does not make an impact gentle. It shortens the contact and prevents clamping. The first impact is governed by speed, effective mass and padding, which is why safe humanoids slow down near people and keep reflected inertia low.

What the robot does next, and why falling is the hard part

Arm reactions are well studied. The robot can stop, switch to gravity compensation so the arm floats and can be pushed away, perform a reflex move in the direction of the contact force, or slow down and continue. A fixed-base cobot can simply stop. A humanoid cannot always: freezing a leg mid-step, or cutting torque, makes it fall, and a falling 60–130 kg robot is a bigger hazard than the bump. Its reactions must keep it balanced, which ties collision response to the whole-body controller and to brakes and controlled descent.

Standards are catching up. ISO 25785-1, a working draft since May 2025 for industrial mobile robots with actively controlled stability, including humanoids, is expected to build on the ISO/TS 15066 limits and to call for fall detection, controlled descent and speed reduction near people. Agility Robotics, which contributes to that draft, describes Digit 5 as built for “cooperatively safe” work: it detects people with several sensor types and an independent safety controller oversees whether it avoids them, stops or sits down. That is perception-led separation, not contact detection, and it shows where the industry is starting: keep distance first, then make contact survivable.

What to ask an actuator or robot supplier

  • Which torque signal feeds the detector? Motor current, a joint torque sensor or both, and at what rate the drive reports it.
  • Detection threshold and delay. The smallest external torque the joint flags without false alarms during fast motion, and the time from contact to reaction.
  • Back-drive torque and reflected inertia. A joint that is easy to push back both senses contact better and hurts less on impact.
  • Whether detection runs on safety-rated hardware. A residual computed in the motion controller is a feature; one computed in a certified safety channel can count toward a safety function.
  • Measured contact forces. Pressure and force measured with a test device against ISO/TS 15066 values, at the speeds the robot will use near people.

Go deeper: The Humanoid Actuation Report

249 pages on motors, reducers, screws, bearings, encoders and drives, the vendors behind every major platform, and the cost curves that decide adoption to 2036.

The Humanoid Actuation Report All joints & actuators articles All humanoid.guide reports

FAQ

How does a humanoid robot detect a collision without a skin?

Through its joints. A model-based observer, most often the generalized momentum observer, compares the momentum the robot should have, given its commanded motor torques, with what its encoders measure. The difference, called the residual, approximates the external torque at each joint. When it crosses a threshold, the robot flags a collision.

Is motor current enough, or does a joint need a torque sensor?

Current works and costs nothing extra, but gear friction, backlash and ripple blur it. In one 2025 leg test, current-based torque estimates had about five times the error of a strain-gauge joint torque sensor. Low-ratio quasi-direct-drive joints get closer to sensor quality than high-ratio strain-wave joints.

How much force may a robot apply to a person?

ISO/TS 15066 lists permissible values by body region. Quasi-static limits range from 65 N for the face to 220 N for the thighs and knees; hands and fingers are 140 N. Brief transient contacts are allowed higher values. The specification was written for collaborative industrial robots; the humanoid draft ISO 25785-1 is expected to build on it.

Why can’t a humanoid simply stop when it hits something?

Because stopping or cutting torque can make it fall. A legged robot has to keep its balance while it reacts, so collision response is tied into the whole-body controller, and draft standards point toward controlled descent rather than collapse.

Sources