Joint Friction in Humanoid Robots: Stiction, Coulomb, Viscous and Stribeck Effects
Joint friction in humanoid robots: the torque that never reaches the limb
Every humanoid joint loses part of its motor torque to rubbing teeth, bearings and seals before anything reaches the limb. That loss is not a fixed number. It jumps when the joint starts to move, grows with speed and load, and falls as the grease warms up. How well a robot handles it decides how accurate its torque control is, how easy it is to push, and whether a policy trained in simulation walks on real hardware.
Sources: Gealy et al. 2019; AutomationDirect strain-wave gearhead specifications; Wolf & Iskandar, DLR; Scholl et al. 2025.
Where the friction lives
A rotary humanoid joint is a chain: motor rotor on bearings, a reducer, an output bearing, often a seal, then the limb. Each element rubs. In the motor there are rotor bearings and, in sealed joints, a lip seal on the shaft; cogging from the magnets is not friction but feels like it when the joint is turned by hand. In the reducer, teeth slide against each other. A strain-wave gear adds the thin-race bearing on its wave generator and the flexing of the flexspline itself. A planetary stage adds planet bearings. The output stage adds a large crossed-roller or four-point bearing and its seal.
Position in the chain matters. Friction torque on the motor side is multiplied by the gear ratio N on its way to the joint, just like useful motor torque. A small drag at the rotor of a 100:1 joint becomes a large drag at the output. That is the main reason high-ratio joints are hard to back-drive, and why the friction figure on a reducer data sheet is usually given at the input shaft.
Figure 1 · Friction sources along a geared joint, and how they add up at the output
Illustration: humanoid.guide, after Gealy et al. 2019 and Wolf & Iskandar (DLR).
Stiction, Coulomb, viscous and Stribeck: the four parts of a friction curve
Engineers describe joint friction as a function of speed. At rest the joint sticks: it resists any torque up to a breakaway level, the static friction or stiction. Once it slides, friction drops to a lower, roughly constant Coulomb level, because the contact surfaces lift onto a lubricant film. Between the two sits the Stribeck region, a dip over the first few rad/s as the film builds. At higher speed a viscous term takes over, growing with velocity as grease is sheared. Friction always opposes motion, so the curve flips sign when the joint reverses.
The discontinuity at zero speed is what makes friction hard to control. Near a velocity reversal, which happens every step at the knee and every reach at the elbow, the friction torque swings from one sign to the other across a band twice the stiction level. A controller that does not know where it is in that band either undershoots small motions or overshoots when the joint breaks free.
Figure 2 · Animated · Friction torque against joint velocity (Stribeck curve)
Illustration: humanoid.guide, computed from the static Stribeck model used in the LuGre friction literature (Scholl et al. 2025; Wolf & Iskandar). CSS animation, alternate loop; stops when reduced motion is requested.
What the data sheets say: starting and back-driving torque
Reducer makers publish friction in two ways. Starting torque is the smallest input torque that turns the gear with no load. Back-driving torque is the smallest torque at the output that makes the gear run backwards. Harmonic Drive’s CSG-20-50 gearhead, a size often used in humanoid arm joints, lists a starting torque of 14 N·cm at the input. Multiplied by the 50:1 ratio, that is already 7 N·m at the output before any load is applied.
AutomationDirect’s strain-wave gearhead catalogue gives both figures across four frame sizes and several ratios. The pattern is consistent: back-driving torque rises with frame size and with ratio, from 2.3 N·m for the smallest 50:1 unit to 22 N·m for the largest 200:1 unit. Starting torque at the input falls with ratio, because the same output friction is divided by a larger N on its way back to the motor.
Table 1 · No-load starting and back-driving torque of strain-wave gearheads
| Frame size | Ratio | Starting torque (input) | Back-driving torque (output) |
|---|---|---|---|
| 063 (size 17) | 50:1 | 5.4 N·cm | 2.3 N·m |
| 063 (size 17) | 100:1 | 3 N·cm | 2.7 N·m |
| 073 (size 23) | 100:1 | 4.3 N·cm | 4.5 N·m |
| 073 (size 23) | 160:1 | 2.3 N·cm | 7 N·m |
| 088 (size 34) | 100:1 | 7 N·cm | 8.5 N·m |
| 116 | 100:1 | 16 N·cm | 15 N·m |
| 116 | 200:1 | 11 N·cm | 22 N·m |
Source: AutomationDirect strain-wave gearhead specifications (HPGA/HPGCN series), no-load values. Starting torque is measured at the input shaft, back-driving torque at the output.
Low-ratio joints sit in a different range. Gealy and colleagues at Berkeley measured a back-drive torque of 0.89 N·m for a 7.125:1 belt-driven quasi-direct-drive joint, and attributed 0.47 N·m of that to motor cogging rather than friction. The full chart below puts that next to the strain-wave figures.
Chart 1 · No-load back-drive torque at the joint output, N·m
Sources: Gealy et al. 2019 (arXiv 1904.03815) for the QDD joint, of which 0.47 N·m is cogging; AutomationDirect strain-wave gearhead specifications for the rest. Bars drawn at 16.8 px per N·m. Different test methods; compare orders of magnitude, not decimals.
Friction moves: temperature, load and wear
Catalogue numbers are measured at one temperature, one speed and no load. Inside a robot, none of those hold. Harmonic Drive’s own catalogue states that strain-wave efficiency depends on ratio, input speed, load torque, temperature and the quantity and type of grease, and tells designers to scale efficiency down when the gear runs below rated torque. In other words, the gear is least efficient exactly where many humanoid joints spend their time: at light load during swing and idle.
Temperature is the largest single effect. Sebastian Wolf and Maged Iskandar at DLR measured a Harmonic Drive CSD 25 gear at 80:1 across seven temperatures. At a motor speed of 275 rad/s, friction torque fell to 42% of its starting value as the gear warmed from 24 to 50 °C. At around 100 rad/s, friction changed by about 18% within a 10 °C rise. A joint that is identified cold in the morning is a different joint after twenty minutes of walking. Load adds another layer: in strain-wave and planetary gears, tooth and bearing friction grow with the torque being transmitted, which is why DLR’s later models carry an explicit load term.
Wear moves the curve too, which is the useful side of friction. A joint whose friction at a fixed test motion creeps up over months is telling the fleet operator that its grease or bearings are ageing. That idea is the basis of the condition-monitoring schemes covered elsewhere in this series.
From simple models to learned ones
The simplest friction model is a Coulomb constant plus a viscous slope, two numbers per joint. It is what most robot simulators expose and what reinforcement-learning pipelines randomise. Static models add stiction and the Stribeck dip. Dynamic models such as LuGre and Generalized Maxwell-Slip add a state that captures the tiny elastic deflection before sliding, so friction no longer jumps instantaneously at zero speed. Research models then add temperature and load.
Table 2 · Friction models used for robot joints
| Model | What it captures | Parameters | Typical use |
|---|---|---|---|
| Coulomb + viscous | Constant sliding friction plus a speed-proportional term | 2 | Simulators, RL domain randomisation, simple feedforward |
| Static Stribeck | Adds breakaway (stiction) and the low-speed dip | 4–5 | Feedforward compensation, identification on test benches |
| LuGre / GMS (dynamic) | Pre-sliding deflection, smooth behaviour at reversal, hysteresis | 6+ | Precise torque control, external-force estimation |
| Load- and temperature-dependent | Friction that changes with transmitted torque and grease temperature | Model-specific | DLR torque-controlled arms (Iskandar & Wolf 2019) |
| Learned / adapted | Residual errors the physical model misses, re-fitted on short data | Neural network | DLR LWR (Scholl et al. 2025); actuator networks in legged RL |
Sources: Scholl et al. 2025 (arXiv 2310.16688); Iskandar & Wolf, ICRA 2019; Wolf & Iskandar, DLR; Hu et al. 2025 (arXiv 2503.01255).
Better models pay off measurably. On joints 2 and 4 of a DLR-KUKA LWR-IV+, Scholl and colleagues report that a conventional extended LuGre model left a mean friction-estimate error of about 2.5–3.1 N·m under load. Adding a neural correction, adapted with roughly 43 seconds of no-load data from a single movement, cut that to 0.7–0.9 N·m, a reduction the authors put at about 60–70%.
Why learned walking policies care about friction
Most humanoid locomotion is now trained in simulation and transferred to hardware. A simulated joint with too little friction responds to small commands that the real joint ignores, and the policy learns habits that fail on the robot. Hu and colleagues at Lenovo Research hit exactly this on a 32 kg legged robot: they found unexpectedly high friction-to-torque ratios in the joints, and randomising only rotor inertia, viscous friction and PD gains gave poor walking. Adding static friction to the randomised parameters was needed to get satisfactory gaits, and an actuator-network approach walked on flat ground but failed on stairs.
Open humanoid stacks show the same pattern. The published training guide for the Asimov humanoid’s legs models each joint with a static friction term, a Coulomb-like dynamic term and a damping value tuned to match the real response, alongside reflected inertia and an action delay, and credits this fuller actuator model with a significant part of its sim-to-real improvement.
How joints fight friction
- Lower the ratio. Quasi-direct-drive joints keep N below about 10:1, so motor-side friction is barely amplified and current is a usable proxy for torque.
- Feedforward compensation. The drive adds the friction it expects, from an identified model, to the commanded current. This works only as well as the model tracks temperature and load.
- Measure torque at the output. A joint torque sensor after the reducer lets the controller close the loop around friction instead of predicting it, at the cost of a sensor per joint.
- Manage the grease and seals. Lubricant type, fill quantity and seal design set much of the friction floor and its temperature sensitivity.
- Warm up and re-identify. Running joints before calibration, or adapting friction parameters online, keeps the model close to the current state of the joint.
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 reportsKeep reading · Joints & actuators
Related articles
FAQ
What is joint friction in a humanoid robot?
The torque lost to rubbing inside the joint: motor bearings and seals, gear teeth, reducer bearings and the output bearing and seal. It opposes motion, so the limb receives less torque than the motor produces when driving, and the motor has to overcome it before the joint moves at all.
What is the difference between static and Coulomb friction?
Static friction (stiction) is the torque needed to start a joint moving. Coulomb friction is the lower, roughly constant torque once it is sliding. The dip between them at low speed is the Stribeck effect.
Why are high-ratio joints harder to back-drive?
Friction on the motor side is multiplied by the gear ratio at the output. Strain-wave gearheads at 50:1 to 200:1 list no-load back-driving torques from 2.3 to 22 N·m, while a 7.125:1 quasi-direct-drive joint measured 0.89 N·m, about half of it cogging.
Does joint friction change with temperature?
Yes, strongly. DLR measured a Harmonic Drive CSD 25 gear whose friction at 275 rad/s fell to 42% of its initial value as it warmed from 24 to 50 °C.
Why does friction matter for sim-to-real transfer?
If the simulated joint has less friction than the real one, the trained policy relies on small torques that the real joint swallows. Researchers have found that adding static friction to simulation randomisation was needed for reliable walking on hardware.
Sources
- Harmonic Drive LLC, CSG-20-50-GH product data (starting torque 14 N·cm, rated and peak torques)
- Harmonic Drive, CSF/CSG component catalogue (efficiency depends on ratio, speed, load, temperature and grease; compensation below rated torque)
- AutomationDirect, strain-wave gearhead specifications (no-load starting and back-driving torque by frame size and ratio)
- S. Wolf and M. Iskandar, Extending a dynamic friction model with nonlinear viscous and thermal dependency for a motor and harmonic drive gear, DLR (CSD 25, 80:1; −58% friction from 24 to 50 °C at 275 rad/s; ~18% per 10 °C at ~100 rad/s)
- M. Iskandar and S. Wolf, Dynamic friction model with thermal and load dependency, ICRA 2019
- Scholl et al., Learning-based adaption of robotic friction models, arXiv 2310.16688 (DLR-KUKA LWR-IV+, 60–70% error reduction, 43 s adaptation)
- Gealy et al., Quasi-Direct Drive for Low-Cost Compliant Robotic Manipulation, 2019 (7.125:1, 0.89 N·m back-drive, 0.47 N·m cogging)
- Hu et al., Impact of Static Friction on Sim2Real in Robotic Reinforcement Learning, 2025
- Menlo, Deep Dive: System Identification (Asimov locomotion training guide)
- Human-Level Actuation for Humanoids, arXiv 2511.06796, 2025 (higher ratios add friction and lower torque bandwidth)
