Collecte de données

L'enregistrement des données de manipulation adroite avec l'Orca Hand est fondamentalement différent de la simple collecte de données sur les pinces : 17 articulations des doigts, des flux tactiles en option et la téléopération des gants nécessitent tous une synchronisation minutieuse. Ce guide couvre le flux de travail complet.

Avant l'enregistrement

Configuration matérielle pour une collecte de données adroite

La configuration d'enregistrement Orca Hand comporte plus de flux qu'un simple bras de préhension : les articulations des doigts, les fonctions tactiles en option, les caméras et les articulations des bras doivent toutes être synchronisées.

🕐

Orca Hand (série USB)

État du doigt 17-DOF jusqu'à 100 Hz. Vérifier: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

Dispositif de téléopération

Gant Juqiao (recommandé) ou suivi des mains VR. Cartographie les poses des doigts de l'opérateur sur les cibles communes d'Orca Hand en temps réel.

📷

Caméra paume/poignet

Petite caméra USB à l'intérieur de la paume pointant vers le bout des doigts et l'objet. Critique pour les tâches riches en contacts où le contact du bout du doigt avec l'objet détermine le succès de la saisie.

📈

Capteurs tactiles (en option)

Paxini ou capteurs du bout des doigts compatibles. Connexion USB séparée. Ajoutez un flux de force de contact à votre ensemble de données pour une formation politique guidée par les contacts.

Flux de travail d'enregistrement

Flux de travail d'enregistrement étape par étape

1

Soutiens-gorge à levier + principal + gant

# 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

Vérifiez que tous les flux sont en direct

# 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

Calibrer la cartographie gant-à-main

Exécutez l’étalonnage du gant pour mapper les dimensions de vos doigts à la plage articulaire de l’Orca Hand. Cette étape garantit une téléopération naturelle — votre main ouverte = Orca ouverte, votre poing = Poing Orca.

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

Configurer la scène de tâches

Placez les objets dans des positions de départ cohérentes. La préhension adroite est très sensible à la pose de l'objet : utilisez des accessoires (ruban adhésif, mastic) pour maintenir un placement cohérent de l'objet d'un épisode à l'autre.

5

Démarrer la session d'enregistrement

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"

L'enregistreur enregistre les positions synchronisées des articulations des doigts, les angles des gants, les cadres de caméra et (si connecté) les lectures tactiles dans un ensemble de données Parquet.

6

Vérifier la qualité de la saisie

Rejouez chaque épisode. Recherchez : les événements de glissement (sauts de position soudains), les prises incomplètes, la saturation des tendons (articulation à la limite dure pendant la saisie), les trajectoires d'approche incohérentes.

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

Pousser vers HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
Format du jeu de données

Schéma de l'ensemble de données Orca Hand

Le format de jeu de données Orca Hand étend le schéma standard LeRobot avec des flux supplémentaires spécifiques aux doigts et tactiles.

Champs dans chaque épisode Fichier Parquet
observation.hand_state flotteur32[17] Les 17 positions des articulations des doigts en degrés
observation.hand_velocity flotteur32[17] Vitesses des articulations des doigts en degrés/s
observation.tactile flotteur32[5] Force de contact par bout de doigt en N (si capteurs tactiles connectés)
observations.images.* chemin vidéo Cadres de caméra : vue paume, vue poignet, vue espace de travail
action flotteur32[17] Cibler les positions des articulations des doigts à partir de la téléopération avec des gants
saisir_type chaîne Étiquette de la primitive de saisie utilisée (par exemple, "precision_pinch", "power_grasp")
horodatage flotteur 64 Horodatage Unix en secondes
suivant.fait bouffonne Vrai sur la dernière image de chaque épisode
Assurance qualité

Liste de contrôle habile de la qualité des données

Les données de manipulation adroite ont plus de modes de défaillance que le simple prélèvement et placement. Parcourez ceci avant de passer au Hub.

  • 1
    Les 17 articulations ont des lectures de position valides tout au long de l'épisode Des valeurs NaN ou bloquées indiquent une décrochage du servo. Inspecter observation.hand_state pour des valeurs constantes dans n’importe quelle jointure sur toutes les images.
  • 2
    La latence gant à main est inférieure à 20 ms Vérifiez l'alignement de l'horodatage entre action (du gant) et observation.hand_state. Une latence élevée amène la politique à apprendre de paires causalement incohérentes.
  • 3
    Le type de saisie est cohérent au sein d’une tâche Une politique de pincement de précision ne se généralisera pas si certaines manifestations ont recours à des prises de pouvoir. Conservez chaque ensemble de données selon une stratégie de saisie principale ou étiquetez-le par type de saisie.
  • 4
    Les événements de contact sont visibles dans les positions communes Lorsque la main entre en contact avec un objet, les articulations des doigts doivent présenter une nette décélération et une déviation de conformité. Les épisodes où les doigts se mettent en position sans déformation de contact peuvent avoir manqué la prise.
  • 5
    La caméra Palm montre l'objet pendant toute la phase de manipulation L'objet doit être visible dans la caméra palmaire depuis son approche jusqu'à son relâchement. Vérifiez que le support de la caméra n'a pas été heurté et que le champ de vision couvre l'espace de travail de la tâche.
  • 6
    Les flux tactiles ont des événements de contact là où ils sont attendus Lors d'une prise par pincement, le pouce et l'index tactiles devraient montrer une augmentation de la force. Des signaux de force manquants lors d'un contact confirmé indiquent un capteur déconnecté ou mal calibré.

Ensemble de données prêt ? Commencez la formation.

Transférez votre ensemble de données de manipulation adroite vers HuggingFace et explorez les modèles compatibles.