Range of Motion in Humanoid Joints: Why Robot Hips Out-Turn Ours and Ankles Don’t
Range of motion in humanoid joints: why robot hips out-turn ours and ankles don’t
A human hip swings about 140 degrees front to back. The Unitree G1’s hip pitch joint is rated for 308. At the knee, robots and people come out roughly even, and at the ankle most humanoids give up range to keep the foot light. Range of motion rarely makes the headline spec, yet it decides whether a robot can get up off the floor, kneel at a low shelf or turn to a bench behind it without moving its feet.
Sources: Unitree G1 product page; Fourier GR-3 SDK robot specs; Booster T1 datasheet; Sunbeam 2025 (human norms); WikEM joint ROM table.
What a joint range actually is
Every humanoid joint has a position window: the lowest and highest angle the controller is allowed to command. Makers publish it in degrees on product pages, or in radians in SDK files and the robot description (URDF) models that simulators load. The window is usually set by three limits stacked on top of each other. A mechanical hard stop or a collision between parts. A software limit placed a few degrees inside it. And whatever the cables running through the joint will put up with.
Human numbers come from clinical goniometry. The figures on this page are active range-of-motion norms that the Human-Level Actuation paper (Sunbeam, 2025) compiled mainly from American Academy of Orthopaedic Surgeons (AAOS) and clinical sources, plus a smaller functional range for everyday tasks. Treat the comparison as rough. A robot’s hip pitch is one motor axis; a human hip flexion value is a goniometer reading on a ball-and-socket joint wrapped in muscle. The gaps are still large enough to change what a robot can do.
Figure 1 · Pitch range at hip, knee and ankle: human vs Fourier GR-3 (side view, front to the right)
Illustration: humanoid.guide. Human ranges from Sunbeam 2025, Table 2; GR-3 limits from Fourier’s Aurora SDK robot specs, converted from radians. Schematic, not to scale.
Hips that swing past 300 degrees
The biggest differences sit at the hip. Unitree lists ±154° of hip pitch on the G1, −30° to +170° of hip roll and ±158° of hip yaw. Fourier’s GR-3 SDK sets hip pitch at ±150°. The H1 joint table that Unitree resellers publish runs from about −180° to +145°. A person manages roughly 120° of flexion and 20° of extension.
Why so much? A robot hip has no ligaments, no gluteal mass and no pelvic bone in the way – just a motor housing on a bracket. A wide pitch window lets the controller fold the leg flat when the robot gets up from the floor, reach recovery poses no person would try, or pack the machine small; the G1 folds to 690 mm. Boston Dynamics made the same argument when it unveiled the electric Atlas, saying the robot would not be “constrained by a human range of motion” and would “move in ways that exceed human capabilities”.
Range isn’t free. Every extra degree is space the thigh has to sweep without hitting the torso or the other leg, and wiring that has to bend further. So roll and yaw are often much tighter. H1’s hip roll and yaw both stop at about ±25°. Booster T1 allows ±58° of yaw, GR-3 −40° to +90°.
Table 1 · Published joint ranges, degrees (min to max as listed)
| Platform | Hip pitch | Hip roll | Hip yaw | Knee | Ankle pitch | Waist yaw | Elbow |
|---|---|---|---|---|---|---|---|
| Human (active, adult norm) | 120 flex / 20 ext | 45 abd / 30 add | 35 IR / 45 ER | 0 to 135 | 20 DF / 50 PF | about ±30 | 0 to 150 |
| Unitree G1 | ±154 | −30 to 170 | ±158 | 0 to 165 | not listed | ±155 | not listed |
| Unitree H1 | −180 to 145 | ±24.6 | ±24.6 | −14.9 to 117.5 | −49.9 to 29.8 | ±134.7 | −71.6 to 149.5 |
| Fourier GR-3 | ±150 | −10 to 90 | −40 to 90 | 0 to 135 | ±45 | ±150 | 130 total |
| Booster T1 | up to 118 (one value given) | −21 to 88 | ±58 | −11 to 123 | −50 to 20 | not listed | not listed |
Sources: Unitree G1 product page; Unitree H1 specification table via Top3DShop; Fourier GR-3 Aurora SDK robot specs (left leg, converted from radians); Booster T1 datasheet via QuakeLogic; human values from Sunbeam 2025, waist rotation from WikEM (Luttgens & Hamilton). Sign conventions differ between makers.
At the knee, robots and people roughly agree
Knee flexion is the one joint where the numbers bunch together. Human active flexion is about 135°. GR-3 allows exactly that, Booster T1 −11° to 123°, H1 about −15° to 117°. The G1 goes further, to 165°, which is close to a full deep squat with calf pressed to thigh.
The ceiling here is packaging rather than torque. The knee actuator, its linkage or belt, and the calf and thigh shells all have to fit inside a folded leg. Several robots also allow a few degrees past straight (the negative numbers) so the leg can lock with a margin. And for everyday work the bar is lower than the clinical maximum: the functional knee range in the same human reference is 110°.
Figure 2 · Animated · A knee sweeping through 135° of flexion
Illustration: humanoid.guide. Limits from Sunbeam 2025 (human) and Unitree’s G1 product page. CSS animation; shows a static 90° pose when reduced motion is requested.
Chart 1 · Total pitch sweep at hip and knee, degrees
Sources: Unitree G1 product page; Unitree H1 table via Top3DShop; Fourier GR-3 SDK; Booster T1 datasheet; Sunbeam 2025. Robot values are software or catalogue limits, human values are clinical active norms; knee sweep includes any hyperextension listed.
Ankles, waists and wrists
Ankles go the other way. Most new humanoids drive the ankle through a parallel linkage from motors on the calf, and a linkage has a narrower usable window than a joint with the motor on the axis. GR-3’s ankle pitch is ±45° with ±25° of roll. Booster T1 runs −50° to +20° in pitch and ±25° in roll. H1’s single-axis ankle covers about −50° to +30°. The human ankle gives 20° of dorsiflexion and 50° of plantarflexion, plus inversion and eversion of up to about 30° and 10°. On pitch, the robots are close. On roll, they trail – which matters on uneven ground, where the foot has to tilt to stay flat.
The waist flips the picture again. A human trunk rotates about 30° each way. G1’s waist yaw reaches ±155°, GR-3’s ±150° and H1’s ±135° – enough to turn the upper body round to a table behind the robot while the feet stay planted. Waist pitch is a different matter: GR-3 allows only −12° to +30°, so bending to the floor still falls to the hips and knees.
Wrists land in between. The optional two-axis G1 wrist covers ±92.5° in pitch and yaw. GR-3’s wrist pitch runs −50° to +75°, against roughly 80° of flexion and 70° of extension for a person.
What sets the limit
- Collisions and hard stops. The thigh meets the torso, the calf meets the thigh, a forearm meets the chest. Designers place a mechanical stop just before contact.
- Linkage geometry is the ankle’s problem. Push-rod mechanisms lose leverage and approach singular positions near the ends of their travel, so usable range is cut well short of what the parts could physically reach.
- Cables. Power and data have to cross every joint. Hollow-shaft actuators route them through the centre, but the bundle still twists, which is one reason even the widest yaw joints stop short of a full turn.
- Software margin sits on top of all that. SDK limits are set a few degrees inside the mechanical stops, and simulation-trained policies learn against those numbers – so a URDF that doesn’t match the hardware is an easy way to break sim-to-real transfer.
What to ask a vendor
Ask for the joint limit table, not the DoF count. Two robots with 23 joints can have very different working envelopes, and only the min–max angles show it. Check the joints your task leans on: hip pitch and knee for floor work and kneeling, ankle roll for ramps and rough floors, waist yaw for pick-and-place between two stations. Then ask whether the published numbers are mechanical stops or software limits, and whether full torque is available near the ends of travel. A linkage-driven ankle often isn’t.
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
Do humanoid robots have a bigger range of motion than humans?
At some joints, by a wide margin. Hip pitch on Unitree G1, H1 and Fourier GR-3 sweeps 300° or more against about 140° for a person, and waist yaw reaches ±135° to ±155° against about ±30°. Knees are roughly equal, and ankle roll is usually narrower than the human ankle.
How far does a humanoid robot knee bend?
Published limits range from about 117° on Unitree H1 to 123° on Booster T1, 135° on Fourier GR-3 and 165° on Unitree G1. Human active knee flexion is about 135°, and everyday tasks need around 110°.
Why are humanoid ankles limited?
Most humanoid ankles are driven through parallel linkages from motors on the calf to keep the foot light. Linkages lose leverage near the ends of their travel, so makers cap the range – typically ±45° to −50/+30° in pitch and about ±25° in roll.
Where do I find a robot’s joint limits?
On some product pages (Unitree lists G1 ranges), in SDK documentation (Fourier publishes GR-3 limits in radians) and in the URDF robot description files used for simulation. If a vendor only gives a DoF count, ask for the limit table.
Sources
- Unitree, G1 humanoid product page (hip, knee, waist and wrist ranges, DoF, folded height)
- Top3DShop, Unitree H1 specifications (reseller copy of Unitree’s H1 joint range table)
- Fourier, GR-3 Aurora SDK robot specs (31 joint position limits in radians, torque limits)
- QuakeLogic, Booster T1 humanoid datasheet (hip, knee, ankle and wrist ranges)
- M. Sunbeam, Human-Level Actuation for Humanoids, arXiv 2511.06796, 2025 (human active, passive and functional ROM, Table 2)
- WikEM, Joint range of motion table (trunk rotation, after Luttgens & Hamilton 1997)
- Enlyte, Understanding normal range of motion (cross-check of adult ROM values)
- IEEE Spectrum, Hello, Electric Atlas, 2024 (Boston Dynamics on range of motion beyond human)
