Collecte de données
Le VLAI L1 est conçu pour la collecte de données de téléopération à grande échelle. Son pipeline d'enregistrement en un clic, sa synchronisation à deux bras et sa téléopération VR intégrée en font le chemin le plus rapide depuis la livraison du robot jusqu'à l'ensemble de données prêt à l'entraînement.
Enregistrement bimanuel de téléopération VR
Connectez et vérifiez tous les systèmes
rc connect --device l1 --host 192.168.1.45
rc status # check: arms, base, cameras, battery all green
Déplacez L1 en position d'enregistrement
Conduisez le L1 vers l’espace de travail des tâches à l’aide de WASD dans le panneau du navigateur. Réglez la hauteur de levage pour la tâche (par exemple, 130 cm pour une manipulation sur table). Garez-le et verrouillez les roues.
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()"
Configurer la scène de tâches et les caméras
Placez les objets de tâche dans des positions de départ cohérentes. Vérifiez les vues des caméras dans le panneau du navigateur : les deux caméras de poignet (Developer Max) et toutes les caméras externes doivent couvrir l'espace de travail des tâches.
Démarrer la session d'enregistrement via 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
Revoir les épisodes
rc replay \
--dataset ~/datasets/l1-pour-v1 \
--episode 0
La visionneuse affiche tous les flux de caméras + les séries chronologiques d'état conjointes synchronisées. Supprimez les mauvais épisodes avant de pousser.
Pousser vers HuggingFace Hub
huggingface-cli login
rc push_dataset \
--dataset ~/datasets/l1-pour-v1 \
--repo_id your-username/l1-pour-v1
Schéma de l'ensemble de données L1
Le pipeline d'enregistrement L1 produit un ensemble de données multimodal avec les deux bras, la base mobile, toutes les caméras et des annotations linguistiques facultatives.
Liste de contrôle de qualité
La téléopération VR du L1 peut introduire des problèmes uniques de qualité des données concernant la latence et la coordination bimanuelle. Parcourez ceci avant de passer au Hub.
-
1La latence VR était inférieure à 50 ms pendant l'enregistrement Vérifiez le moniteur de latence dans le panneau du navigateur pendant l'enregistrement. Au-dessus de 50 ms, les mouvements de la main de l'opérateur sont en retard par rapport aux actions du robot, créant ainsi une inadéquation causale dans l'ensemble de données. Réenregistrez sur un canal WiFi à faible latence si nécessaire.
-
2Les deux bras ont bougé comme prévu (pas d'épisodes avec un seul bras) Pour les tâches bimanuelles, vérifiez que les deux bras montrent un mouvement significatif
observation.left_arm_stateetobservation.right_arm_state. Les épisodes dominants sur un seul bras peuvent indiquer que l'opérateur a privilégié une main. -
3La base mobile était stationnaire lors de la manipulation du bras Sauf si vous enregistrez des tâches de manipulation mobile,
observation.base_statedevrait être presque constant au sein de chaque épisode. Le mouvement de la base lors de la manipulation entraîne un déplacement de l'espace de travail par rapport aux caméras. -
4Tous les flux de caméras présents pour l'épisode complet La bande passante WiFi du L1 peut perdre des images sous charge. Courir
rc validate_dataset --dataset ~/datasets/l1-pour-v1pour vérifier les images manquantes dans tous les flux de caméra. -
5L'enseignement de la langue correspond à ce qui a été démontré L'instruction de langue est définie avant le début de l'enregistrement. Si l’opérateur a improvisé une approche différente (par exemple, utilisé un bras au lieu de deux), mettez à jour les instructions ou supprimez l’épisode.
Entraîner un VLA à partir de votre ensemble de données
Une fois votre ensemble de données sur HuggingFace Hub, affinez un VLA avec l'espace d'action L1.
Affiner OpenVLA sur les données 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
Déployer un VLA optimisé sur l'appareil (Developer Pro/Max)
rc déployer vla \ --model sorties/openvla-l1-pour \ --quantifier int4 \ --périphérique l1 \ --hôte 192.168.1.45 # Exécutez la politique : politique d'exécution rc \ --tâche "Prendre la bouteille et verser dans le verre" \ --max_steps 100