Collecte de données
Enregistrez la pression de contact ainsi que l’état des articulations du robot et la vidéo de la caméra. Le gant ajoute une modalité tactile qui capture comme c'est dur la pince du robot appuie – une information invisible à la seule vision.
Connexions système
Connectez tous les appareils avant de démarrer un logiciel. Le gant est strictement câblé en USB – il n’y a pas de mode sans fil.
Bras + Main du Robot
Orca Hand (recommandé) ou autre effecteur final. Connecté via un adaptateur USB Feetech ou CAN, selon le bras.
/dev/ttyUSB0 or CAN0Gant Juqiao
USB-C pour héberger un PC. Apparaît en tant que série CDC-ACM. Câble de 1,5 m ; utilisez une extension USB si nécessaire pour la liberté de mouvement.
/dev/ttyACM0Caméra de poignet
Caméra USB ou GigE montée sur le poignet du robot, offrant une vue centrée sur l'objet pour l'entraînement.
/dev/video0 or GigE IPCaméra aérienne
Caméra d'espace de travail fixe pour le contexte de la scène. Associez-le à la caméra-bracelet pour des ensembles de données multi-vues.
/dev/video2 or GigE IPDispositif de téléopération
Bras leader (SO-101 / OpenArm leader), contrôleur VR ou SpaceMouse conduisant le robot suiveur.
Capitaine de port/HIDEnregistrement étape par étape
Faites apparaître le bras et la main du robot
Démarrez le pilote de bras (et le pilote Orca Hand le cas échéant) dans des terminaux séparés. Vérifiez que les joint_states sont publiés avant de continuer.
Démarrez le pilote Juqiao Glove
Lancez le nœud du gant ROS2. Vérifiez que les données à 200 Hz circulent avant de démarrer toute session d'enregistrement.
Caméras de lancement
Démarrez les nœuds de caméra pour les vues du poignet et du dessus. Vérifiez que les sujets d'images sont publiés à la fréquence d'images cible (généralement 30 ips).
Vérifiez que tous les flux sont synchronisés
Utiliser liste de sujets ros2 pour confirmer que tous les sujets requis sont présents. Vérifiez que les horodatages sont dans les 20 ms pour toutes les modalités avant d'enregistrer des épisodes.
Enregistrer un jeu de données avec LeRobot
Utilisez le script d'enregistrement de LeRobot. Le --tactile-sujet flag ajoute le flux de pression des gants sous forme de colonne d'ensemble de données aux côtés des états et des images des articulations.
Revoir les épisodes avant de pousser
Rejouez chaque épisode avec la superposition de carte thermique pour vérifier la qualité des données tactiles avant de vous engager dans le HuggingFace Hub.
Pousser vers HuggingFace Hub
Téléchargez l'ensemble de données validé. La fiche de l'ensemble de données est générée automatiquement avec des descriptions de modalités, notamment tactiles.
Schéma de l'ensemble de données
Chaque image de l'ensemble de données contient les colonnes suivantes. Tous les tableaux sont stockés sous forme de colonnes float32 Parquet ; images sous forme de séquences vidéo MP4.
| Colonne | Forme / Type | Description |
|---|---|---|
| observation.état | flotteur32[6] | Positions des articulations du bras du robot (radians). L'index 6 est l'ouverture de la pince si vous utilisez un bras 6-DOF. |
| observation.hand_state | flotteur32[17] | Positions articulaires de la main Orca (radians), 17 DOF. Omettre si aucune main adroite. Étiqueté par nom commun dans les métadonnées. |
| observation.tactile_pressions | flotteur32[64] | Pression normalisée du Juqiao Glove par nœud, 0,0 (pas de contact) à 1,0 (pleine échelle). 200 Hz sous-échantillonnés pour correspondre à la fréquence d'images du robot. |
| observation.tactile_pressions_raw | uint16[64] | Valeurs ADC brutes 16 bits. Conserver pour renormalisation après recalibrage. Facultatif; omettre pour réduire la taille de l’ensemble de données. |
| observation.grasp_region | str | Heuristique de région de contact active : "palmier", "pouce", "indice", "milieu", "anneau", "pinky", ou "" (pas de contact). |
| observation.images.poignet | uint8[H, W, 3] | Image RVB de la caméra de poignet à 30 ips, stockée sous forme de séquence vidéo MP4. |
| observation.images.overhead | uint8[H, W, 3] | Cadre RVB de la caméra aérienne à 30 ips. |
| action | float32[6 ou 23] | Positions articulaires cibles pour le bras (6) et éventuellement la main (17). La forme dépend de la présence ou non d'une main adroite. |
| langue_instruction | str | Description de la tâche, par ex. "ramasser l'œuf sans le casser". Permet une formation aux politiques conditionnée par la langue. |
| épisode_index | int | Numéro de l'épisode dans l'ensemble de données. |
| cadre_index | int | Numéro d'image dans l'épisode (indexé à 0). |
| horodatage | flotteur 64 | Secondes écoulées depuis le début de l'épisode. |
Sous-échantillonnage tactile
Le gant diffuse à 200 Hz ; le robot et les caméras fonctionnent généralement entre 30 et 100 Hz. L'enregistreur aligne les images en utilisant la correspondance d'horodatage du voisin le plus proche. Pour conserver l'intégralité du flux tactile de 200 Hz sous la forme d'un réseau distinct :
Liste de contrôle de la qualité des épisodes
Examinez chaque épisode par rapport à ces critères avant de l'inclure dans votre ensemble de données. Un mauvais épisode peut introduire de faux schémas tactiles qui dégradent la formation politique.
-
Le flux tactile est continu – pas d’espace entre les images Vérifier frame.séquence incréments sans sauts. Les pertes d’images apparaissent sous forme de valeurs répétées dans la colonne tactile.
-
La ligne de base au repos est proche de zéro (<0,03) Au début de l'épisode (avant tout contact), la pression maximale au nœud doit être inférieure à 0,03. Une dérive supérieure à 0,05 au repos indique que le gant doit être recalibré.
-
Les événements de contact s'alignent sur les prises visibles dans la vidéo Rejouer avec --overlay-tactile. Les pics de pression (nœud max > 0,4) doivent coïncider avec la fermeture visible de la pince dans la caméra du poignet.
-
La région de préhension est cohérente pendant la phase de contact saisir_region devrait se stabiliser sur une ou deux régions lors de chaque prise (par ex. "palmier" + "indice"). Des régions qui changent rapidement indiquent un mauvais alignement des gants ou un signal bruyant.
-
Latence du gant < 20 ms par rapport à l'état du robot Comparez le début de l’événement tactile au pic de vitesse de la pince. Une latence > 20 ms suggère une congestion du hub USB : connectez le gant directement à un port USB hôte.
-
L'enseignement de la langue correspond à la tâche démontrée Pour les ensembles de données conditionnés par le langage, assurez-vous que les instructions saisies au début de l’épisode décrivent avec précision ce que l’opérateur a réellement démontré.
-
Aucune interférence de câble avec le mouvement du robot Le câble USB de 1,5 m ne doit pas restreindre les mouvements de la main de l'opérateur ni retirer le gant pendant l'épisode. Utilisez un clip de gestion des câbles sur l'avant-bras.
Entraînement avec observations tactiles
Les politiques qui utilisent la saisie tactile voient généralement une amélioration de 15 à 30 % sur les tâches sensibles au contact (manipulation d'objets fragiles, insertion de chevilles, pliage de tissu) par rapport aux lignes de base basées uniquement sur la vision.