E1 · Abrir PushT
15 minInstala LeRobot en un venv, copia abrir_dataset.py y ejecútalo.
Listo cuando: la terminal imprime episódios: 206 y fps: 10.
Clase 4 · 16 min
Texto para entrenar un LLM hay de sobra en internet. Datos de robot, no: alguien tiene que mover el brazo, grabar la cámara y anotar la tarea. En 2026 la respuesta pasó a ser video de personas trabajando, filmado en primera persona. En esta clase abres un dataset de robot de verdad.
Comenzar la lección
Objetivo: explicar de dónde vienen los datos de robot (teleoperación, OXE/DROID, video humano) y abrir un LeRobotDataset v3.
Del más caro y preciso al más barato y abundante. Haz clic en cada etapa.
En la práctica, los modelos de 2026 mezclan las cuatro fuentes: mucho video humano en el preentrenamiento, teleoperación de tu robot en el ajuste fino.
El formato que LeRobot usa desde la versión 0.4.
Los datos de tabla (estado, acción, índices) quedan en Parquet. El video de cada cámara queda en MP4 concatenado y fragmentado. Los metadatos quedan en JSON y Parquet.
Sigues leyendo por episodio: la biblioteca oculta dónde se guarda cada cuadro.
Cada índice devuelve un diccionario de tensores PyTorch: la imagen de la cámara, el estado del robot, la acción de ese instante y la marca de tiempo.
Es exactamente el par (observación → acción) que la política aprenderá a imitar en la clase 5.
observation.image (3×96×96), observation.state (posición del agente), action (hacia dónde ir).
El formato ganó profundidad (cámaras de distancia) y columnas de lenguaje, con anotación automática de lenguaje. Según el blog de la versión, la carga quedó hasta 2× más rápida.
El dataset antiguo v2.1 tiene un script de conversión a v3.
Sin cuenta y sin token: lerobot/pusht es público. Primero instala 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))
# dónde empieza y termina el episodio 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. El aviso de "unauthenticated requests" es normal sin cuenta: solo limita la velocidad. La primera vez descarga el dataset (tardó 12 s aquí); después queda en la caché.
pip install lerobot solo: desde la 0.6 la instalación base es ligera y no trae el soporte para datasets. Usa el extra [training] (o [dataset]).Corre en cualquier computador con Python 3.12. No necesita GPU.
Instala LeRobot en un venv, copia abrir_dataset.py y ejecútalo.
Listo cuando: la terminal imprime episódios: 206 y fps: 10.
Abre huggingface.co/datasets/lerobot/pusht en el navegador y mira el episodio 0 en el visualizador. Compáralo con la duración que calculó el script.
Listo cuando: confirmas que el episodio 0 dura cerca de 16 s y sabes decir qué empuja el agente.
Ejecuta meta.py: lee solo los metadatos de dos datasets más grandes, sin descargar los videos. Compara fps y número de cámaras con PushT.
Listo cuando: la terminal muestra ALOHA a 50 fps con 3 cámaras y anotaste el nombre de sus 3 cámaras.
La explicación aparece después de tu respuesta.
Pregunta 1 de 4
¿Qué es un episodio en un dataset de robot?competencia
Pregunta 2 de 4
Un episodio tiene 161 cuadros grabados a 10 fps. ¿Cuánto dura?
Pregunta 3 de 4
¿Qué fuente de datos pasó a ser la principal en el preentrenamiento de los modelos de 2026?
Pregunta 4 de 4
¿Por qué pip install lerobot solo no abre el dataset en la 0.6?
Elige una alternativa. La explicación aparece después de tu intento.