E1 · Abrir o PushT
15 minInstale o LeRobot num venv, copie o abrir_dataset.py e rode.
Pronto quando: o terminal imprime episódios: 206 e fps: 10.
Aula 4 · 16 min
Texto para treinar LLM existe aos montes na internet. Dados de robô, não: alguém precisa mover o braço, gravar a câmera e anotar a tarefa. Em 2026 a resposta virou vídeo de gente trabalhando, filmado em primeira pessoa. Nesta aula você abre um dataset de robô de verdade.
Começar a aula
Objetivo: explicar de onde vêm os dados de robô (teleoperação, OXE/DROID, vídeo humano) e abrir um LeRobotDataset v3.
Do mais caro e preciso ao mais barato e abundante. Clique em cada etapa.
Na prática os modelos de 2026 misturam as quatro fontes: muito vídeo humano no pré-treino, teleoperação do seu robô no ajuste fino.
O formato que o LeRobot usa desde a versão 0.4.
Os dados de tabela (estado, ação, índices) ficam em Parquet. O vídeo de cada câmera fica em MP4 concatenado e fatiado. Os metadados ficam em JSON e Parquet.
Você continua lendo por episódio: a biblioteca esconde onde cada quadro está guardado.
Cada índice devolve um dicionário de tensores PyTorch: a imagem da câmera, o estado do robô, a ação daquele instante e o carimbo de tempo.
É exatamente o par (observação → ação) que a política vai aprender a imitar na aula 5.
observation.image (3×96×96), observation.state (posição do agente), action (para onde ir).
O formato ganhou profundidade (câmeras de distância) e colunas de linguagem, com anotação automática de linguagem. Segundo o blog da versão, o carregamento ficou até 2× mais rápido.
Dataset antigo v2.1 tem script de conversão para v3.
Sem conta e sem token: o lerobot/pusht é público. Primeiro instale o LeRobot (Python 3.12).
python3.12 -m venv .venv source .venv/bin/activate pip install "lerobot[training]==0.6.1"
from lerobot.datasets import LeRobotDataset
ds = LeRobotDataset("lerobot/pusht")
print("episódios:", ds.num_episodes)
print("fps:", ds.fps)
print("quadros:", ds.num_frames)
print("chaves:", list(ds.features))
# onde começa e termina o episódio 0
ini = ds.meta.episodes["dataset_from_index"][0]
fim = ds.meta.episodes["dataset_to_index"][0]
print("episódio 0: quadros", ini, "a", fim - 1, f"({(fim - ini) / ds.fps:.1f} s)")
quadro = ds[ini]
print("estado:", quadro["observation.state"])
print("ação:", quadro["action"])
print("imagem:", tuple(quadro["observation.image"].shape))python abrir_dataset.py
from lerobot.datasets import LeRobotDatasetMetadata
for repo in ["lerobot/libero", "lerobot/aloha_mobile_cabinet"]:
m = LeRobotDatasetMetadata(repo)
print(repo, "episódios:", m.total_episodes, "fps:", m.fps, "câmeras:", m.camera_keys)$ python abrir_dataset.py Warning: You are sending unauthenticated requests to the HF Hub. ... episódios: 206 fps: 10 quadros: 25650 chaves: ['observation.image', 'observation.state', 'action', 'episode_index', 'frame_index', 'timestamp', 'next.reward', 'next.done', 'next.success', 'index', 'task_index'] episódio 0: quadros 0 a 160 (16.1 s) estado: tensor([222., 97.]) ação: tensor([233., 71.]) imagem: (3, 96, 96) $ python meta.py lerobot/libero episódios: 1693 fps: 10.0 câmeras: ['observation.images.image', 'observation.images.image2'] lerobot/aloha_mobile_cabinet episódios: 85 fps: 50 câmeras: ['observation.images.cam_high', 'observation.images.cam_left_wrist', 'observation.images.cam_right_wrist']
LeRobot 0.6.1, Python 3.12. O aviso de "unauthenticated requests" é normal sem conta: só limita a velocidade. A primeira vez baixa o dataset (levou 12 s aqui); depois fica no cache.
pip install lerobot sozinho: desde a 0.6 a instalação base é enxuta e não traz o suporte a datasets. Use o extra [training] (ou [dataset]).Roda em qualquer computador com Python 3.12. Não precisa de GPU.
Instale o LeRobot num venv, copie o abrir_dataset.py e rode.
Pronto quando: o terminal imprime episódios: 206 e fps: 10.
Abra huggingface.co/datasets/lerobot/pusht no navegador e assista ao episódio 0 no visualizador. Compare com a duração que o script calculou.
Pronto quando: você confirma que o episódio 0 dura cerca de 16 s e sabe dizer o que o agente empurra.
Rode o meta.py: ele lê só os metadados de dois datasets maiores, sem baixar os vídeos. Compare fps e número de câmeras com o PushT.
Pronto quando: o terminal mostra o ALOHA a 50 fps com 3 câmeras e você anotou o nome das 3 câmeras dele.
A explicação aparece depois da sua resposta.
Pergunta 1 de 4
O que é um episódio num dataset de robô?competência
Pergunta 2 de 4
Um episódio tem 161 quadros gravados a 10 fps. Quanto ele dura?
Pergunta 3 de 4
Qual fonte de dados virou a principal no pré-treino dos modelos de 2026?
Pergunta 4 de 4
Por que pip install lerobot sozinho não abre o dataset na 0.6?
Escolha uma alternativa. A explicação aparece depois da sua tentativa.