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

Clase 8 · 16 min

Currículo de terreno y tu plan de entrenamiento

Nadie entrena la marcha en escaleras el primer día: el terreno y la velocidad pedida crecen conforme la política acierta. En esta clase mides hasta qué nivel llega la política lista, lees cómo mjlab y unitree_rl_lab suben de nivel, y escribes tu plan de entrenamiento en un archivo que un script revisa.

Comenzar la clase
Pista de pruebas en un laboratorio oscuro con rampa de madera, escalones bajos y gravilla, y un robot humanoide subiendo el primer escalón sujeto a un riel de seguridad.

En esta clase vas a

  1. 1Escalones de 2 y 3 cm pasan; de 4 cm en adelante, caída
  2. 2Currículo: sube quien caminó más del 80 % de lo pedido, baja quien caminó menos del 50 %
  3. 3Currículo de comando: el rango de velocidad se abre de 0,1 m/s en 0,1 m/s
  4. 4El plano-treino.md con robô, comando, recompensa, currículo y avaliação

Objetivo: medir el nivel máximo de la política lista, leer las reglas de currículo y escribir un plan de entrenamiento con 5 campos que conferir_plano.py apruebe.

01Un currículo de terreno

Haz clic en cada nivel. Cada robot sube o baja de nivel solo, según lo que caminó.

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

Reglas leídas del código: mjlab mdp/curriculums.py (commit 8bb2bc9) y unitree_rl_lab velocity_env_cfg.py (commit 4960b84).

02Hasta qué nivel llega la policy lista

El terreno.py arma, con el MjSpec, una plataforma de altura h a 1,5 m del robot y lo manda a caminar 8 s a 0,5 m/s. Pasó = no cayó y la pelvis llegó arriba (x > 2,5 m).

Terminal · cinco niveles
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/terreno.py --degraus 0.02 0.03 0.04 0.06 0.10; echo "saída: $?"
Ejemplo del repositorio
política: unitree_rl_lab velocity v0 (ONNX) · comando vx = 0.5 m/s · 8 s · degrau a 1.5 m
degrau    2 cm: passou (pelve em x = 3.4 m)
degrau    3 cm: passou (pelve em x = 4.1 m)
degrau    4 cm: caiu (pelve em x = 2.0 m)
degrau    6 cm: caiu (pelve em x = 2.0 m)
degrau   10 cm: caiu (pelve em x = 2.2 m)
degraus vencidos: 2/5
saída: 0

Los de 2 y 3 cm pasan; desde 4 cm en adelante, el robot cae en x ≈ 2 m, antes de subir a la plataforma. Los niveles que reprueban son los próximos niveles de un currículo: es para ellos que se vuelve a entrenar.

03Cómo suben de nivel los repositorios

Dos currículos corren juntos en el entrenamiento real. Haz clic en cada uno.

1. Terreno

En mjlab, al final de cada episodio, el robot que caminó más del 80 % de la distancia pedida sube un nivel de terreno; el que caminó menos del 50 % baja. Cada robot tiene su nivel: en el mismo entrenamiento, unos están en el plano y otros en los guijarros.

04Tu plan de entrenamiento

Copia la plantilla a ~/fth/treino, cambia cada [corchete] por tu valor y compruébalo. El ejemplo del kit muestra un plan que pasa.

Archivo · kit/plano-treino-modelo.md
# Plano de treino de locomoção

Robô: [qual humanoide e qual arquivo, ex.: Unitree G1 29 GDL, unitree_g1/scene.xml do Menagerie 62ab00f]
Comando: [faixa de velocidade, ex.: vx de -0.5 a 1.0 m/s, vy de -0.3 a 0.3 m/s, giro de -0.2 a 0.2 rad/s]
Recompensa: [termos e pesos, ex.: track_linear_velocity 2.0, upright 1.0, action_rate_l2 -0.1]
Currículo: [níveis em ordem, separados por →, ex.: plano → degrau de 5 cm → rampa → pedriscos]
Avaliação: [critério de aprovação com número, ex.: 18/20 episódios de pé com empurrão de 1.0 m/s]
Terminal · copiar y comprobar
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
[ -f $F/treino/plano-treino.md ] || cp kit/plano-treino-modelo.md $F/treino/plano-treino.md
python3 kit/conferir_plano.py $F/treino/plano-treino.md; echo "saída: $?"
Terminal · el ejemplo del kit
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/conferir_plano.py kit/exemplos/plano-treino.md; echo "saída: $?"
Ejemplo del repositorio
FALTA Robô: não preenchido
FALTA Comando: não preenchido
FALTA Recompensa: não preenchido
FALTA Currículo: não preenchido
FALTA Avaliação: não preenchido
campos ok: 0/5
incompleto
saída: 1

