E1 · G1 × H1
3 minRun the comparison block and explain in one sentence why the H1 has a higher CoM.
Done when: python3 kit/comparar.py unitree_g1/scene.xml unitree_h1/scene.xml; echo "saída: $?" → FICHA: 7 itens comparados and saída: 0.
Lesson 8 · 15 min
A manufacturer spec sheet, a simulation file, and a measurement don't say the same thing, and sim-to-real lives in the difference. In this lesson you compare two Menagerie humanoids by script, build a spec sheet that separates the three sources, and leave with the study plan for the program.
Start the lesson
Goal: compare two Menagerie humanoids by script and build your own spec sheet, separating manufacturer, file, and measurement.
Each row of the sheet says where it came from. Tap each block.
The "difference" column is the sim-to-real to-do list.
With a price only when there is a source, and always varying by version and reseller. Tap each one.
It is the platform that shows up in almost everything: Menagerie (29 degrees of freedom), unitree_rl_lab, mjlab, retargeting (GMR), SONIC with open weights, and LeRobot.
The base (US$ 13.5 thousand) has no SDK; the EDU, which does, is on request.
1.23 m, 27–29 kg, from 20 to 40 degrees of freedom depending on the version; US$ 4,900 to 5,900 in the official store (EDU on request).
Fewer people publish a controller for it than for the G1: less ready-made code.
95 cm, 19.5 kg, 22 degrees of freedom, 117 TOPS, 1 h 10 min walking at 1.1 m/s (official sheet). In the RoboCup 2026 program, US$ 14,999 is the public price.
The T1, from the same company, has a model in the Menagerie (booster_t1, 23 actuators); Booster's current line is T2 and K1, and the T1 may have been discontinued (uncertain).
Berkeley Humanoid Lite: 3D-printed, under US$ 5 thousand in parts (reported), with training in Isaac Lab and sim2sim validation in the repository. ToddlerBot: 30 degrees of freedom, Jetson Orin NX, public parts list.
Both need a workbench and assembly time; the simulation model comes with it.
comparar.py prints 7 items from the two files. The sheet template has the three columns; the brackets are what you fill in.
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
python3 kit/comparar.py unitree_g1/scene.xml unitree_h1/scene.xml; echo "saída: $?"# Ficha técnica — [robot] (version [base/EDU/…]) Data: [DD/MM/YYYY] · Simulation model: [Menagerie folder] @ [commit] | item | fabricante (fonte, data) | arquivo MJCF | medido no curso | diferença | |---|---|---|---|---| | graus de liberdade | [n] ([URL], [date]) | nu = [n] | — | [different version?] | | massa (kg) | [n] | [n] | — | [%] | | altura do CoM em pé (m) | — | [n] | — | — | | maior torque (N·m) | [n or "not published"] | [n] ([joint]) | agachado 90°: [n] | [%] | | sensores | [list from the sheet] | [n] no arquivo | + [added] | [what is missing] | | bateria | [mAh, S, h] | — | [Wh, derived calculation] | — | | computação | [CPU / Orin / Thor] | — | — | — | | equilíbrio sem controlador | — | — | fica com [n] N · cai com [n] N (0,2 s) | — | | estágio | [demo/piloto/produção] ([URL], [date]) | — | — | — |
item unitree_g1 unitree_h1 GDL acionados (nu) 29 19 massa do modelo (kg) 33.3 51.4 altura do CoM (m) 0.69 0.95 maior torque (N·m) 139 300 junta do maior torque right_knee_joint right_knee sensores no arquivo 4 0 pose inicial stand home FICHA: 7 itens comparados saída: 0
The H1 is heavier and taller (CoM at 0.95 m) and has a 300 N·m knee in the model, but fewer degrees of freedom and no sensor declared in the file.
ERRO: não achei apptronik_apollo/scene.xml (nem em ~/fth/mujoco_menagerie). Rode a preparação da aula 2. saída: 1
The workbench downloaded only 4 humanoids. To compare another one, add the folder: git -C ~/fth/mujoco_menagerie sparse-checkout add apptronik_apollo, then run it again.
Four main deliverables. Tap a step to see "done when".
joints, torque
3 exercises
Joints, torque, and sensors read from the file.
See the lessonbalance, spec sheet
3 exercises
Push limit and a three-column spec sheet.
See the lessonThe table that separates demo, pilot, and production. Update it with every news item: the date is what keeps the table honest.
The workbench that courses 1 through 4 reuse: venv, MuJoCo 3.16.0, and Menagerie at the tested commit.
Joint tree, torque measured in the squat, and sensors checked against body weight: the body described by your own numbers.
The limit of the body without a controller, the energy calculation, and the spec sheet: the starting point of the locomotion course.
Four deliverables in sequence. The workbench from lesson 2 is a prerequisite for every practice in the next FTH courses.
Order matters: without the workbench, nothing from lessons 3 to 8 runs.
Pick a start date and how much time you have per week. The plan lists the practices for each lesson.
Compare, fill in, and decide.
Run the comparison block and explain in one sentence why the H1 has a higher CoM.
Done when: python3 kit/comparar.py unitree_g1/scene.xml unitree_h1/scene.xml; echo "saída: $?" → FICHA: 7 itens comparados and saída: 0.
Copy kit/ficha-modelo.md to ~/fth/ficha-g1.md and fill in the three columns with what you read and measured in lessons 1 to 7.
Done when: grep -c "\[" ~/fth/ficha-g1.md → 0 (no brackets left to fill in).
Add another folder to the sparse-checkout (for example apptronik_apollo) and compare it with the G1. Heads up: the PAL TALOS has no scene.xml; use pal_talos/scene_position.xml.
Done when: python3 kit/comparar.py unitree_g1/scene.xml [pasta]/scene.xml | tail -1 → FICHA: 7 itens comparados.
The explanation appears after you answer.
Question 1 of 3
What is the "diferença" column of the spec sheet for?skill
Question 2 of 3
A lab wants the humanoid with the most open-source code ready for RL and retargeting. What does the program's research point to?
Question 3 of 3
comparar.py says 139 N·m of maximum torque on the G1. How do you put that in the spec sheet?
Pick an option. The explanation shows up after you answer.