Volver a Learn

Cómo recopilar datos de entrenamiento de robots

Guía completa para recopilar datos de formación de robots de alta calidad a través de la instalación de hardware de la teleoperación, la grabación de LeRobot, el formato RLDS, la calificación de la calidad y la preparación de conjuntos de datos.

Guía completa para recopilar datos de entrenamiento de robots de alta calidad a través de la configuración de hardware de la teleoperación, la grabación de LeRobot, el formato RLDS, la calificación de la calidad y la preparación de conjuntos de datos para el ajuste fino de VLA.

Intermedio 24 horas de configuración Actualizado abril 2026

1. Hardware 2. Instalar 3. Configurar 4. Teleop Configuración 5. Grabar 6. Revisión 7. RLDS Convertir 8. Cargar 9. Control de calidad 10. Preparación para VLA

Pre-requisitos

  • Un brazo robótico (OpenArm, SO-100, Aloha, Koch, UR5 o similares)
  • Al menos una cámara RGB (preferida con muñeca) + una cámara externa
  • Dispositivo de entrada de teleoperación (brazo de mando, SpaceMouse o teclado)
  • ROS2 Humble instalado (ver nuestra guía de configuración ROS2 T12))
  • Python 3.10+ con pip
  • Ubuntu 22.04 con NVIDIA GPU (para visualización y formación futura)

Lo que construirás

Al final de este tutorial, tendrá un conjunto completo de datos de recopilación: hardware de teleoperación configurado, grabación de episodios de LeRobot de su robot realizando tareas, demostraciones de calidad calificadas y un conjunto de datos en formato RLDS subido a HuggingFace Hub listo para ajuste fino de VLA.

Línea de recogida de datos

Entrada de teleópico Armero del líder / SpaceMouse

¿Qué es esto?

Armado robot Estados conjuntos + acciones

¿Qué es esto?

