E1 · Avaliar 10 episódios
15 minInstale 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.
Aula 6 · 16 min
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
Objetivo: avaliar uma política em simulação e saber por que LIBERO sozinho não basta mais.
Clique em cada etapa.
Simulação para errar barato; benchmark para comparar; mundo real para decidir.
Clique em cada uma.
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).
Em vez de um simulador perfeito, você varia de propósito cor, luz, atrito, massa e posição da câmera em cada episódio.
A política que aprende com tanta variação trata o mundo real como só mais uma variação.
Você mede o robô real (massa, atrito, atraso dos motores) e ajusta o simulador para bater.
O MuJoCo 3.5.0 (fev/2026) trouxe uma caixa de ferramentas em Python para isso, além de atrasos de atuador e sensor.
Use as duas juntas: meça o que dá para medir e randomize o resto.
Instale o ambiente simulado e rode a política que você treinou na aula 5.
pip install "lerobot[pusht]==0.6.1"
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
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/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).
--eval.use_async_envs=false resolveu.lerobot/diffusion_pusht pede migração de formato na 0.6 e não roda direto. Avalie o seu.SDL_VIDEODRIVER=dummy antes do comando.Use o checkpoint da aula 5.
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.
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).
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.
A explicação aparece depois da sua resposta.
Pergunta 1 de 4
O que o pc_success do lerobot-eval mede?competência
Pergunta 2 de 4
Por que LIBERO sozinho não serve mais para comparar VLAs?
Pergunta 3 de 4
Variar de propósito luz, atrito e massa no simulador a cada episódio é…
Pergunta 4 de 4
A sua política teve 0% de sucesso e avg_max_reward subiu de 0,08 para 0,28 com mais treino. O que concluir?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.