🧪 De nouveaux tutoriels arrivent — du bras robotique au capteur
Aller au contenu

Étape 6 : déploiement du modèle (Linux) ​

Cette phase charge la politique entraînée pour que le robot exécute la tâche de manière autonome et enregistre une vidéo d'évaluation afin de vérifier le résultat. C'est la conclusion de tout le processus et un moment clé pour valider le fruit de l'entraînement.


Prérequis ​

  • Phase 5 : Entraînement du modèle terminée

  • L'entraînement a produit outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model/

  • Indices des caméras relevés


Étape 1 : Vérifier les fichiers du modèle ​

Bash
ls outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model

Doit contenir des fichiers de modèle tels que model.safetensors.

⚠️ Remarque (chemin du modèle) : --policy.path doit pointer vers le répertoire pretrained_model (contenant la configuration + les poids), et non vers le répertoire racine du checkpoint.


Étape 2 : Déploiement et évaluation ​

Bash
lerobot-rollout \
  --strategy.type=episodic \
  --robot.type=so101_amazing_hand \
  --robot.port=<follower_arm_port> \
  --robot.hand_port=<hand_port> \
  --robot.id=amazing_hand_follower \
  --robot.cameras='{
    wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"},
    top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30, fourcc: "MJPG"}
  }' \
  --policy.path=outputs/train/soarm_amazing_hand_pick/checkpoints/last/pretrained_model \
  --dataset.repo_id=rollout_soarm_amazing_hand_pick_eval \
  --dataset.root=~/lerobot_data \
  --dataset.push_to_hub=false \
  --dataset.num_episodes=10 \
  --dataset.single_task="Pick up the cube with the dexterous hand" \
  --display_data=true

Remplacez <follower_arm_port> / <hand_port> par les chemins réels ; remplacez index_or_path des caméras par vos indices de caméra.

💡 Explication : on utilise lerobot-rollout mais **sans **--teleop.type ; la politique contrôle alors le robot de manière autonome (en remplacement de la téléopération manuelle). Les données sont sauvegardées en tant que jeu d'évaluation. --dataset.root / --dataset.push_to_hub=false sont identiques à ceux de la phase 4 ; une sauvegarde purement locale ne nécessite aucune connexion HF.


Opérations d'évaluation ​

  1. Réinitialisez le robot + la main à la position de départ

  2. Appuyez sur Entrée pour commencer : la politique exécute la tâche de manière autonome

  3. Observez si la saisie réussit (appuyez sur Entrée à la fin de chaque épisode pour continuer)

  4. Répétez sur num_episodes épisodes

Indicateur d'évaluation : taux de réussite = nombre d'épisodes réussis / nombre total d'épisodes

⚠️ Remarque 1 (cohérence de la réinitialisation) : commencez chaque épisode à la même position de départ, sinon la politique échoue à généraliser et le taux de réussite est artificiellement bas.

⚠️ Remarque 2 (sécurité) : lors de la première exécution autonome, il est recommandé d'observer en maintenant le robot / à vitesse réduite pour confirmer que les mouvements de la politique sont raisonnables. La politique peut produire des mouvements inattendus.

⚠️ Remarque 3 (taux de réussite attendu) : ACT atteint généralement 50-80 % de réussite avec 20 épisodes de données. Si le résultat est inférieur aux attentes, retournez enregistrer des données supplémentaires ou ajustez le nombre de pas d'entraînement.

⚠️ Remarque 4 (environnement sans écran) : --display_data=true nécessite un serveur d'affichage ; en l'absence de GUI, supprimez ce paramètre (l'évaluation a toujours lieu, sans affichage en temps réel).


Optimisation itérative ​

Si le taux de réussite de l'évaluation n'est pas satisfaisant, ajustez par ordre de priorité :

PrioritéÉlément d'optimisationAction
1Enregistrer des données supplémentaires de haute qualitéRetournez à la phase 4 et enregistrez 20-30 épisodes de données plus cohérentes
2Augmenter le nombre de pas d'entraînementRetournez à la phase 5, --steps=100000
3Vérifier la cohérence de la position de départRéinitialisez strictement à chaque épisode lors de l'évaluation
4Ajuster la description de la tâcheAssurez-vous que single_task correspond à la tâche

Vous avez ainsi réalisé la boucle complète de SO-ARM101 + AmazingHand : calibration → téléopération → collecte → entraînement → déploiement.


Dépannage ​

SymptômeCauseSolution
Échec du chargement du modèleChemin erroné / incompletVérifiez que --policy.path pointe vers le répertoire pretrained_model
La politique ne bouge pasCaméra / observation incorrecteVérifiez que les indices des caméras correspondent à ceux de l'entraînement ; vérifiez les permissions de /dev/video*
La politique s'agitePosition de départ incohérente / données médiocresRéinitialisez strictement ; enregistrez des données supplémentaires
Comportement différent de celui de l'entraînementDifférences d'environnementVérifiez que la caméra, l'éclairage et la position des objets sont identiques à ceux de l'enregistrement