VLA: robôs que veem, entendem e agem|INEMA.CLUB-PRO

Aula 6 · 16 min

Simular antes de quebrar: sim, avaliação e sim-to-real

Testar no robô real custa tempo, peça e paciência. O simulador deixa errar mil vezes de graça e dá um número: a taxa de sucesso. Mas o número só vale se o teste for difícil o bastante e se o mundo simulado se parecer com o real.

Começar a aula
Monitor com simulação 3D de um braço empurrando um bloco em T ao lado do braço real na mesa.

Nesta aula você vai

  1. 1Os simuladores de 2026: MuJoCo, Isaac Sim/Lab e Newton
  2. 2Rodar lerobot-eval e ler a taxa de sucesso
  3. 3Por que benchmark saturado não separa modelos
  4. 4Randomização e identificação de sistema contra o reality gap

Objetivo: avaliar uma política em simulação e saber por que LIBERO sozinho não basta mais.

01Do simulador ao mundo real

Clique em cada etapa.

Reality gap = a distância entre o que a política vê e sente no simulador e no robô de verdade.

Simulação para errar barato; benchmark para comparar; mundo real para decidir.

02Três ideias para não se enganar

Clique em cada uma.

1. Benchmark saturado

Em 2026 vários modelos passam de 97% no LIBERO: OpenVLA-OFT 97,1%, X-VLA 98,1%, MolmoAct 2-Think 98,1%. Quando todos tiram nota máxima, a prova não separa ninguém.

Por isso aparecem provas mais duras (LIBERO-plus, RoboTwin 2.0) e avaliação real (RoboArena, MolmoBot).

03Avaliar a sua política no PushT

Instale o ambiente simulado e rode a política que você treinou na aula 5.

Terminal · instalar o ambiente PushT
pip install "lerobot[pusht]==0.6.1"
Terminal · avaliar em 10 episódios
lerobot-eval \
  --policy.path=outputs/train/act_pusht_teste/checkpoints/last/pretrained_model \
  --env.type=pusht \
  --eval.n_episodes=10 \
  --eval.batch_size=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  --output_dir=outputs/eval/act_200
Terminal · ver o resultado e os vídeos
python -c "import json; d = json.load(open('outputs/eval/act_200/eval_info.json')); print(d['overall'])"
ls outputs/eval/act_200/videos/pusht_0/
Exemplo do repositório
INFO ... Overall Aggregated Metrics:
INFO ... {'avg_sum_reward': 11.107..., 'avg_max_reward': 0.0824..., 'pc_success': 0.0, 'n_episodes': 10, 'eval_s': 9.46...}
INFO ... End of eval

# mesma avaliação com o checkpoint de 5000 passos (E3 da aula 5), 20 episódios:
{'avg_sum_reward': 19.45..., 'avg_max_reward': 0.275..., 'pc_success': 0.0, 'n_episodes': 20, 'eval_s': 14.0...}

LeRobot 0.6.1. Com 200 passos: 13 s no total, tanto na GPU quanto só na CPU (a avaliação é leve). pc_success é a taxa de sucesso em %; avg_max_reward mostra quanto a política chegou perto do alvo (maior é melhor). Os dois treinos curtos dão 0% de sucesso: a política ainda não empurra o T até o alvo, mas com 5000 passos chega mais perto (0,08 → 0,28).

04Prática: a sua primeira taxa de sucesso

Use o checkpoint da aula 5.

E1 · Avaliar 10 episódios

15 min

Instale o lerobot[pusht] e rode o lerobot-eval do quadro (cpu ou cuda).

Pronto quando: o terminal mostra pc_success e n_episodes: 10, e existe outputs/eval/act_200/eval_info.json.

E2 · Assistir a política

10 min

Abra dois vídeos em outputs/eval/act_200/videos/pusht_0/ e descreva em uma frase o que a política faz de errado.

Pronto quando: a sua frase diz onde ela falha (não chega ao bloco, empurra para o lado errado, para no meio).

E3 · Comparar dois checkpoints

10 min

Se você fez o treino de 5000 passos, avalie também (troque o --policy.path e o --output_dir) e compare avg_max_reward.

Pronto quando: você tem os dois números lado a lado e sabe dizer qual política chegou mais perto do alvo.

05Teste o que aprendeu

A explicação aparece depois da sua resposta.

Pergunta 1 de 4

O que o pc_success do lerobot-eval mede?competência

06Resumo

Simule, compare, decidaSimulador para errar barato, benchmark para comparar, robô real para decidir.
Um comandolerobot-eval roda N episódios e devolve pc_success e vídeos.
Reality gapRandomize o que não dá para medir e meça o que dá (sysid).

Fontes desta aula

Aula anteriorPróxima aula