FTH 1 · Enseñar a caminar|INEMA.CLUB-PRO

Clase 7 · 16 min

Evaluar de verdad: velocidad, giro y empujón

Una policy solo está lista cuando pasa una prueba que escribiste antes de mirar el resultado. En esta clase evalúas la policy lista en 20 episodios con semillas fijas: error de velocidad, giro y empujón de 1,0, 1,5 y 2,0 m/s. Después pasas tu checkpoint de la clase 5 por la misma prueba.

Comenzar la clase
Robot humanoide de pie en un laboratorio oscuro recibiendo un empujón lateral de una vara acolchada, dando un paso para recuperar el equilibrio.

En esta clase vas a

  1. 1Error de velocidad: 0,05 m/s entre lo pedido y lo medido
  2. 2Empujón de 1,0 m/s: 20/20 de pie; 1,5: 16/20; 2,0: 9/20
  3. 3Semillas fijas: los mismos 20 episodios para cualquier policy
  4. 4Dónde termina la evaluación en sim y empieza el sim2sim (curso 2)

Objetivo: evaluar una policy en 20 episodios con semillas fijas, midiendo el error de velocidad y la supervivencia a empujones de fuerza creciente.

01Qué mide una prueba de marcha

Haz clic en cada bloque. El avaliar.py ejecuta los cuatro en cada episodio.

Haz clic en cada bloque del diagrama para ver qué hace.

La prueba se escribe antes del resultado: número de episodios, rango de comando, fuerza y criterio de aprobación (p. ej.: 18/20).

02La policy lista en la prueba

20 episodios de 10 s, empujón de 1,0 m/s. Devuelve 0 cuando todos sobreviven.

Terminal · evaluar con empujón
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/avaliar.py --episodios 20 --empurrao 1.0; echo "saída: $?"
Terminal · empujones más fuertes
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
for e in 1.5 2.0; do python3 kit/avaliar.py --episodios 20 --empurrao $e | tail -1; done
Ejemplo del repositorio
política: unitree_rl_lab velocity v0 (ONNX) · 20 episódios de 10 s · giro +0.0 rad/s · empurrão de 1.0 m/s aos 4 s
erro médio de velocidade (quem não caiu): 0.05 m/s
sobreviveu: 20/20
saída: 0

20 de 20 de pie con un empujón de 1,0 m/s, por encima del entrenamiento (hasta 0,5 m/s por eje, cerca de 0,71 m/s en la diagonal), errando la velocidad por 0,05 m/s en promedio.

03Tu checkpoint en la misma prueba

avaliar.py acepta un .pt entrenado por el kit en lugar de la policy lista. Mismas semillas.

Terminal · tu policy
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/avaliar.py --politica $F/treino/ppo/modelo_20.pt --episodios 5 | tail -2
Ejemplo del repositorio
quedas: ep 0 em 1.3 s, ep 1 em 1.4 s, ep 2 em 1.4 s, ep 3 em 1.4 s, ep 4 em 1.3 s
sobreviveu: 0/5

0 de 5, todas las caídas antes de 1,5 s, incluso sin empujón. Es lo esperado para 20 iteraciones: la prueba confirma lo que las curvas ya decían. El valor importa menos que el hábito: toda policy, lista o tuya, pasa por la misma prueba.

04Hasta dónde llega la evaluación en sim

Qué demuestra esta prueba y qué queda para el curso 2.

1. Demuestra

Que la policy sigue el comando y aguanta empujones en MuJoCo, con el G1 de Menagerie. La policy lista fue entrenada en Isaac Lab: pasar aquí ya es una primera señal de robustez.

05Práctica

Escribir el criterio antes de ver el número.

E1 · Prueba con empujón

5 min

Escribe tu criterio de aprobación (p. ej.: 18/20) y solo entonces ejecuta la evaluación con empujón de 1,0 m/s.

Listo cuando: python3 kit/avaliar.py --episodios 20 --empurrao 1.0; echo "saída: $?" → sobreviveu: 20/20 y saída: 0.

E2 · El margen

5 min

Ejecuta 1,5 y 2,0 m/s y escribe entre qué fuerzas se acaba el margen de la policy.

Listo cuando: las dos líneas muestran sobreviveu: 16/20 y sobreviveu: 9/20; escribiste "entre 1,0 y 1,5 m/s".

E3 · Andar en curva

5 min

Ejecuta la misma prueba con --giro 0.2 y compara el error de velocidad con el de la recta.

Listo cuando: python3 kit/avaliar.py --episodios 20 --giro 0.2 --empurrao 1.0 → la primera línea muestra giro +0.2 rad/s y la última sobreviveu: 20/20 (el 19/10/2026, error de 0.04 m/s).

06Prueba de la clase

La explicación aparece después de tu respuesta.

Pregunta 1 de 3

¿Por qué las semillas de la prueba son fijas?competencia

07En tres frases

PruebaCriterio escrito antes, 20 episodios con semillas fijas, seguimiento y empujón.
MedidaLa política lista: 20/20 con 1,0 m/s, 16/20 con 1,5, 9/20 con 2,0.
LímitePasar en sim es el primer nivel; el sim2sim y el gap son del curso 2.

Para ir más allá

Clase anteriorPróxima clase