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

Clase 5 · 15 min

Corregir con datos del robot: delta action y similares

A veces el gap no cabe en dos parámetros. La idea de ASAP (RSS 2025) es aprender la acción que falta: un modelo que, sumado al comando dentro del simulador, hace que repita lo que hizo el robot real. En esta clase ajustas una versión mínima de esa idea con el log del ensayo de banco y mides el error del simulador antes y después.

Empezar la clase
Manos en un teclado frente a dos monitores con curvas de trayectoria y un robot simulado, con un robot humanoide suspendido en el pórtico al fondo.

En esta clase vas a

  1. 1Las cuatro etapas de ASAP: pre-entrenamiento, recolección, modelo delta, ajuste fino
  2. 2Un juguete lineal de la idea: 8 coeficientes por mínimos cuadrados
  3. 3Error sim × real de 8,16° a 3,82°
  4. 4Cuándo usar sysid, cuándo usar delta action

Objetivo: corregir el simulador con datos del robot mediante un modelo de acción delta y medir el error de rastreo sim × real antes y después.

01El ciclo de ASAP

Haz clic en cada bloque. Las cuatro etapas están en el README de LeCAR-Lab/ASAP.

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

ASAP mostró habilidades ágiles en el G1 con este ciclo. El kit solo hace las etapas 2 y 3, en pequeño.

02El juguete del kit (y lo que no es)

delta.py, con el log.npz de la clase 3. Haz clic en cada etapa.

1. El modelo

Por articulación de la pierna: δ = a·(alvo − q) + b·dq, recalculado cada 20 ms (el paso de la policy) y sumado al objetivo dentro del simulador.

Cuatro articulaciones, dos coeficientes cada una.

03Ajustar la corrección

Usa el mismo log.npz de la clase 3. Tarda de 1 a 2 minutos en CPU (cada evaluación repite los 4 s del ensayo).

Terminal · delta action (juguete lineal)
F=${FTH:-$HOME/fth}; cd $F/sim2real && . $F/.venv/bin/activate
python3 kit/delta.py $F/log.npz; echo "saída: $?"
Ejemplo del repositorio
log: ~/fth/log.npz · correção recalculada a cada 20 ms · δ = a·(alvo − q) + b·dq por junta
  left_hip_pitch     a = -0.66  b = -0.013
  left_hip_roll      a = -0.48  b = +0.006
  left_knee          a = -0.66  b = +0.011
  left_ankle_pitch   a = -0.71  b = +0.031
erro de rastreio sim × real: antes 8.16° → depois 3.82° (RMS das posições)
saída: 0

Antes, el simulador se equivoca en las posiciones de la pierna por 8,16° (RMS). Con la corrección, 3,82°. Sale 0 cuando el error baja.

04Práctica

Hacer que el simulador imite al robot.

E1 · Error antes y después

3 min

Ejecuta la corrección con el log de la clase 3.

Listo cuando: python3 kit/delta.py ~/fth/log.npz; echo "saída: $?" → erro de rastreio sim × real: antes 8.16° → depois 3.82° y saída: 0.

E2 · Leer los coeficientes

5 min

Compara los valores de a de las cuatro articulaciones con el kp identificado en la clase 3 y escribe, en una línea, por qué todos salieron negativos.

Listo cuando: una línea que cite los cuatro a (entre −0,48 y −0,71) y la palabra "blando" o "retardo".

E3 · ¿Sysid o delta?

5 min

Para cada caso, escribe cuál usarías: (1) la batería nueva dejó al robot 2 kg más pesado; (2) la transmisión de la rodilla tiene un juego que cambia con la temperatura.

Listo cuando: (1) sysid/medir la masa; (2) delta action o actuator network, con el motivo en una frase cada uno.

05Prueba de la clase

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

Pregunta 1 de 3

En el ASAP, ¿para qué sirve el modelo de delta action?competencia

06En tres frases

IdeaDelta action aprende la acción que le falta al simulador para imitar al robot.
MedidaOcho coeficientes llevan el error sim × real de 8,16° a 3,82°.
ElecciónParámetro conocido: sysid. Efecto sin parámetro claro: delta action.

Para ir más allá

Clase anteriorSiguiente clase