FTH 2 · Del simulador al suelo|INEMA.CLUB-PRO

Clase 8 · 13 min

La escalera de despliegue: sim → sim2sim → suspenso → chão

Todo lo de este curso se convierte en un plan: cuatro niveles, cada uno con lo que corre, el criterio para subir y el motivo para parar y volver. En esta clase escribes tu escalera en un archivo YAML, la verificas con un script y simulas la cola de niveles con una falla en el medio. El procedimiento de seguridad con el robot encendido es del curso 4.

Empezar la clase
Área de pruebas de un laboratorio con un robot humanoide sujeto a un pórtico, piso demarcado con cinta amarilla y un botón rojo de parada en primer plano.

En esta clase vas a

  1. 1Los cuatro niveles y lo que cada clase de este curso les entrega
  2. 2Criterio de paso en el formato comando → salida esperada
  3. 3La cola de niveles: si falla, vuelve un nivel
  4. 4Tu plan con fechas

Objetivo: escribir la escalera sim → sim2sim → suspenso → chão con criterio de paso y de parada en cada nivel y verificarla por script.

01Los cuatro niveles

Haz clic en cada nivel. Solo se sube cuando el criterio es verdadero.

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

Si falla en un nivel, vuelve al anterior con lo que aprendió: nuevo parámetro identificado, nuevo rango de aleatorización, nuevo criterio.

02La cola de niveles

Ejecútalo, mira cómo falla un nivel y ejecútalo de nuevo. Es el ciclo de la escalera.

subiendo

en el nivel

pasó

volvió

Simulación ilustrativa en el navegador. La falla en el nivel "Suspendido" es intencional, para mostrar el retorno.

03Tu escalera en YAML

Copia el modelo a ~/fth/escada.yaml y cámbialo por tu robot y tus criterios. El conferir_escada.py exige los 4 niveles en orden, con onde, criterio (comando → salida) y cuándo parar.

Archivo · kit/escada-modelo.yaml
# escada.yaml — la escalera de despliegue de tu política (FTH 2, clase 8)
# Cada nivel: qué se ejecuta, el criterio para subir (comando → salida esperada) y cuándo parar y volver.
politica: unitree_rl_lab G1 29 GDL velocity v0 (ONNX)
robo: Unitree G1 EDU (29 GDL)
degraus:
  - nome: sim
    onde: MuJoCo 3.16 + G1 do Menagerie, com as faixas de randomização do treino
    criterio: "python3 kit/randomizar.py --seeds 20 --faixa treino → sobreviveu: 20/20"
    parar_se: qualquer queda dentro da faixa do treino
  - nome: sim2sim
    onde: outro MJCF (unitree_mujoco) e o caminho de mensagens do robô (DDS, rt/lowcmd e rt/lowstate)
    criterio: "python3 kit/portao_sim2sim.py --passo 0.001 --dds → PORTÃO: passou (3 de 3 etapas)"
    parar_se: queda, velocidade fora de ±0,15 m/s, pernas no limite de torque ou política abaixo de 45 Hz
  - nome: suspenso
    onde: robô no pórtico, pés fora do chão, elástico ou cabo de segurança
    criterio: "ensaio de bancada + sysid → kp identificado e atraso medido; a política mexe as pernas sem bater no limite"
    parar_se: junta batendo no limite, vibração, temperatura subindo, atraso maior que o simulado
  - nome: chao
    onde: piso plano, área isolada, cabo frouxo no pórtico, pessoa no botão de parada
    criterio: "teste no chão → 10 s parado + 10 s a 0,3 m/s sem queda, três vezes seguidas"
    parar_se: tropeço, queda, qualquer pessoa dentro da área
Terminal · verificar la escalera
F=${FTH:-$HOME/fth}; cd $F/sim2real && . $F/.venv/bin/activate
[ -f $F/escada.yaml ] || cp kit/escada-modelo.yaml $F/escada.yaml
python3 kit/conferir_escada.py $F/escada.yaml; echo "saída: $?"
Terminal · escalera sin criterio de parada (error común)
F=${FTH:-$HOME/fth}; cd $F/sim2real && . $F/.venv/bin/activate
grep -v "parar_se: tropeço" kit/escada-modelo.yaml > $F/escada-incompleta.yaml
python3 kit/conferir_escada.py $F/escada-incompleta.yaml; echo "saída: $?"
Ejemplo del repositorio
4 degraus, 4 critérios · escada ok
saída: 0

Cuatro niveles, cuatro criterios, salida 0.

04Práctica

El plan hasta el piso, verificable.

E1 · Escalera revisada

15 min

Copia el modelo, cambia robot, policy y criterios por los tuyos (usa las salidas que tú mismo capturaste en las clases 2, 3 y 6) y revísala.

Listo cuando: python3 kit/conferir_escada.py ~/fth/escada.yaml; echo "saída: $?" → 4 degraus, 4 critérios · escada ok y saída: 0.

E2 · El motivo para volver

5 min

Para cada nivel, escribe en el YAML un motivo de parada que sepas medir (con el comando o el instrumento).

Listo cuando: los 4 campos parar_se citan algo medible (caída, ms, %, N·m, temperatura).

E3 · Plan con fechas

5 min

Genera tu plan de estudio con el generador de abajo y márcalo en el calendario.

Listo cuando: el plano.md descargado lista las 8 clases con la práctica y el "listo cuando" de cada una.

05Lo que armaste en este curso

Cuatro entregas principales. Haz clic en un nivel para ver el "listo cuando".

Clases 1–2Gap

medido

3 ejercicios

Caída en 2,3 s; 20/20 × 8/20.

Ver la clase
Clases 3–4Actuador

kp, retardo

3 ejercicios

kp a ±10 %; retardo de 22 ms.

Ver la clase
Clases 5–6Compuerta (gate)

delta, DDS

3 ejercicios

Error sim × real en caída; compuerta (gate) 3 de 3.

Ver la clase
Clases 7–8Escalera

hasta el piso

3 ejercicios

escada.yaml con 4 criterios.

Ver la clase
Al final del cursoGap medido, actuador identificado, compuerta (gate) superada y escalera escrita.
8 clases
Haz clic en un ejercicio para ver qué hacer y el "listo cuando".
  1. 1/5

    Gap

    El gap de una policy lista, medido, y la cobertura de la domain randomization del entrenamiento comparada con el mundo de afuera.

  2. 2/5

    Actuador

    El actuador del "robot real" identificado en el pórtico y el retardo medido por nivel, con la compensación que hace caminar al "real".

  3. 3/5

    Compuerta (gate)

    El simulador corregido con datos y la policy pasando por otro modelo y por el DDS del fabricante.

  4. 4/5

    Escalera

    El gemelo digital y la prueba en la física, y la escalera con criterio para subir y para detenerse en cada nivel.

  5. 5/5

    El curso completo

    Cuatro entregas en secuencia. La escalera es lo que el curso 4 (operar) aplica al robot de verdad.

El orden importa: el criterio de cada nivel usa la salida de una clase anterior.

06Genera tu plan con fechas

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

07Prueba de la clase

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

Pregunta 1 de 3

¿En qué nivel se hacen el ensayo de banco, el sysid y la medición de retardo (latencia) en el robot real?competencia

08En tres frases

NivelesSim, sim2sim, suspendido y piso, en ese orden.
CriterioCada nivel tiene comando → salida para subir y un motivo medible para detenerse.
VueltaSi falla, vuelve un nivel con lo que mediste; el curso 4 aplica la escalera al robot.

Para ir más allá

Clase anteriorVolver al inicio del curso