E1 · Con pórtico
5 minEjecuta el replay del boxeo con la pelvis en el pórtico.
Listo cuando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz | tail -2 → erro médio de junta: 0.3° y queda: não.
Clase 4 · 15 min
Tener el movimiento en el formato del robot no es hacerlo ejecutar. Si mandas solo los ángulos a los motores, imita por un segundo y se cae: nadie cuida el equilibrio. En esta clase reproduces el boxeo en MuJoCo con y sin pórtico, mides el error de cada articulación y ves qué resuelven BeyondMimic, GMT y SONIC.
Comenzar la clase
Objetivo: reproducir el movimiento en MuJoCo con y sin pórtico y explicar por qué hace falta una policy de motion tracking.
Haz clic en cada bloque.
Pórtico virtual = la base se recoloca en la pose de la referencia en cada paso, como un robot suspendido en la primera prueba.
Haz clic en cada uno. Todos entrenan en GPU; aquí se muestran, no se ejecutan.
Hace motion tracking de movimientos dinámicos (giro, carrera, estrella) y usa una policy de difusión guiada para tareas sin entrenamiento específico (arXiv 2508.08241, ago/2025). El repositorio whole_body_tracking fija Isaac Lab 2.1.0.
El 15/10/2026 el README de ese repositorio dice que fue retirado: el motion tracking de BeyondMimic continúa en mjlab, en la tarea Mjlab-Tracking-Flat-Unitree-G1.
Motion tracking general con muestreo adaptativo (movimientos fáciles × difíciles) y una capa de mezcla de expertos (arXiv 2506.14770, jun/2025). Reportado por la investigación de la formación a partir del resumen del artículo.
De NVIDIA: 42M de parámetros, entrenado con más de 100M de cuadros (unas 700 h). Tiene tres checkpoints públicos para el G1 (original, baja latencia y v1.1 del 23/07/2026), tokens de 64 dimensiones y controlador a 50 Hz.
Despliegue en C++ y TensorRT; código Apache-2.0, pesos bajo la NVIDIA Open Model License (uso comercial con atribución).
GMR exporta CSV para BeyondMimic, cuyo pipeline de imitación mjlab adoptó. Tu .npz de la clase 3 es el mismo dato en un formato propio del kit.
Las articulaciones reciben la referencia en cada paso de 2 ms; la base se recoloca en la pose de la referencia. El error es la diferencia entre el ángulo medido y el de la referencia en el paso siguiente.
F=${FTH:-$HOME/fth}; cd $F/corpo-inteiro && . $F/.venv/bin/activate
python3 kit/reproduzir.py $F/movimentos/boxe_g1.npz; echo "saída: $?" if a.modo == "portico":
fth.portico(d, r[:7])
d.ctrl[mot] = r[adr]
mujoco.mj_step(m, d)movimento: boxe_g1.npz · 1200 quadros a 120 Hz · 10.0 s · modo portico passos de física: 4995 (2 ms cada) erro médio de junta: 0.3° · pior junta: right_shoulder_roll_joint (1.9°) queda: não saída: 0
Error medio de 0,3°: con el cuerpo sostenido, el PD da abasto. El hombro derecho, que más se mueve en el boxeo, es el peor.
movimento: boxe_g1.npz · 1200 quadros a 120 Hz · 10.0 s · modo livre passos de física: 839 (2 ms cada) erro médio de junta: 0.5° · pior junta: right_shoulder_roll_joint (2.8°) queda: sim, em t = 1.68 s saída: 0
El mismo replay, suelto: cae en 1,68 s con el error de articulación todavía pequeño. Seguir los ángulos no es equilibrar. Eso es lo que aprende la policy de motion tracking.
Comando del README de mjlab (commit 8bb2bc9, 18/10/2026). Pide una GPU NVIDIA y una cuenta en WandB para el registro de los movimientos; no se ejecutó aquí y no es un requisito previo del curso.
# github.com/mujocolab/mjlab · README (commit 8bb2bc9, 18/10/2026) uv run train Mjlab-Tracking-Flat-Unitree-G1 --registry-name your-org/motions/motion-name --env.scene.num-envs 4096 uv run play Mjlab-Tracking-Flat-Unitree-G1 --wandb-run-path your-org/mjlab/run-id
Medir con y sin pórtico.
Ejecuta el replay del boxeo con la pelvis en el pórtico.
Listo cuando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz | tail -2 → erro médio de junta: 0.3° y queda: não.
Ejecútalo con --modo livre y anota el instante de la caída.
Listo cuando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_g1.npz --modo livre | tail -1 → queda: sim, em t = 1.68 s.
Si hiciste el E3 de la clase 3, reproduce boxe_trecho2.npz con pórtico y compara el error medio y la peor articulación.
Listo cuando: python3 kit/reproduzir.py ~/fth/movimentos/boxe_trecho2.npz | grep erro → erro médio de junta: 1.5°.
La explicación aparece después de tu respuesta.
Pregunta 1 de 3
Sin pórtico, el error de articulación es pequeño y aun así el G1 cae. ¿Por qué?competencia
Pregunta 2 de 3
¿Dónde está hoy el motion tracking de BeyondMimic, según el README del repositorio original?
Pregunta 3 de 3
¿Qué hace el pórtico (virtual) del kit?
Elige una alternativa. La explicación aparece después de tu intento.