FTH 2 · Do simulador ao chão|INEMA.CLUB-PRO

Aula 5 · 15 min

Corrigir com dados do robô: delta action e afins

Às vezes o gap não cabe em dois parâmetros. A ideia do ASAP (RSS 2025) é aprender a ação que falta: um modelo que, somado ao comando dentro do simulador, faz ele repetir o que o robô real fez. Nesta aula você ajusta uma versão mínima dessa ideia com o log da bancada e mede o erro do simulador antes e depois.

Começar a aula
Mãos num teclado diante de dois monitores com curvas de trajetória e um robô simulado, com um robô humanoide suspenso no pórtico ao fundo.

Nesta aula você vai

  1. 1As quatro etapas do ASAP: pré-treino, coleta, modelo delta, ajuste fino
  2. 2Um brinquedo linear da ideia: 8 coeficientes por mínimos quadrados
  3. 3Erro sim × real de 8,16° para 3,82°
  4. 4Quando usar sysid, quando usar delta action

Objetivo: corrigir o simulador com dados do robô por um modelo de ação delta e medir o erro de rastreio sim × real antes e depois.

01O ciclo do ASAP

Clique em cada bloco. As quatro etapas estão no README do LeCAR-Lab/ASAP.

Clique em cada bloco do diagrama para ver o que ele faz.

O ASAP mostrou habilidades ágeis no G1 com esse ciclo. O kit só faz as etapas 2 e 3, em pequeno.

02O brinquedo do kit (e o que ele não é)

delta.py, com o log.npz da aula 3. Clique em cada etapa.

1. O modelo

Por junta da perna: δ = a·(alvo − q) + b·dq, recalculado a cada 20 ms (o passo da política) e somado ao alvo dentro do simulador.

Quatro juntas, dois coeficientes cada.

03Ajustar a correção

Usa o mesmo log.npz da aula 3. Leva de 1 a 2 minutos em CPU (cada avaliação repete os 4 s do ensaio).

Terminal · delta action (brinquedo linear)
F=${FTH:-$HOME/fth}; cd $F/sim2real && . $F/.venv/bin/activate
python3 kit/delta.py $F/log.npz; echo "saída: $?"
Exemplo do repositório
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, o simulador erra as posições da perna em 8,16° (RMS). Com a correção, 3,82°. Sai 0 quando o erro cai.

04Prática

Fazer o simulador imitar o robô.

E1 · Erro antes e depois

3 min

Rode a correção com o log da aula 3.

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

E2 · Ler os coeficientes

5 min

Compare os valores de a das quatro juntas com o kp identificado na aula 3 e escreva, em uma linha, por que todos saíram negativos.

Pronto quando: uma linha citando os quatro a (entre −0,48 e −0,71) e a palavra "mole" ou "atraso".

E3 · Sysid ou delta?

5 min

Para cada caso, escreva qual você usaria: (1) a bateria nova deixou o robô 2 kg mais pesado; (2) a transmissão do joelho tem folga que muda com a temperatura.

Pronto quando: (1) sysid/medir a massa; (2) delta action ou actuator network, com o motivo em uma frase cada.

05Teste da aula

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

No ASAP, para que serve o modelo de delta action?competência

06Em três frases

IdeiaDelta action aprende a ação que falta para o simulador imitar o robô.
MedidaOito coeficientes levam o erro sim × real de 8,16° para 3,82°.
EscolhaParâmetro conhecido: sysid. Efeito sem parâmetro claro: delta action.

Para ir além

Aula anteriorPróxima aula