E1 · Banco listo
10 minEjecuta el bloque de preparación. Si el curso 0 ya montó ~/fth, solo agrega lo que falta.
Listo cuando: el bloque termina en unitree_rl_lab 4960b84 (2025-11-19) y mujoco 3.16.0 · onnxruntime 1.31.0 · torch 2.14.1+cpu.
Clase 1 · 16 min
El Unitree G1 de este curso camina porque una red neuronal envía 29 objetivos de articulación cada 20 ms. En esta clase armas el banco de trabajo, ejecutas la política de marcha lista del Unitree G1 en MuJoCo, ves al mismo robot caer sin ella y entiendes por qué el control clásico dio paso al RL en simulación masiva.
Comenzar la clase
Objetivo: ejecutar la policy de marcha lista del G1 en MuJoCo, medir lo que hace y compararla con el robot sin policy.
Haz clic en cada bloque. Los tres primeros son el camino clásico; los tres últimos, lo que practica el curso.
MPC sigue vivo como concepto y donde se exige garantía. La práctica de este curso es la columna de la derecha: simulación, policy y PD.
Haz clic en cada etapa.
El Unitree G1 de 29 grados de libertad del MuJoCo Menagerie, fijado en el commit 62ab00f (el mismo del curso 0). Actuador de posición con el kp y el kd de la policy.
Unitree publica en el unitree_rl_lab una policy de velocidad del G1 ya entrenada en Isaac Lab y exportada en ONNX, con el deploy.yaml (orden de las articulaciones, kp y kd, pose por defecto). Licencia Apache-2.0. El kit fija el commit 4960b84.
Ejecutar en MuJoCo una policy entrenada en Isaac Lab ya es cruzar de un motor de física a otro. El curso 2 (sim2real) lo convierte en una compuerta.
Cada 20 ms la policy lee el estado y manda 29 objetivos; MuJoCo integra a 500 Hz (paso de 2 ms) con el PD sosteniendo cada articulación en su objetivo.
El andar_demo.py cuenta cuántos metros avanzó la pelvis y si se cayó (pelvis inclinada más de 70° o por debajo de 0,3 m, el mismo criterio del entorno de la clase 3).
--sem-politica deja solo el PD sosteniendo la pose por defecto. Nadie corrige el equilibrio y el robot se cae: lo que mantiene al G1 de pie caminando es el lazo cerrado de la policy.
Si hiciste el curso 0, el venv y el Menagerie ya están ahí: el bloque solo agrega lo que falta (onnxruntime, torch para CPU, la policy). Versiones fijas, probadas el 19/10/2026.
F=${FTH:-$HOME/fth}; mkdir -p $F && cd $F
[ -d .venv ] || python3.12 -m venv .venv
. .venv/bin/activate && pip install -q mujoco==3.16.0 numpy pyyaml onnxruntime==1.31.0
pip install -q torch==2.14.1 --index-url https://download.pytorch.org/whl/cpu
[ -d locomocao ] || git clone -q --depth 1 https://github.com/inematds/formacao-fth-locomocao-v72 locomocao
[ -d mujoco_menagerie ] || git clone -q --filter=blob:none --sparse https://github.com/google-deepmind/mujoco_menagerie
(cd mujoco_menagerie && git sparse-checkout add unitree_g1 && git checkout -q 62ab00f)
[ -d unitree_rl_lab ] || git clone -q --filter=blob:none --sparse https://github.com/unitreerobotics/unitree_rl_lab
cd unitree_rl_lab && git sparse-checkout set deploy/robots/g1_29dof/config/policy/velocity
git checkout -q 4960b84 && git log -1 --format='unitree_rl_lab %h (%ad)' --date=short
python3 -c "import mujoco, onnxruntime, torch; print('mujoco', mujoco.__version__, '· onnxruntime', onnxruntime.__version__, '· torch', torch.__version__)"unitree_rl_lab 4960b84 (2025-11-19) mujoco 3.16.0 · onnxruntime 1.31.0 · torch 2.14.1+cpu
Dos líneas y ningún error. Fija los commits: un policy.onnx de otro commit puede tener otro orden de entradas. El torch viene de la página de wheels de CPU de PyTorch (el curso no necesita GPU).
ERRO: não achei /tmp/sem-bancada/unitree_rl_lab/deploy/robots/g1_29dof/config/policy/velocity/v0/exported/policy.onnx. Rode a preparação da aula 1. saída: 1
Los scripts buscan todo en ~/fth, o en la carpeta de la variable FTH. Si la preparación no se ejecutó (o se ejecutó en otra carpeta), el error indica la ruta que faltó.
10 s pidiendo 0,7 m/s hacia adelante. Devuelve 0 si no se cayó, 1 si se cayó.
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/andar_demo.py --vx 0.7 --s 10; echo "saída: $?"F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/andar_demo.py --vx 0.7 --s 10 --sem-politicaF=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/andar_demo.py --vx 1.0 --s 10 | tail -3política: unitree_rl_lab velocity v0 (ONNX) · 480 → 29 · 50 Hz comando: vx = 0.7 m/s por 10 s · simulação a 500 Hz, política a 50 Hz andou: 6.6 m para a frente · desvio lateral: 0.5 m · velocidade média: 0.66 m/s altura final da pelve: 0.77 m caiu: não saída: 0
6,6 m en 10 s (0,66 m/s para 0,70 pedidos) y la pelvis termina a 0,77 m. La desviación lateral de 0,5 m es normal: nadie corrige la dirección, solo la velocidad.
política: nenhuma (só PD na pose padrão) comando: vx = 0.7 m/s por 10 s · simulação a 500 Hz, política a 50 Hz andou: 0.8 m para a frente · desvio lateral: 0.0 m · velocidade média: 0.57 m/s altura final da pelve: 0.33 m caiu: sim, em t = 1.4 s
Caída a los 1,4 s. La "velocidad media" de 0,57 m/s aquí es el cuerpo cayendo hacia adelante, no caminar: lee siempre la velocidad junto con caiu.
andou: 9.0 m para a frente · desvio lateral: 1.2 m · velocidade média: 0.90 m/s altura final da pelve: 0.76 m caiu: não
9,0 m en 10 s. 1,0 m/s es el techo de velocidad hacia adelante con el que se entrenó la policy (rango de comando de unitree_rl_lab: −0,5 a 1,0 m/s).
Ver la policy funcionar antes de abrir las piezas.
Ejecuta el bloque de preparación. Si el curso 0 ya montó ~/fth, solo agrega lo que falta.
Listo cuando: el bloque termina en unitree_rl_lab 4960b84 (2025-11-19) y mujoco 3.16.0 · onnxruntime 1.31.0 · torch 2.14.1+cpu.
Ejecuta la policy con 0,7 m/s por 10 s y anota cuántos metros avanzó la pelvis.
Listo cuando: python3 kit/andar_demo.py --vx 0.7 --s 10; echo "saída: $?" → caiu: não y saída: 0.
Ejecuta con --sem-politica y escribe, en una frase, qué mantiene al robot de pie cuando camina.
Listo cuando: la salida muestra caiu: sim, em t = 1.4 s; tu frase dice que es el lazo cerrado de la policy (el PD solo no corrige el equilibrio).
La explicación aparece después de tu respuesta.
Pregunta 1 de 3
¿Qué entrega la policy de marcha del G1 cada 20 ms?competencia
Pregunta 2 de 3
Sin policy, el robot "caminó" a 0,57 m/s y cayó a los 1,4 s. ¿Cómo leer ese número?
Pregunta 3 de 3
¿Qué reportó Figure sobre Helix 02, en enero de 2026?
Elige una alternativa. La explicación aparece después de tu intento.