FTH 0 · The humanoid's body|INEMA.CLUB-PRO

Lesson 4 · 15 min

Actuators: the body map

Knee and wrist don't call for the same motor. In this lesson you see the four actuator types that show up in humanoids and where each one tends to win, learn how the MJCF describes a motor, and measure, by simulation, how much torque the G1's knee produces to hold the robot in a squat.

Start the lesson
Three rotary robot actuators disassembled side by side on a dark workbench, with a torque wrench and an Allen key.

In this lesson you will

  1. 1QDD, harmonic, planetary and linear: the body map
  2. 2position × motor in the MJCF: kp, ctrlrange, forcerange, actuatorfrcrange
  3. 3Knee torque from 0° to 90° of squat
  4. 4Two paths that have to agree: simulate at rest and mj_inverse

Goal: measure the torque of each joint of the G1 in a squat and compare it with the limit the MJCF declares for it.

01Each type wins at a different joint

The industry has not converged on a single actuator, but on a map of the body (humanoid.guide report, reported). Click each type.

Click each block in the diagram to see what it does.

Everything on this map comes from industry and supplier reports: it is a trend, not a specification.

02How the MJCF describes a motor

Click each attribute.

1. position

The Menagerie's G1 uses position actuators: you send the target angle in ctrl and MuJoCo applies proportional control with kp=500 and critical damping (dampratio=1).

It's the same scheme as humanoid RL policies: the network sends joint targets and a PD on the robot turns that into torque (course 1 of the program).

03What the knee does when squatting

torque_agachado.py starts from the "stand" pose, bends the knee (hip and ankle bend by half, so the foot stays flat), holds for 2 s, and reads the torque of each joint. Then it checks the largest one with inverse dynamics.

Terminal · knee at 90°
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
python3 kit/torque_agachado.py --joelho 90
Terminal · from 0° to 120°
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
for k in 0 30 60 90 120; do
  echo "joelho $k°: $(python3 kit/torque_agachado.py --joelho $k | grep -E '^joelhos|^ATENÇÃO' | tr '\n' ' ')"
done
Example from the repository
joelho dobrado 90° · altura da pelve 0.59 m · 8 contatos com o chão
junta                         torque (N·m)  limite  % do limite
left_knee_joint                         31     139          22%
right_knee_joint                        31     139          22%
left_hip_pitch_joint                     2      88           2%
right_hip_pitch_joint                    2      88           2%
conferência mj_inverse (left_knee_joint): 31 N·m
joelhos: esquerdo 31 N·m · direito 31 N·m
maior torque: left_knee_joint 31 N·m

31 N·m in each knee, 22% of the model's ceiling. Simulating at rest and mj_inverse give the same value: that is the sign the pose is in equilibrium.

04Practice

Measure, sweep, and compare with the real robot.

E1 · Knee at 90°

3 min

Run the "knee at 90°" block and check that both paths (simulation at rest and mj_inverse) agree.

Done when: python3 kit/torque_agachado.py --joelho 90 ends with maior torque: left_knee_joint 31 N·m, with conferência mj_inverse (left_knee_joint): 31 N·m.

E2 · The knee curve

5 min

Run the sweep and write down the knee torque at each angle in a table. At what angle does the robot stop squatting and fall?

Done when: the sweep shows joelho 60°: joelhos: esquerdo 21 N·m · direito 21 N·m and the 120° line shows ATENÇÃO: o robô caiu.

E3 · Model vs. real robot

5 min

Resellers cite a 90 N·m knee peak for the base G1 and 120 N·m for the EDU (reported). Calculate how much the 31 N·m of the squat represents in each case, and say whether there is margin left to jump.

Done when: you wrote down three percentages (22% of the model, about 34% of the base, and 26% of the EDU) and one sentence about margin, noting that the reseller numbers are reported.

05Lesson quiz

The explanation appears after you answer.

Question 1 of 4

Why does the Menagerie G1 stand up with no controller of your own, and the H1 does not?skill

06In three sentences

MapQDD in the legs, harmonic in the arm, planetary in the middle, linear in a big knee.
MJCFposition sends an angle, motor sends a torque; actuatorfrcrange is the ceiling.
MeasurementG1 knee at 90°: 31 N·m, 22 % of the model's ceiling.

To go further

Previous lessonNext lesson