Con la plantilla aún llena de [corchetes], faltan los cinco campos y el script sale con 1. Reglas: comando con número y m/s, recompensa con 2 o más términos del kit, currículo con 3 o más niveles separados por →, evaluación con un criterio numérico (X/N o %).

05Lo que montaste en este curso

Cuatro entregas. Haz clic en cada una para ver el "listo cuando".

Clases 1–2Policy

y PD

3 ejercicios

caiu: não; de pé com PD.

Ver la clase
Clases 3–4Entorno

y recompensa

3 ejercicios

96 → 29; parado 42,32.

Ver la clase
Clases 5–6Entrenamiento

y curvas

3 ejercicios

modelo_20.pt; 1 alerta leída.

Ver la clase
Clases 7–8Prueba

y plan

3 ejercicios

20/20; plano ok.

Ver la clase
Al final del cursoPolicy ejecutada, recompensa medida, entrenamiento leído, prueba y plan escritos.
8 clases
Haz clic en un ejercicio para ver qué hacer y el "listo cuando".
  1. 1/5

    Policy

    La policy lista caminando en MuJoCo y el PD de articulación medido, con las ganancias de la policy entendidas.

  2. 2/5

    Entorno

    Las cuatro piezas del entorno y la recompensa medida término a término, con el peso que cambia el juego.

  3. 3/5

    Entrenamiento

    Un entrenamiento PPO en CPU con checkpoint y las curvas leídas, con la recompensa hackeada (reward hacking) reconocida.

  4. 4/5

    Prueba

    La policy evaluada con empujón y nivel, y tu plan de entrenamiento revisado.

  5. 5/5

    El curso completo

    Cuatro entregas en secuencia. El curso 2 lleva la policy de este curso del simulador al suelo.

El orden importa: el plan de la clase 8 usa la recompensa de la clase 4 y la prueba de la clase 7.

06Genera tu plan de estudio con fechas

Elige la fecha de inicio y cuánto tiempo tienes por semana. El plan lista las prácticas de cada clase.

07Práctica

Medir el límite y planear el próximo entrenamiento.

E1 · El nivel máximo

5 min

Ejecuta los cinco niveles y anota el más alto que la policy supera.

Listo cuando: python3 kit/terreno.py --degraus 0.02 0.03 0.04 0.06 0.10; echo "saída: $?" → degraus vencidos: 2/5 y saída: 0.

E2 · El plan reprobado

2 min

Copia el modelo y revísalo antes de completarlo, para ver cómo el script lo reprueba.

Listo cuando: la salida muestra campos ok: 0/5, incompleto y saída: 1.

E3 · Tu plan

20 min

Completa el ~/fth/treino/plano-treino.md con tus elecciones: un currículo que empiece en el plano y pase por los niveles que reprobaron en E1, y una evaluación con número.

Listo cuando: python3 kit/conferir_plano.py $F/treino/plano-treino.md; echo "saída: $?" → campos ok: 5/5, ok y saída: 0.

08Prueba de la clase

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

Pregunta 1 de 3

En el currículo de terreno de mjlab, ¿cuándo sube de nivel un robot?competencia

09En tres frases

LímiteLa política lista supera escalones de 2 y 3 cm y cae a partir de 4 cm.
CurrículoEl terreno sube con el 80 % de la distancia y baja con menos del 50 %; el comando abre 0,1 m/s cada vez.
PlanoRobot, comando, recompensa, currículo y evaluación escritos y revisados antes de entrenar.

Para ir más allá

Clase anteriorVolver al inicio del curso