Recolección de Datos

Grabar datos de manipulación hábil con la Orca Hand es fundamentalmente diferente de la simple recolección de datos de un agarre: 17 articulaciones de los dedos, flujos táctiles opcionales y teleoperación con guantes requieren una cuidadosa sincronización. Esta guía cubre todo el flujo de trabajo.

Antes de Grabar

Configuración de Hardware para Recolección de Datos Hábiles

La configuración de grabación de la Orca Hand tiene más flujos que un simple brazo de agarre: las articulaciones de los dedos, táctiles opcionales, cámaras y articulaciones del brazo deben estar sincronizadas.

🕐

Mano de Orca (USB serie)

Estado del dedo de 17 DOF a hasta 100 Hz. Verificar: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

Dispositivo de teleoperación

Guante Juqiao (recomendado) o seguimiento de manos VR. Mapea las poses de los dedos del operador a los objetivos de las articulaciones de la mano Orca en tiempo real.

📷

Cámara de palma / muñeca

Pequeña cámara USB dentro de la palma apuntando a las yemas de los dedos y al objeto. Crítico para tareas ricas en contacto donde el contacto yema-objeto determina el éxito del agarre.

📈

Sensores táctiles (opcional)

Sensores de yema Paxini o compatibles. Conexión USB separada. Agrega un flujo de fuerza de contacto a tu conjunto de datos para el entrenamiento de políticas guiadas por contacto.

Flujo de Trabajo de Grabación

Flujo de trabajo de grabación paso a paso

1

Levantar brazo + mano + guante

# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0

# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right

# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
2

Verificar que todos los flujos estén activos

# Check finger joint states
ros2 topic hz /orca_hand/joint_states   # expect ~100 Hz

# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles   # expect ~100 Hz

# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
3

Calibrar el mapeo guante-mano

Ejecutar la calibración del guante para mapear las dimensiones de tus dedos al rango de articulaciones de la mano Orca. Este paso asegura una teleoperación natural: tu mano abierta = Orca abierta, tu puño = Orca puño.

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

Configure la escena de la tarea

Colocar objetos en posiciones iniciales consistentes. El agarre diestro es muy sensible a la pose del objeto: usa fijaciones (cinta, masilla) para mantener una colocación consistente del objeto a lo largo de los episodios.

5

Iniciar sesión de grabación

python -m orca_core.scripts.record_episodes \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --camera_id 0 \
  --fps 30 \
  --output_dir ~/datasets/orca-grasp-v1 \
  --num_episodes 50 \
  --task "Pick up the pen using a precision pinch grasp"

El grabador guarda posiciones de articulaciones de dedos sincronizadas, ángulos del guante, cuadros de cámara y (si está conectado) lecturas táctiles en un conjunto de datos Parquet.

6

Revisar la calidad del agarre

Reproducir cada episodio. Buscar: eventos de deslizamiento (saltos de posición repentinos), agarres incompletos, saturación de tendones (articulación en límite duro durante el agarre), caminos de aproximación inconsistentes.

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

Empuje al HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
Formato del conjunto de datos

Esquema del conjunto de datos de la mano Orca

El formato del conjunto de datos de la mano Orca extiende el esquema estándar de LeRobot con flujos adicionales específicos de los dedos y táctiles.

Campos en cada archivo Parquet de episodio
observation.hand_state float32[17] Todas las 17 posiciones de las articulaciones de los dedos en grados
observación.velocidad_mano float32[17] Velocidades de las articulaciones de los dedos en deg/s
observación.táctil float32[5] Fuerza de contacto por yema de dedo en N (si los sensores táctiles están conectados)
observation.images.* ruta de video Marcos de cámara — vista de la palma, vista de la muñeca, vista del espacio de trabajo
acción float32[17] Posiciones de las articulaciones de los dedos objetivo desde la teleoperación del guante
tipo_de_agarrado cadena Etiqueta para el primitivo de agarre utilizado (por ejemplo, "pinza_de_precisión", "agarre_de_potencia")
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 de datos hábiles

Los datos de manipulación hábil tienen más modos de fallo que el simple recoger y colocar. Revisa esto antes de subirlo al Hub.

  • 1
    Todas las 17 articulaciones tienen lecturas de posición válidas a lo largo del episodio Valores NaN o atascados indican una caída del servo. Inspeccionar observation.hand_state por valores constantes en cualquier articulación a través de todos los marcos.
  • 2
    La latencia de guante a mano es inferior a 20 ms Verificar la alineación de las marcas de tiempo entre action (del guante) y observation.hand_state. Una alta latencia provoca que la política aprenda de pares causalmente inconsistentes.
  • 3
    El tipo de agarre es consistente dentro de una tarea Una política para pinza de precisión no se generalizará si algunas demostraciones utilizaron agarres de potencia. Mantén cada conjunto de datos en una estrategia de agarre principal, o etiqueta por tipo de agarre.
  • 4
    Los eventos de contacto son visibles en posiciones conjuntas Cuando la mano hace contacto con un objeto, las articulaciones de los dedos deben mostrar una clara desaceleración y deflexión de cumplimiento. Los episodios en los que los dedos se ajustan a la posición sin deformación de contacto pueden haber perdido el agarre.
  • 5
    La cámara de la palma muestra el objeto durante toda la fase de manipulación El objeto debe ser visible en la cámara de la palma desde el acercamiento hasta la liberación. Verifique que el soporte de la cámara no haya sido golpeado y que el FOV cubra el espacio de trabajo de la tarea.
  • 6
    Los flujos táctiles tienen eventos de contacto donde se esperaba Durante un agarre de pellizco, tanto el táctil del pulgar como el del índice deben mostrar un aumento de fuerza. La falta de señales de fuerza durante el contacto confirmado indica un sensor desconectado o mal calibrado.

¿Conjunto de datos listo? Comienza el entrenamiento.

Sube tu conjunto de datos de manipulación hábil a HuggingFace y explora modelos compatibles.