Leg loads and stairs
How much torque does a knee need to carry a 40 kg robot up an 18 cm stair, and why is Marvin Bot’s knee motor fine for walking but warm on slow stairs? This page builds the answer from a lever and a weight, then checks it against the repo’s own numbers. It matters because climbing ordinary household stairs is one of Marvin Bot’s requirements, and stairs, not walking, decide how big the knee motor must be.
The idea in one picture
Section titled “The idea in one picture”Stand on one leg with a slightly bent knee. Your body weight pushes down through your foot; the ground pushes back up with the same force. That upward force passes some distance behind your knee, and that distance is the lever arm. The knee’s muscles must produce a torque equal to force × lever arm, or the knee folds. Bend the knee more and the knee moves forward while your weight stays over your foot: the lever arm grows, and so does the torque. That is all of leg statics (statics: the forces in something that is standing still). You can feel it: a shallow knee bend is easy to hold, a deep squat on one leg is very hard.
Playground A: a leg on a stair
Section titled “Playground A: a leg on a stair”Side view of the stance leg standing on a stair tread (the foot flat, its heel 1 cm past the edge, the pelvis upright: the same rules as the repo’s step-up check). The ground force is drawn as a violet arrow; dotted lines show each joint’s lever arm. Start here: press Marvin Bot today, then drag the knee slider and watch the knee bar grow as the dotted knee lever arm gets longer.
How to read this: the bars under the picture compare each joint’s torque with its motor’s continuous (for-ever) rating. Green is comfortable, amber is warm, red means the motor would overheat if it held this pose for long. The violet tick on each bar is the project’s limit for brief peaks (70% of the peak rating).
From first principles
Section titled “From first principles”Torque is force times lever arm
Section titled “Torque is force times lever arm”Torque τ (N·m) is the turning effect of a force F (N) about an axis: τ = F × d, where d (m) is the perpendicular distance from the axis to the force’s line of action, the lever arm. A 400 N load 0.12 m from a knee axis needs 48 N·m to hold.
For a leg standing still, the ground pushes up on the sole with a force equal to the weight it carries, at the centre of pressure (page 02). If the robot stands still on one foot, that point is directly below the whole-body CoM. Every joint between the sole and the body must resist the moment of this force about its own axis, minus the weight of the leg parts below the joint:
τj = F · (xp − xj) − Σbelow j ms g · (xs − xj)
F = share × m × g (N), xp the CoP’s forward position, xj the joint’s, and ms, xs the mass and position of each leg segment below the joint (thigh, shin, foot). With the whole robot on one foot and the CoP under the CoM, this is identical to “the weight of everything above the joint times its horizontal distance”, which is how sim/mujoco/check_step_up.py computes it (stance_torques).
The Jacobian transpose view
Section titled “The Jacobian transpose view”Plain version: a joint carries a lot of torque when the ground’s push passes far from it, and almost none when the push passes right through it. At a straight knee the push passes almost through the knee axis, so the knee needs almost nothing; that is why standing straight is cheap and crouching is expensive.
Go deeper: the same result in robotics language
The Jacobian J maps joint speeds to the foot’s velocity, and its transpose maps a force at the foot to the joint torques that balance it, τ = Jᵀ F.[1][2] For a vertical force on a planar leg, the Jacobian’s entries for each joint are just the horizontal distances from that joint to the contact point, so Jᵀ F gives F × lever arm at each joint. The intuition carries to 3-D: a joint whose axis lies close to the force’s line of action carries little torque (the hip pitch here, about 2 N·m), one far from it carries a lot (the knee).
Why a bent knee costs torque
Section titled “Why a bent knee costs torque”With the foot flat and the CoM held over the foot, bending the knee by angle qk pushes the knee forward of the force line by roughly L·sin(qk/2) for equal thigh and shin lengths L. At Marvin Bot’s standing stance (knee 15°) the lever arm is about 4 cm; at 35° about 10 cm (12 cm in the repo’s worst pose, where the CoM also sits 6 cm behind the ankle); at 90°, about 23 cm. Human stair ascent shows the same thing: knee extensor moments are several times those of level walking.[7]
Stairs
Section titled “Stairs”Household stairs are tall relative to a 0.70 m leg. Residential building codes in the US cap risers at 196 mm with treads of at least 254 mm;[6] Marvin Bot’s requirement R12 is 17–18 cm risers and 25 cm treads. To climb one, the front leg must start the lift with its foot one riser higher than the back foot, so its knee is deeply bent exactly when it begins to take weight. A slow, static climb therefore spends time with the full weight on a bent knee. A dynamic climb shares the load with the back leg and uses momentum, so the peak lasts only a fraction of each step.
Peak, continuous and RMS
Section titled “Peak, continuous and RMS”An electric motor’s torque is limited by two different things. Peak torque is how much it can produce for a moment (current limits, magnet saturation, gear strength). Continuous (rated) torque is how much it can hold indefinitely without overheating, and it depends on cooling: the RS04’s 40 N·m assumes a 345 × 345 mm aluminium heat sink (35 N·m on 220 × 200 mm).[3] Copper losses grow with current squared, and torque is proportional to current, so heat grows with torque squared. That is why heating is judged by the root-mean-square torque over a cycle,
τRMS = √( (1/T) ∫ τ(t)² dt )
In words: square the torque at every moment, average those squares over one cycle of length T (the ∫ … dt sign just means “add up over time”), then take the square root. The result is the steady torque that would produce the same heat.[4][5] Two checks follow: RMS within the continuous rating, and the peak within a margin of the peak rating. Marvin Bot’s project rule: peak torques at or below 70% of the peak rating, continuous (RMS) within the rating (docs/plan.md phase 1 pass check, sim/mujoco/check_standing.py). RMS works when the cycle is short compared with the motor’s thermal time constant; a long hold above rating heats the winding even if the long-run average is fine.[4]
What a gear stage does
Section titled “What a gear stage does”An extra reduction of ratio N between motor and joint multiplies output torque by N (minus friction), divides speed by N, and multiplies the motor’s rotor inertia as seen from the joint (the reflected inertia) by N².[8] For the parked 1.5:1 knee stage: 60 N·m continuous and 180 N·m peak, about 14 rad/s instead of 21, and 2.25 × the reflected inertia, which makes the knee less back-drivable (harder to push round from outside, so it gives less on impact) and harder for the policy to swing fast. Page 04 Actuators covers quasi-direct drives and why designers avoid extra stages.
Playground B: duty cycle and RMS
Section titled “Playground B: duty cycle and RMS”A knee torque profile over one stair step: a hump while the leg is in stance (foot on the ground, carrying weight), a small torque while it swings through the air. Change the shape and see how RMS, not the peak, decides heating.
How to read this picture: time across one step, torque upwards. The blue curve is the knee torque, the orange line its RMS, the white line the continuous rating and the violet line the brief-peak limit. Heat is fine while the orange line stays below the white one.
How Marvin Bot does it
Section titled “How Marvin Bot does it”Where this 2-D model differs from the repo’s check
Section titled “Where this 2-D model differs from the repo’s check”- Sagittal plane only. It cannot see hip roll (105% of rated in the repo’s check), which comes from holding the body sideways over one foot. Hip roll is the second-hottest joint on slow stairs.
- Leg segment masses are lumped from the URDF (shin 2.78 kg, foot 0.64 kg, thigh 2.0 kg, hip pitch link 1.51 kg) at fixed fractions of each link; the rest of the body is a point at the CoM. The repo uses every body’s real mass and position.
- Pose. The repo searches pelvis positions for one that balances and places both feet; the hip roll (−6.6°) and yaw (18°) it finds tilt the leg slightly out of the plane. Here you set the pose.
- The lift itself. The repo reports stance torques only in its two single-support poses (before and after the lift). Its middle pose, weight moving onto the stair, is double support and has no torque readout. If the front leg took all the weight halfway up, this model gives about 75 N·m at the knee: within the 70%-of-peak rule, but well above continuous, so the lift must be quick or shared with the rear leg.
- Double support. The repo reports torques only on one foot. The share slider here assumes this foot’s CoP stays under the CoM where possible, which is a simplification.
Trade-offs and alternatives
Section titled “Trade-offs and alternatives”| Option for the knee | Effect | Cost |
|---|---|---|
| Keep the RS04 (today) | 118% static; 73–75% RMS in a trained policy on the 1.29 m model | Depends on the bench-measured rating |
| Better heat path (thigh plate as heat sink, paste, small fan) | +10–20% continuous (to be confirmed) | Cheap, no redesign |
| Heat penalty in training | Lower knee RMS on stairs | Free; may slow the climb |
| 1.5:1 knee stage | 60 / 180 N·m, ~14 rad/s, 2.25 × reflected inertia | ~0.2 kg, backlash, thigh redesign |
| Larger actuator from another vendor | Maybe 55 N·m continuous or more | Second protocol, cost, mass |
| Shorter or less bent legs | Shorter lever arms | Stairs need ≥0.65 m hip height (R3); a straighter walk needs retraining |
| Less mass | ~1.1 N·m per kg at the knee | RS10P in the arms saved 1.5 kg (2026-11-02); shoulder pitch and waist stay RS03 |
The repo’s decision (docs/decisions.md, 2026-10-26, kept on 2026-10-29): keep the RS04 knee with no stage, and settle it from the trained stair policy’s knee RMS (done on the 1.29 m model: 73–75%; to be repeated on the 1.44 m body), the bench thermal test, and the final mass. Making the legs 90 mm longer instead of 50 mm was rejected partly because the knee would reach 127% of rated and need the stage.
Decisions you can make here
Section titled “Decisions you can make here”- Whether the knee needs the 1.5:1 stage: compare the stair policy’s knee RMS on today’s body (56–65% for rough v9) with the bench-measured continuous rating.
- Walking height and stance: flat v9 walks with its knees bent ~38–40° on average, not the 15° stance; a straighter gait shortens lever arms at the cost of push robustness (page 02) and stair reach.
- Mass: every kilogram saved is about 1.1 N·m less at the knee on stairs; the price is usually a smaller part somewhere else (for example lighter shoulder motors, which save about 1.1 kg but halve the shoulder’s peak torque).
- Cooling before gearing: a better heat path is cheap and changes nothing else, so try it before the 1.5:1 stage, which costs speed, mass and a thigh redesign.
Built from your settings above. Paste it into an issue, a design discussion or an AI assistant session.
Where this leads. The knee carries one motor; the ankle needs two working through push rods. Page 06 shows how that linkage shares the ankle’s pitch and roll torque between them.
Further reading
Section titled “Further reading”docs/design/stairs.mdin the repo: the full stair story, issues, options and how the knee question will be settled.- Lynch & Park, Modern Robotics, section 5.2 “Statics of open chains”: τ = Jᵀ F derived from power conservation.
- Design World, continuous and peak torque for servo applications: a worked RMS sizing example.
- Wensing et al., proprioceptive actuator design (2017): why legged robots keep gear ratios low.
Sources
Section titled “Sources”- K. M. Lynch and F. C. Park, Modern Robotics, Cambridge University Press, 2017 (preprint), §5.2 — used for: statics of open chains, τ = Jᵀ F.
- Lynch and Park, Modern Robotics lecture slides, chapter 5 (statics) — used for: interpretation of the Jacobian transpose for joint torques.
- RobStride, Product_Information (RS04 / RS03 manuals) — used for: peak and rated torque, no-load speed, rating’s heat-sink condition.
- Kollmorgen, Brushless servo motor sizing (application note) — used for: RMS torque against continuous rating, limits when peaks are long against the thermal time constant.
- Design World, “How to calculate continuous and peak torque values for servo applications” — used for: RMS as the steady torque with the same heating; peak and RMS as separate checks.
- International Residential Code R311.7.5.1 as adopted (Cornell LII copy) — used for: maximum riser height 196 mm (and the 254 mm minimum tread in R311.7.5.2).
- R. Riener, M. Rabuffetti and C. Frigo, “Stair ascent and descent at different inclinations”, Gait & Posture, 2002 — used for: human knee moments on stairs much larger than in level walking.
- P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang and S. Kim, “Proprioceptive actuator design in the MIT Cheetah”, IEEE T-RO, 2017 — used for: reflected inertia scaling with the square of the gear ratio; low-ratio actuators for legs.