E1 · El árbol del G1
5 minEjecuta el bloque "listar las juntas" y marca en la salida las 6 articulaciones de una pierna.
Listo cuando: la última línea es RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim y saída: 0.
Clase 3 · 15 min
"23 a 43 grados de libertad" es propaganda; el árbol de articulaciones del archivo es el cuerpo que va a comandar tu controlador. En esta clase listas las 29 articulaciones del G1 con límites en grados y torque máximo, entiendes por qué la pierna tiene seis y compruebas que el número coincide con los actuadores.
Comenzar la lección
Objetivo: listar las articulaciones del G1 con límites en grados y torque máximo y comprobar que el número de articulaciones articuladas coincide con nu.
Cada bloque es una rama del árbol que empieza en la pelvis. Haz clic para ver las articulaciones.
12 en las piernas + 3 en la cintura + 14 en los brazos = 29 = nu.
Haz clic en cada etapa.
left_hip_roll_joint: pierna izquierda, cadera, rotación en roll (inclinar hacia el lado). Pitch dobla hacia adelante y hacia atrás; yaw gira en torno al eje vertical.
La sangría de la salida muestra quién cuelga de quién: el tobillo depende de la rodilla, que depende de la cadera.
El archivo guarda range="-0.087267 2.8798" en radianes; el script lo convierte: -5° a 165° en la rodilla.
El roll de la cadera es asimétrico y espejado: izquierdo de -30° a 170°, derecho de -170° a 30°. La pierna se abre mucho hacia afuera y poco hacia adentro, donde está la otra pierna.
El atributo actuatorfrcrange de la articulación recorta lo que el motor puede hacer: 139 N·m en la rodilla, 88 en el pitch de la cadera, 50 en el tobillo, 25 en el hombro, 5 en el pitch y en el yaw de la muñeca.
Es el límite del modelo. Las reventas citan 90 N·m (base) y 120 N·m (EDU) para la rodilla del G1 real (reportado): un punto más en el que archivo y robot pueden divergir.
El total de articulaciones (njnt=30) incluye la base libre. El número que le interesa al controlador es el de articulaciones articuladas, que tiene que coincidir con el de actuadores.
Si no coincide, sobró una articulación pasiva (sin motor) o un motor fuera de una articulación: ambos cambian tu controlador.
RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim
El juntas.py lee todo del MJCF e imprime una línea por articulación.
F=${FTH:-$HOME/fth}; cd $F/anatomia && . $F/.venv/bin/activate
python3 kit/juntas.py unitree_g1/scene.xml; echo "saída: $?"unitree_g1/scene.xml · 29 juntas articuladas
junta mín° máx° torque máx (N·m)
left_hip_pitch_joint -145 165 88
left_hip_roll_joint -30 170 139
left_hip_yaw_joint -158 158 88
left_knee_joint -5 165 139
left_ankle_pitch_joint -50 30 50
left_ankle_roll_joint -15 15 50
right_hip_pitch_joint -145 165 88
right_hip_roll_joint -170 30 139
right_hip_yaw_joint -158 158 88
right_knee_joint -5 165 139
right_ankle_pitch_joint -50 30 50
right_ankle_roll_joint -15 15 50
waist_yaw_joint -150 150 88
waist_roll_joint -30 30 50
waist_pitch_joint -30 30 50
left_shoulder_pitch_joint -177 153 25
left_shoulder_roll_joint -91 129 25
left_shoulder_yaw_joint -150 150 25
left_elbow_joint -60 120 25
left_wrist_roll_joint -113 113 25
left_wrist_pitch_joint -93 93 5
left_wrist_yaw_joint -93 93 5
right_shoulder_pitch_joint -177 153 25
right_shoulder_roll_joint -129 91 25
right_shoulder_yaw_joint -150 150 25
right_elbow_joint -60 120 25
right_wrist_roll_joint -113 113 25
right_wrist_pitch_joint -93 93 5
right_wrist_yaw_joint -93 93 5
RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim
saída: 0El abrir.py de la clase 2 imprime juntas: 30 (1 base flutuante + 29 articuladas). Quien usa njnt=30 como número de motores arma un vector de comando de 30 posiciones y MuJoCo lo rechaza: ctrl tiene nu=29. Cuenta solo las articuladas.
Leer el árbol y sacar conclusiones de él.
Ejecuta el bloque "listar las juntas" y marca en la salida las 6 articulaciones de una pierna.
Listo cuando: la última línea es RESUMO: 29 juntas articuladas + 1 base flutuante · nu=29 · bate com nu: sim y saída: 0.
Ejecuta el mismo script en el H1 y compara: ¿cuántas articulaciones tiene su pierna y cuál es el mayor torque declarado?
Listo cuando: python3 kit/juntas.py unitree_h1/scene.xml | tail -1 → RESUMO: 19 juntas articuladas + 1 base flutuante · nu=19 · bate com nu: sim.
Encuentra en el G1 la articulación de la pierna con el menor rango de movimiento y explica por qué es pequeño.
Listo cuando: python3 kit/juntas.py | grep ankle_roll muestra -15 15 en las dos líneas, y escribiste una frase sobre el porqué.
La explicación aparece después de tu respuesta.
Pregunta 1 de 3
El G1 de Menagerie tiene njnt=30 y nu=29. ¿De dónde viene la diferencia?competencia
Pregunta 2 de 3
¿Por qué la pierna de un humanoide suele tener 6 articulaciones?
Pregunta 3 de 3
La ficha de Unitree dice 1 articulación en la cintura; el modelo de Menagerie tiene 3. ¿Cómo tratar esto?
Elige una alternativa. La explicación aparece después de tu intento.