Range of Motion in Humanoid Joints: Why Robot Hips Out-Turn Ours and Ankles Don’t

Joints & actuators · Explainer

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.

308°
Hip pitch sweep on Unitree G1 (±154°), against about 140° for an adult human
165°
Knee flexion on Unitree G1; human active flexion is about 135°
±150°
Waist yaw on Fourier GR-3; the human trunk rotates about 30° each way
±25°
Ankle roll on GR-3 and Booster T1, narrower than human inversion

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)

HIP PITCHKNEEANKLE PITCH Human 140° · GR-3 300°Human 135° · GR-3 135°Human 70° · GR-3 90° Human active range (AAOS-based norms) Fourier GR-3 software joint limit

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)

PlatformHip pitchHip rollHip yawKneeAnkle pitchWaist yawElbow
Human (active, adult norm)120 flex / 20 ext45 abd / 30 add35 IR / 45 ER0 to 13520 DF / 50 PFabout ±300 to 150
Unitree G1±154−30 to 170±1580 to 165not listed±155not 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 900 to 135±45±150130 total
Booster T1up to 118 (one value given)−21 to 88±58−11 to 123−50 to 20not listednot 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

Human limit · 135° Unitree G1 limit · 165° 0° · straight Thigh fixed, shank rotates about the knee axis. Front of the robot is to the right. 0–135°

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

Hip pitch sweep Knee sweep 0°90°180°270°360° TOTAL RANGE, MAX MINUS MIN (DEGREES) Human (active norm) Unitree G1 Unitree H1 Fourier GR-3 Booster T1 140135 308165 325132 300135 134 Hip pitch not published as a min–max range

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.

Rule of thumb from the published tables: humanoids beat human range where a single rotary axis has open space around it (hip pitch, waist yaw), match it where packaging is tight (knee), and fall short where the joint is driven through a linkage (ankle roll).

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 reports

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