E1 · The G1 hand
5 minRun mao.py and check the 7 DoF on both hands.
Done when: python3 kit/mao.py | tail -1 → dedos tocando o objeto: 3/3 · estimativa do modelo, não medida no robô.
Lesson 6 · 15 min
The whole body walks, balances and imitates; when it is time to grasp, everything depends on a hand with few degrees of freedom and almost no touch. In this lesson you count the joints of the G1's hand in the model, compare it with two research hands, and measure a simulated grip, knowing what that number is and what it is not.
Start the lesson
Goal: count the degrees of freedom of the G1's hand, compare it with other hands, and measure a simulated grip in the model.
Click each block.
Few degrees of freedom and little touch: this is where fine tasks still fail.
Click each group.
Unitree Dex3-1: 7 DoF, optional tactile, included in the G1 EDU package (fact, unitree.com/g1).
In the model: both of the Menagerie G1's hands, with limits and torque declared.
LEAP Hand: 16 DoF, one actuator per joint. Shadow Hand: 24 joints and 20 actuators, because some fingers have joints coupled by tendon.
Both models are in the Menagerie: just add the folder to the sparse-checkout.
Inspire RH56H1: 6 actuators and 11 joints, 260 tactile points, about US$ 4,500–5,780 resold (reported). Sharpa Wave: 22 DoF, over 1,000 sensors per fingertip, about US$ 20 thousand (reported, CES 2026).
The Optimus hand has no data verified by the course research. Hand prices vary by version and reseller; nothing here is a buying recommendation.
mao.py counts the joints of each hand in the MJCF, reads the declared torque and closes the right hand around a fixed 4 cm cylinder, with the pelvis on the gantry. It reads each finger's normal contact force after 2 s.
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
python3 kit/mao.py; echo "saída: $?"FECHAR = {"right_hand_index_0_joint": 1.57, "right_hand_index_1_joint": 1.75,
"right_hand_middle_0_joint": 1.57, "right_hand_middle_1_joint": 1.75,
"right_hand_thumb_0_joint": 0.0, "right_hand_thumb_1_joint": -1.05, "right_hand_thumb_2_joint": -1.75}modelo: unitree_g1/scene_with_hands.xml · nu=43 mão left: 7 GDL (polegar 3, indicador 2, médio 2) mão right: 7 GDL (polegar 3, indicador 2, médio 2) torque declarado por junta da mão: 1.40 a 2.45 N·m (actuatorfrcrange) aperto simulado num cilindro fixo de 4 cm (mão direita, 2 s): polegar : 18.6 N indicador: 53.0 N médio : 81.4 N dedos tocando o objeto: 3/3 · estimativa do modelo, não medida no robô saída: 0
7 degrees of freedom per hand, as in the Dex3-1 spec sheet. The forces come from the model: the cylinder is fixed, the PD pushes up to the torque limit, and the middle finger grips close to the joint. This is not the robot's grip force, which Unitree doesn't publish on the page I read.
modelo: unitree_g1/scene.xml · nu=29 ERRO: este modelo não tem juntas de mão. No G1, use unitree_g1/scene_with_hands.xml. saída: 1
The G1's scene.xml is the 29-DoF version, without hands. For the hands, use unitree_g1/scene_with_hands.xml.
2 mão avulsa: 16 GDL · 16 atuadores
Two hands with 7 degrees of freedom on the G1; the Allegro (wonik_allegro) has 16 degrees of freedom and 16 actuators.
Adds the LEAP Hand and Shadow Hand folders to your Menagerie (sparse-checkout add, without downloading the rest) and counts the joints.
F=${FTH:-$HOME/fth}; cd $F/mujoco_menagerie && git sparse-checkout add leap_hand shadow_hand
cd $F/corpo-inteiro && . $F/.venv/bin/activate
for h in leap_hand/right_hand.xml shadow_hand/right_hand.xml; do python3 kit/mao.py --modelo $h | tail -1 | sed "s#^#$h: #"; doneleap_hand/right_hand.xml: mão avulsa: 16 GDL · 16 atuadores shadow_hand/right_hand.xml: mão avulsa: 24 GDL · 20 atuadores
On the Shadow, 24 joints for 20 actuators: four joints follow others through coupling. More DoF is not the same as more motors.
Count, compare, squeeze.
Run mao.py and check the 7 DoF on both hands.
Done when: python3 kit/mao.py | tail -1 → dedos tocando o objeto: 3/3 · estimativa do modelo, não medida no robô.
Run only the count, without the grip simulation.
Done when: python3 kit/mao.py --so-contar | grep -c "7 GDL" → 2.
Add wonik_allegro to the sparse-checkout and count the joints of its right hand.
Done when: python3 kit/mao.py --modelo wonik_allegro/right_hand.xml | tail -1 → one line mão avulsa: [N] GDL · [N] atuadores.
The explanation appears after your answer.
Question 1 of 3
The kit measured 81 N on the middle finger. How can this number go into a spec sheet?skill
Question 2 of 3
The Shadow Hand has 24 joints and 20 actuators. What does that mean?
Question 3 of 3
Why is the simulated force so different between the thumb, index finger and middle finger?
Choose an option. The explanation appears after you try.