Las cámaras Muñeca + RGB externo ((D)

¿Qué es esto?

LeRobot Registro y sincronización

¿Qué es esto?

Datos de RLDS Abrazar el Hub

1 de la Comisión

Requisitos de hardware

Una configuración completa de recopilación de datos tiene cuatro componentes. Aquí está lo que necesita y nuestras opciones recomendadas:

Component Recommended Budget
Robot arm OpenArm ($2,400) or Aloha ($20K+) SO-100 ($200 DIY kit)
Wrist camera Intel RealSense D405 ($300) USB webcam ($30)
External camera Intel RealSense D435 ($350) Logitech C920 ($70)
Teleop device Leader arm (matched pair) 3Dconnexion SpaceMouse ($130)

Caminos de presupuesto: Un brazo SO-100 con dos cámaras web y un SpaceMouse te permite recopilar datos por menos de $500 en total. La calidad es inferior a la configuración de seguidores de líderes, pero es suficiente para aprender el flujo de trabajo y entrenar políticas simples.

2 de la Comisión

Instalar LeRobot

LeRobot es el kit de herramientas de código abierto de Hugging Face para el aprendizaje de robots. Instala en un entorno virtual para evitar conflictos de dependencia.

Copia# Crea y activa el entorno virtual python3 -m venv ~/lerobot_env fuente ~/lerobot_env/bin/activar # Instala LeRobot con todos los extras para la recopilación de datos pip instalar "lerobot[all]" # O instalar desde la fuente para las últimas características git clone T18 cd lerobot pip instalar -e ".[all]" # Verificar la instalación python3 -c "import lerobot; imprimir f'LeRobot {lerobot.__version___} instalado') "

Copia# Instalar dependencias adicionales para la grabación de la cámara pip instalar opencv-python pyrealsense2 h5py # Para HuggingFace Hub subes pip instalar abrazarface_hub abrazarface-cli login

3 El

Configure su robot en LeRobot

LeRobot utiliza archivos de configuración YAML para definir las propiedades de su robot.

Copia# Crea directorio de configuración de robots mkdir -p ~/lerobot_configs # Ejemplo de configuración para OpenArm (salvar como openarm.yaml) gato > ~/lerobot_configs/openarm.yaml << 'EOF' robot: tipo: puerto de brazo abierto: /dev/ttyUSB0rate: 1000000 articulaciones: - nombre: hombro_pan id: 1 min: -3.14 max: 3.14 - nombre: hombro_lift id: 2 min: -1.57 max: 1.57 - nombre: codor de codor: 3 min: -2.35 max: 2.35 - nombre: muñeca_pitch id: 4 min: -1.57 max: 1.57 - nombre: muñeca_roller: 5 min: -3.14 - altura: 3.14 - altura: nombre: 6: 1.0 p: 1.0 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p: 0.40 p:

Importante: Los índices de cámara (T0, T1) varían según el sistema. ejecuta T2 para encontrar los índices correctos para sus cámaras.

4 de la Comisión

Configurar la interfaz de teleoperación

Hay dos opciones principales para controlar el robot durante las demostraciones: un par de brazos líder-seguidor (mejor calidad) o un SpaceMouse (más accesible).

**Opción A: Armas de seguidores del líder (recomendado) **

Copia# Configure el brazo líder (el que moves físicamente) lerobot calibra \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 # Esto ejecuta una rutina de calibración siga las instrucciones en pantalla # para mover ambos brazos a través de su rango de movimiento

** Opción B: SpaceMouse**

Copia# Instalar el controlador de SpaceMouse pip instalar pyspacemouse # Prueba conexión de SpaceMouse python3 -c "import pyspacemouse; m = pyspacemouse.open(); imprimir('SpaceMouse conectado') " # Configurar SpaceMouse en LeRobot lerobot calibrar \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --teleop=spacemouse

Cuál elegir? Los brazos de seguimiento de Leader producen demostraciones más naturales porque los movimientos de las manos se trazan directamente a las articulaciones del robot.

5 El

Registra los primeros episodios

Un "episodio" es una demostración completa de una tarea de principio a fin. Comience con una tarea simple como recoger un bloque y colocarlo en una zona objetivo.

Copia# Registra los episodios a un conjunto de datos local lerobot registro \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --leader-port=/dev/ttyUSB1 \ --fps=30 \ --task="pick_red_block_place_target" \ --num-episodes=10 \ --output-dir=~/datasets/openarm_stop_pick_place # Controles durante la grabación: # Entra inicio/episodio # Espacio pausa/resumen # r volver a hacer el episodio actual # q dejar de grabar

Cada episodio se guarda con datos sincronizados:

│ │ │── observaciones/ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Guías de conteo de episodios: Para una política de una sola tarea (ACT, Política de difusión), recoger 50200 episodios. Para el ajuste fino de VLA (OpenVLA, pi0), recoger 3001,200 episodios. Las demostraciones más diversas dan una mejor generalización. Varia la posición del objeto, la orientación y la iluminación entre los episodios.

6

Episodios de revisión y calificación

Revise sus grabaciones, elimine las demostraciones fallidas y computa métricas de calidad.

Copia# Visualizar un episodio específico lerobot visualizar-dataset \ --dataset-path=/datasets/openarm_pick_place \ --episode=0 # Reproduzca el episodio en el robot (opcional para la verificación) lerobot replay \ --robot-type=openarm \ --robot-port=/dev/ttyUSB0 \ --dataset-path=/datasets/openarm_pick_place \ --episode=3

Marca episodios fallidos para la eliminación:

Copie# Computa métricas de calidad para todos los episodios python3 -c " import numpy como np import json, os, glob dataset_dir = os.path.expanduser('~/datasets/openarm_pick_place') episodios = ordenado(glob.glob(os.path.join(dataset_dir, 'episode_*'))) para ep_dir en episodios: acciones = np.loados.path.join((ep_dir, 'actions.npy')) # suavidad: menor jerk = mejor demostración jerk = np.diffactions, n=3, axis=0) suavidad = (1.0 + np.mean p.absjerk((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

Regla general de calidad: Objetivo de 90% + tasa de éxito de tareas en su conjunto de datos final. Elimine los episodios en los que el robot dejó caer el objeto, chocó con la mesa o tuvo movimientos tirantes. Un conjunto más pequeño de demostraciones de alta calidad supera a un conjunto de datos más ruidoso.

7

Convierta a formato RLDS

RLDS (Reinforcement Learning Datasets) es el formato estándar para el entrenamiento de modelos VLA.

Copia# Instalar herramientas de conversión RLDS pip instalar tensorflow tensorflow-datasets rlds # Convertir conjunto de datos LeRobot a RLDS python3 -m lerobot.scripts.convert_to_rlds \ --input-dir=/datasets/openarm_pick_place \ --output-dir=/datasets/openarm_pick_place_rlds --task-description="Pira el bloque rojo y coloca en la zona verde objetivo"

El conjunto de datos RLDS contiene archivos TFRecord con esta estructura por paso de tiempo:

{ "observación": { "imagen": (480, 640, 3) uint8, # cámara de muñeca "imagen_externa": (480, 640, 3) uint8, # cámara externa "estado": (6,) float32 # posiciones conjuntas }, "acción": (7,) float32, # articulaciones objetivo + agarre "recompensa": float32, # 1.0 para el éxito, 0.0 de lo contrario "es_terminal": bool, "lenguaje_instruction": cadena # descripción de tarea }

8 El

Cargar en HuggingFace Hub

Empuje su conjunto de datos a HuggingFace Hub para la versión, fácil compartimiento y carga directa durante el entrenamiento.

Copie# Asegúrese de estar conectado en el enlace de huggingface-cli # Empuje el conjunto de datos en formato LeRobot lerobot push-to-hub \ --dataset-path=~/dataset/openarm_pick_place \ --repo-id="your-username/openarm-pick-place-v1" \ --private # O empuje el conjunto de datos en formato RLDS python3 -c " desde huggingface_hub importar HfApi = HfApi() .upload_path_folder_folder=os..expanduser..(''dataaset/dataset/arm_pick_openplace\rlds'), repo_id='your-username/openarm-pick-plds-rv1', repo's', completo'type private's', 'update=' (¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Sugerencia de versión: Siempre incluye un sufijo de versión (T3, T4). Cuando recopile más datos o corrija problemas de calidad, empuje como una nueva versión. Esto facilita la reproducción de carreras de entrenamiento y el seguimiento de mejoras.

9

Realizar controles de calidad

Antes del entrenamiento, ejecuta un último conjunto de controles de calidad para detectar problemas que podrían desperdiciar horas de GPU.

Copypython3 -c " import numpy como np import json, os, glob dataset_dir en episodios: acciones = np.pathos.expanduser('~/datasets/openarm_pick_place') episodios = ordenado(glob.glob.os.path.join(dataset_dir, 'episode_*'))) longitudes = [\] suavidad_scores = [\] acción_rangees = [\] acción_rangees = [\] para ep_dir en episodios: acciones = np.pathos.expanduser.join\\_dr, 'actions.npy' episodes = 0.appendactions.actions) comprensiones.np.actions.nl, n, n, n, n, n, n=3=actions: rangees: rangees: rangees: rangees: rangees: rangees: r

10

Prepárate para el ajuste de VLA

Estructura tu conjunto de datos para la formación mediante la creación de divisiones y descripciones de tareas adecuadas.

Copy# Crear tren/val dividido (90/10) python3 -c " importar os, shutil, aleatorios, glob dataset_dir = os.path.expanduser('~/datasets/openarm_pick_place') episodios = ordenado(glob.glob.os.path.join\set_dir, 'episode_*'))) random.seed(42) random.shuffle(episodes) split = int((lenepisodes) * 0.9) tren = episodios[:split] vallit = episodios[split:\] #Escribe archivos con open.pathos.join.join_direct, 'train_episodes.txt'), 'wlen') como f ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

¿Listo para ajustar un modelo VLA?

Su conjunto de datos está preparado. Continúe con la guía de ajuste fino de VLA (T13) para entrenar OpenVLA o pi0 en sus datos.

Desglose de los costes de la recopilación de datos

Cost Component Per Hour Notes
Operator labor $50–80 Skilled teleoperator, varies by market
Hardware depreciation $15–30 Amortized over 2,000 hrs of use
Quality review $20–40 Episodio filtering and scoring
Compute and storage $8–15 Recording, processing, storage
Facility overhead $25–35 Lab space, lighting, safety
Total $118–200

¿Necesitas ayuda para recopilar datos?

RCSV Data Services ofrece una recopilación de datos de robots gestionados con teleoperadores profesionales, garantía de calidad y entrega lista para RLDS.

[Aprende sobre los servicios de datos]

Solución de problemas

El suministro de la cámara es negro o congelado

Compruebe el índice de cámara con T5. Prueba a desconectar y reconectar el cable USB. Si usa RealSense, verifique con T6. Los puertos USB 3.0 son necesarios para las cámaras RealSense.

Armado robot que no responde durante la grabación

Verifique el puerto en serie con T7. Verifique los permisos: T8. Asegúrese de que ningún otro proceso esté utilizando el puerto (RViz cerrado, otras terminales).

Caídas de marco durante la grabación (fps inconsistentes)

Baja la resolución de la cámara a 480x360. Cierra las aplicaciones de fondo. Utiliza un bus USB dedicado para cada cámara (consulte con T9). Graba en una SSD, no en un HDD.

La conversión RLDS falla con una falta de coincidencia de forma

Esto significa que los episodios tienen diferentes dimensiones de observación. Compruebe si todas las cámaras usaron la misma resolución en todos los episodios.

HuggingFace tiempo de carga fuera

Los grandes conjuntos de datos (50+ GB) pueden desactivarse en conexiones lentas. Utilice T10 con T11 para subir en partes, o comprimir vídeos antes de subir. Considere subir desde una máquina virtual en la nube con ancho de banda más rápido.

Tutoriales relacionados

¿Qué es esto?

La mejoría de un modelo VLA

Entren OpenVLA o pi0 en su conjunto de datos de teleoperación para el despliegue de robots reales.

[T15] [

LeRobot Quickstart

Comience con LeRobot en menos de 2 horas instale, grabe y entrene su primera política.

[T16] [

OpenArm primera demostración

Descabezar y ejecutar su primera demostración de teleoperación en el hardware de OpenArm.

[T17]

Preguntas frecuentes

¿Cuántos episodios de demostración necesito para entrenar una política de robots?

Para la mayoría de las políticas de manipulación de tareas únicas (pick and place, pour, etc.), 50200 episodios de alta calidad son suficientes para ACT o Diffusion Policy. Para el ajuste fino de VLA (OpenVLA, pi0), planea 3001,200 episodios dependiendo de la complejidad de la tarea y la generalización requerida.

¿Cuál es el costo de recopilar datos de entrenamiento de robots?

El costo total de la recopilación de datos de la teleoperación de robots oscila entre $118200 por hora en 2026, dependiendo del nivel de habilidad del operador y el hardware. Esto incluye el tiempo del operador, la depreciación del hardware, el cálculo y la revisión de la calidad.

¿Qué cámaras debo usar para la recopilación de datos de robots?

Por lo menos, use una cámara RGB montada en la muñeca (640x480, 30 fps) y una cámara de visión externa de tercera persona. Para obtener mejores resultados, agregue una cámara RGBD como la Intel RealSense D435 para datos de profundidad.

¿Qué es el formato RLDS y por qué es importante?

RLDS (Reinforcement Learning Datasets) es un formato estandarizado de Google DeepMind para almacenar datos de aprendizaje de robots. Almacena episodios como secuencias de observaciones, acciones y recompensas en archivos TFRecord. La mayoría de los modelos VLA (RT-2, OpenVLA, Octo) esperan el formato RLDS, lo que lo convierte en el estándar de facto para la interoperabilidad.

¿Cómo puedo asegurarme de que los datos que recopilo sean de alta calidad?

Seguir tres métricas de calidad: (1) tasa de éxito de la tarea sólo mantenga los episodios en los que la tarea se completó con éxito. (2) suavidad de trayectoria filtrar las demostraciones tirantes o erráticas. (3) Diversidad varían las posiciones de los objetos, orientaciones y iluminación entre los episodios. Objetivo de 90% + tasa de éxito en su conjunto de datos final.

¿Fue útil este tutorial?

👍 Sí No

Manténgase al frente en robótica

Obtenga las últimas noticias sobre las implementaciones de robots, la recopilación de datos y la IA física entregadas a su bandeja de entrada.