Recolección de Datos

El VLAI L1 está diseñado para la recolección de datos de teleoperación a gran escala. Su flujo de trabajo de grabación con un solo clic, la sincronización de brazos duales y la teleoperación VR integrada lo convierten en el camino más rápido desde la entrega del robot hasta un conjunto de datos listo para entrenamiento.

Flujo de Trabajo de Grabación

Grabación de teleoperación VR bimanual

1

Conectar y verificar todos los sistemas

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

Mover L1 a la posición de grabación

Conduce el L1 al espacio de trabajo de la tarea usando WASD en el panel del navegador. Establece la altura de elevación para la tarea (por ejemplo, 130 cm para manipulación en mesa). Estaciona y bloquea las ruedas.

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

Configura la escena de la tarea y las cámaras

Coloca los objetos de la tarea en posiciones de inicio consistentes. Verifica las vistas de las cámaras en el panel del navegador: ambas cámaras de muñeca (Desarrollador Max) y cualquier cámara externa deben cubrir el espacio de trabajo de la tarea.

4

Inicia la sesión de grabación a través de CLI

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

Revisa los episodios

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

El visor muestra todas las transmisiones de cámaras + series temporales del estado de las articulaciones sincronizadas. Elimina episodios deficientes antes de enviar.

6

Empuje al HuggingFace Hub

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
Formato del conjunto de datos

Esquema del conjunto de datos L1

La tubería de grabación L1 produce un conjunto de datos multimodal con ambos brazos, la base móvil, todas las cámaras y anotaciones de lenguaje opcionales.

Campos en cada archivo Parquet de episodio
observation.left_arm_state float32[8] Posiciones de las articulaciones del brazo izquierdo en radianes (8 DOF)
observation.right_arm_state float32[8] Posiciones de las articulaciones del brazo derecho en radianes (8 DOF)
observation.base_state float32[3] Base móvil x, y, dirección en metros y radianes
observation.lift_height float32 Altura de elevación del torso en metros
observation.images.* ruta de video Cámaras de muñeca (izquierda, derecha), cámara de cabeza, cámara de espacio de trabajo externa
action.left_arm float32[8] Posiciones de las articulaciones del brazo izquierdo objetivo desde teleoperación VR
action.right_arm float32[8] Posiciones de las articulaciones del brazo derecho objetivo desde teleoperación VR
instrucción_de_idioma cadena Descripción de la tarea en lenguaje natural para la condicionamiento de VLA
marca de tiempo float64 Marca de tiempo Unix en segundos
next.done bool Verdadero en el último marco de cada episodio
Aseguramiento de Calidad

Lista de verificación de calidad

La teleoperación VR del L1 puede introducir problemas únicos de calidad de datos relacionados con la latencia y la coordinación bimanual. Revisa esto antes de enviar al Hub.

  • 1
    La latencia de VR fue inferior a 50 ms durante la grabación Verifica el monitor de latencia en el panel del navegador durante la grabación. Por encima de 50 ms, los movimientos de la mano del operador retrasan las acciones del robot, creando un desajuste causal en el conjunto de datos. Regraba en un canal WiFi de menor latencia si es necesario.
  • 2
    Ambos brazos se movieron como se esperaba (sin episodios de un solo brazo) Para tareas bimanuales, verifica que ambos brazos muestren movimiento significativo en observation.left_arm_state y observation.right_arm_stateLos episodios dominantes de un solo brazo pueden indicar que el operador favoreció una mano.
  • 3
    La base móvil estaba estacionaria durante la manipulación del brazo A menos que estés grabando tareas de manipulación móvil, observation.base_state debería ser casi constante dentro de cada episodio. El movimiento de la base durante la manipulación provoca que el espacio de trabajo se desplace en relación con las cámaras.
  • 4
    Todos los flujos de cámara presentes durante todo el episodio El ancho de banda WiFi del L1 puede perder fotogramas bajo carga. Ejecuta rc validate_dataset --dataset ~/datasets/l1-pour-v1 para verificar si hay fotogramas faltantes en todos los flujos de cámara.
  • 5
    La instrucción de lenguaje coincide con lo que se demostró La instrucción de lenguaje se establece antes de que comience la grabación. Si el operador improvisó un enfoque diferente (por ejemplo, usó un brazo en lugar de dos), actualiza la instrucción o elimina el episodio.
Siguiente Paso

Entrenando un VLA desde tu conjunto de datos

Una vez que tu conjunto de datos esté en HuggingFace Hub, ajusta finamente un VLA con el espacio de acción del L1.

Ajusta finamente OpenVLA con datos del L1

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

Desplegar VLA ajustado en el dispositivo (Desarrollador Pro/Max)

rc desplegar vla \

¿Conjunto de datos listo? Comienza el entrenamiento.

Publicar en HuggingFace Hub y ajustar un modelo VLA en tus datos de manipulación bimanual.