FTH 1 · Ensinar a andar|INEMA.CLUB-PRO

Aula 7 · 16 min

Avaliar de verdade: velocidade, curva e empurrão

Uma política só está pronta quando passa num teste que você escreveu antes de olhar o resultado. Nesta aula você avalia a política pronta em 20 episódios com sementes fixas: erro de velocidade, curva e empurrão de 1,0, 1,5 e 2,0 m/s. Depois passa o seu checkpoint da aula 5 pelo mesmo teste.

Começar a aula
Robô humanoide de pé num laboratório escuro recebendo um empurrão lateral de uma vara acolchoada, dando um passo para recuperar o equilíbrio.

Nesta aula você vai

  1. 1Erro de velocidade: 0,05 m/s entre o pedido e o medido
  2. 2Empurrão de 1,0 m/s: 20/20 de pé; 1,5: 16/20; 2,0: 9/20
  3. 3Sementes fixas: os mesmos 20 episódios para qualquer política
  4. 4Onde a avaliação em sim termina e começa o sim2sim (curso 2)

Objetivo: avaliar uma política em 20 episódios com sementes fixas, medindo erro de velocidade e sobrevivência a empurrões de força crescente.

01O que um teste de marcha mede

Clique em cada bloco. O avaliar.py roda os quatro em cada episódio.

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

O teste é escrito antes do resultado: número de episódios, faixa de comando, força e critério de aprovação (ex.: 18/20).

02A política pronta no teste

20 episódios de 10 s, empurrão de 1,0 m/s. Sai 0 quando todos sobrevivem.

Terminal · avaliar com empurrão
F=${FTH:-$HOME/fth}; cd $F/locomocao && . $F/.venv/bin/activate
python3 kit/avaliar.py --episodios 20 --empurrao 1.0; echo "saída: $?"
Terminal · empurrões mais fortes
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
Exemplo do repositório
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 pé com um empurrão de 1,0 m/s, acima do treino (até 0,5 m/s por eixo, cerca de 0,71 m/s na diagonal), errando a velocidade por 0,05 m/s em média.

03O seu checkpoint no mesmo teste

O avaliar.py aceita um .pt treinado pelo kit no lugar da política pronta. Mesmas sementes.

Terminal · sua política
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
Exemplo do repositório
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 as quedas antes de 1,5 s, mesmo sem empurrão. É o esperado para 20 iterações: o teste confirma o que as curvas já diziam. O valor importa menos que o hábito: toda política, pronta ou sua, passa pelo mesmo teste.

04Até onde vai a avaliação em sim

O que este teste prova e o que fica para o curso 2.

1. Prova

Que a política rastreia o comando e aguenta empurrões no MuJoCo, com o G1 do Menagerie. A política pronta foi treinada no Isaac Lab: passar aqui já é um primeiro sinal de robustez.

05Prática

Escrever o critério antes de ver o número.

E1 · Teste com empurrão

5 min

Escreva o seu critério de aprovação (ex.: 18/20) e só então rode a avaliação com empurrão de 1,0 m/s.

Pronto quando: python3 kit/avaliar.py --episodios 20 --empurrao 1.0; echo "saída: $?" → sobreviveu: 20/20 e saída: 0.

E2 · A margem

5 min

Rode 1,5 e 2,0 m/s e escreva entre quais forças a margem da política acaba.

Pronto quando: as duas linhas mostram sobreviveu: 16/20 e sobreviveu: 9/20; você escreveu "entre 1,0 e 1,5 m/s".

E3 · Andar em curva

5 min

Rode o mesmo teste com --giro 0.2 e compare o erro de velocidade com o da reta.

Pronto quando: python3 kit/avaliar.py --episodios 20 --giro 0.2 --empurrao 1.0 → a primeira linha mostra giro +0.2 rad/s e a última sobreviveu: 20/20 (em 19/10/2026, erro de 0.04 m/s).

06Teste da aula

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

Por que as sementes do teste são fixas?competência

07Em três frases

TesteCritério escrito antes, 20 episódios com sementes fixas, rastreio e empurrão.
MedidaA política pronta: 20/20 com 1,0 m/s, 16/20 com 1,5, 9/20 com 2,0.
LimitePassar no sim é o primeiro degrau; o sim2sim e o gap são do curso 2.

Para ir além

Aula anteriorPróxima aula