Cómo grabar un conjunto de datos compatible con LeRobot
Utilice el CLI de registro del lerobot para capturar parquet basado en episodios + fragmentos de video.
LeRobot es la pila de aprendizaje de robots de Hugging Face de código abierto. Su formato de conjunto de datos se ha convertido en el predeterminado para el aprendizaje de imitación a escala de brazo: basado en episodios, parquet + fragmentos de video, metadatos auto-descriptivos, HuggingFace Hub nativo. Este tutorial recorre la grabación de un conjunto de datos limpio de 50 episodios desde cero utilizando el
Recopilación de datos Tiempo total: aproximadamente 2 horas Dificultad: principiante Actualizado abril 2026
Lo que lograrás
Al final de este tutorial tendrás: un conjunto de datos LeRobot de 50 episodios en disco, un pase de inspección visual sobre él, estadísticas de normalización y un conjunto de datos público o privado publicado en HuggingFace Hub.
El formato del conjunto de datos LeRobot almacena cada episodio como un rango de filas en un archivo de parquet con estados conjuntos, acciones y referencias a cuadros de video almacenados en fragmentos MP4 separados. El formato está diseñado para transmitir de manera eficiente desde el Hub, cargarse limpiamente en PyTorch DataLoaders y describirse a través de un archivo de metadatos JSON.
Pre-requisitos
- Un brazo robótico soportado por LeRobot. SO-100 / SO-101, OpenArm, Koch v1.1, Moss, Aloha, WidowX, serie UR
la lista de soportes crece regularmente. - Al menos una cámara. Una webcam USB o Intel RealSense
pulsera + arriba abajo es ideal. - Ubuntu 22.04 estación de trabajo con Python 3.10+ y ffmpeg.
- ** Cuenta de HuggingFace** para publicación (opcional).
- Si también necesita una plataforma de teleop, consulte el [T26
] para el manual bimanual o una guía para el líder-seguidor en la [Academia]
Los pasos
- Instala LeRobot
Instalar LeRobot desde pip. Existen opcionales por tipo de hardware:
```
conda create -n lerobot python=3.10 -y
conda activate lerobot
pip install --upgrade pip
pip install lerobot
# hardware-specific extras (pick yours)
pip install 'lerobot[feetech]' # SO-100, Koch
pip install 'lerobot[dynamixel]' # Aloha, WidowX
pip install 'lerobot[intelrealsense]' # for RealSense cameras
```
Verifique la instalación:
- Calibra tu brazo
Cada brazo apoyado tiene un subcomando de calibración.
```
lerobot-calibrate \
--robot.type=so100 \
--robot.port=/dev/ttyACM0
```
Esto descubre las identificaciones del motor, establece posiciones de cero articulaciones y almacena la calibración a
- Verifique las cámaras y el teleópico
Realice una sesión de teleops con una vista previa en vivo para comprobar la cordura de todo:
```
lerobot-teleoperate \
--robot.type=so100 \
--robot.port=/dev/ttyACM0 \
--robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
--display_data=true
```
Confirme que ambas cámaras fluyen a 30 FPS sin rasgar, las pistas de los brazos limpiamente y las actualizaciones de la ventana de vista previa. Si el brazo se agita, compruebe primero la calidad del cable USB.
- Defina la tarea y la instrucción
Seleccione ** una** tarea bien definida para su primer conjunto de datos. "Pick el cubo rojo y coloca en el tazón azul" bate "hacer cosas con los cubos" cada vez. Su instrucción de lenguaje natural se guardará en forma literal en cada episodio y será el único texto que se condiciona una política en el río abajo ve.
Tip: mantener los criterios de éxito de la tarea binarios y observables a partir de los datos. "Cube está en el tazón" es nítido. "Cube se coloca suavemente" no lo es.
- Graba 50 episodios
Ahora el evento principal. Graba 50 episodios con el
```
lerobot-record \
--robot.type=so100 \
--robot.port=/dev/ttyACM0 \
--robot.cameras='{"top": {"type":"opencv","index":0}, "wrist": {"type":"opencv","index":2}}' \
--dataset.repo_id=<your-username>/red_cube_blue_bowl \
--dataset.num_episodes=50 \
--dataset.single_task="Pick the red cube and place it in the blue bowl." \
--dataset.fps=30 \
--dataset.episode_time_s=20
```
Entre los episodios, restablezca la escena a una configuración inicial ligeramente diferente
Inspeccionar el conjunto de datos
Revisar los episodios con el visualizador incorporado:
```
lerobot-dataset-visualize --repo-id=<your-username>/red_cube_blue_bowl
```
Cuidado: abandono de la cámara, discontinuidades articulares, episodios en los que se perdió la tarea, variabilidad de la velocidad de fotogramas.
Deja de pasar los episodios malos y computa estadísticas
Eliminar episodios fallidos o desordenados de los metadatos del conjunto de datos. LeRobot admite filtrar por índice de episodios. Después de limpiar, recompite las estadísticas de normalización (media / std por acción y dimensión del estado) para que el entrenamiento aguas abajo utilice valores correctos.
- Empuje al Hub de la cara de abrazo
Autentique una vez con
```
huggingface-cli upload <your-username>/red_cube_blue_bowl \
~/.cache/huggingface/lerobot/<your-username>/red_cube_blue_bowl \
--repo-type=dataset
```
El conjunto de datos es ahora público (o privado). Puede cargarlo en cualquier lugar con
¿Qué hacer ahora?
Una vez que tenga un conjunto de datos limpio de LeRobot, dos seguimientos de alto valor: (1) entrenar una política sobre él
Modo de falla común
Los episodios tienen diferentes longitudes: se espera que las almohadillas LeRobot durante el entrenamiento.
Grandes dimensiones de conjunto de datos: Las imágenes de LeRobot están codificadas en H.264. Si el tamaño sigue siendo un problema, baja a 15 FPS o 480p para cámaras que no necesitan más resolución.
Overpases de política instantáneas: no hay suficiente variación de escena durante la recogida.
** Hub carga fallos:** generalmente existen errores de repo o permisos.
Inmersión profunda: el formato del conjunto de datos LeRobot
Diseño del conjunto de datos de LeRobot en disco: un directorio de nivel superior que contiene
Este diseño es deliberado: escalares en parquet le dan acceso columnar rápido para la carga de datos en lotes, y MP4s dan orden de magnitud mejor compresión en disco que por cada archivo de imagen sin sacrificar el acceso aleatorio. H.264 codificado en CRF 18 es casi sin pérdidas para la manipulación; CRF 23 le da aproximadamente 3 veces más pequeños archivos sin impacto visible en la calidad de la capacitación política para la mayoría de las tareas.
La variación de escena es la mayor palanca de calidad
Si tienes 2 horas para grabar, pasa los primeros 30 minutos planeando la variación de escena, no los primeros 90 minutos grabando los episodios de la línea de base.
- Posición de objeto. Al menos 10 posiciones de partida en una cuadrícula en todo el espacio de trabajo.
- Luminación. Luces fluorescentes frente a lámparas cálidas frente a ventanas naturales
tres condiciones mínimas. - Distractores. Añadir 2-3 objetos irrelevantes a la mesa la mitad del tiempo. Las políticas entrenadas sin distractores se rompen en el momento en que su escritorio de ingeniería tiene una taza de café sobre ella.
- Hondo. Gira a través de 2 o 3 superficies de mesa o cubiertas de mesa.
- Frasas de instrucción. "Pick the red cube and put it in the bowl" / "ponga el cubo rojo en el cubo azul" / "mover el cubo rojo al cubo".
Inmersión profunda: desde la grabación hasta la formación en una tarde
El objetivo de grabar un conjunto de datos de LeRobot es entrenar una política en él. La receta de base una vez que se realiza la grabación es:
Inmersión profunda: cuándo dejar de grabar y comenzar a entrenar
Los equipos suelen registrar más. La heurística correcta: entrenar una política de ACT de base después de cada 25 episodios, medir el éxito y detenerse cuando la curva de éxito se aplaniece. A menudo se alcanzará rendimientos decrecientes de alrededor de 80 a 150 episodios para una sola tarea.
Preguntas frecuentes
** ¿Puedo usar mi propio robot personalizado con LeRobot? ** Sí. Implemente una clase Python que coincida con la interfaz LeRobot
** ¿Qué tan grande es un conjunto de datos típico de 50 episodios? ** Aproximadamente de 1 a 5 GB dependiendo del número de cámaras y resolución.
** ¿Puedo grabar datos de simulación?** Sí
¿Qué hay de la propiocepción más allá de los ángulos articulares? LeRobot admite dimensiones de estado arbitrarias.







