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.
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 paso a paso
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
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())"
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
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.
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.
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
Empuje al HuggingFace Hub
python -m orca_core.scripts.push_dataset \
--dataset_dir ~/datasets/orca-grasp-v1 \
--repo_id your-username/orca-grasp-v1
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.
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.
-
1Todas 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_statepor valores constantes en cualquier articulación a través de todos los marcos. -
2La latencia de guante a mano es inferior a 20 ms Verificar la alineación de las marcas de tiempo entre
action(del guante) yobservation.hand_state. Una alta latencia provoca que la política aprenda de pares causalmente inconsistentes. -
3El 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.
-
4Los 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.
-
5La 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.
-
6Los 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.