Volver a Learn

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 T6 CLI y publicándolo.

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

  1. 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: T7. Verifique en github.com/huggingface/lerobot para la matriz de hardware de soporte actual el proyecto se mueve rápidamente.

  1. 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 T8.

  1. 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.

  1. 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.

  1. Graba 50 episodios

Ahora el evento principal. Graba 50 episodios con el T9 CLI. Los nombres de las banderas se mueven ligeramente entre las versiones el patrón general de invocación es:

```
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 varía la posición del cubo, la posición del cuenco, el ángulo de iluminación. Este es el factor más grande en la forma en que una política entrenada generaliza. Tome descansos. La fatiga del operador después de ~ 30 episodios es real; la calidad de sus últimos 20 demos importa más de lo que piensas.

  1. 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.

  1. 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.

  1. Empuje al Hub de la cara de abrazo

Autentique una vez con T12, luego pulse. El T13 CLI admite carga automática; también puede pulsar después del hecho:

```
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 T14. Entrenar una política de base de ACT con un comando para validar si ACT puede acomodar 50 demostraciones en menos de una hora, su conjunto de datos está sano.

¿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 ACT es la primera línea de base más fácil, y (2) tune-fine OpenVLA en el conjunto de datos para comparar con la línea de base de ACT. Si está aumentando a la recopilación de datos seria, el ALOHA bimanual teleop es el siguiente paso en el hardware; para los humanoides, comience con Unitree G1 calibración de cámara.

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 T16, T17, T18, una carpeta T19 con fragmentos de parquet (generalmente uno por episodio) y una carpeta T20 con fragmentos de MP4. Las filas de parquet son las escalas y referencias por paso de tiempo; los MP4 contienen las observaciones de la imagen, referenciadas por índice de marco.

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: T22. En una sola GPU, una política de ACT se adapta a 50 episodios en aproximadamente 45 minutos a 2 horas. Usted debe ver una disminución constante de la pérdida y el error de espacio de acción. Evaluar en el robot real ejecutando el punto de control entrenado con T23. Si su conjunto de datos estaba limpio, debería ver un 70% + de éxito en la tarea entrenada con 50 episodios, y un 85% + con 100.

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 T24 conectar, desconectar, leer posiciones conjuntas, enviar acciones, leer marcos de cámara. Algunas cientos de líneas típicamente.

** ¿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í LeRobot admite sim envs (ALOHA, PushT, Xarm).

¿Qué hay de la propiocepción más allá de los ángulos articulares? LeRobot admite dimensiones de estado arbitrarias.

Tutoriales y recursos relacionados