Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

Robot Parkour Learning

Auteurs: Ziwen Zhuang, Zipeng Fu, Jianren Wang, Christopher Atkeson, Sören Schwertfeger, Chelsea Finn, Hang Zhao · CoRL 2023

Licences

  • Accès libre
  • Article: CC BY 4.0

Tout ce qui suit s'appuie sur l'article complet sous sa licence CC BY 4.0 ; sa figure est montrée en citant les auteurs.

En bref

Un RL en deux étapes (d'abord des obstacles pénétrables, puis de vraies collisions) entraîne cinq compétences de parkour ; DAgger les distille en une seule politique sur image de profondeur qui tourne à bord de robots Unitree A1 et Go1 bon marché.

Pourquoi c'est important

La politique s'exécute uniquement avec le calcul, la perception de profondeur et l'alimentation embarqués sur des quadrupèdes bon marché, sans données de mouvement de référence, et la même chaîne d'entraînement pilote deux robots (A1 et Go1). Dans les comparaisons des auteurs, c'est le préentraînement à contraintes souples qui a rendu l'escalade et le saut tout simplement apprenables.

Problème

Le parkour exige qu'un robot perçoive les obstacles et choisisse à grande vitesse parmi des compétences agiles variées, mais les méthodes d'apprentissage antérieures fournissent soit des compétences variées mais aveugles, soit des compétences fondées sur la vision mais spécialisées, à l'aide de fonctions de récompense à nombreux termes ou de données de capture de mouvement animal dépourvues de vision égocentrée. Pour de petits robots bon marché, les obstacles sont grands par rapport à la taille du corps, la perception de profondeur embarquée accuse du retard lors des mouvements rapides (0,2 s de retard à 1 m/s représente 0,2 m d'erreur), et le parkour pousse les moteurs à leurs limites.

Solution proposée

Chaque compétence (escalader, sauter, ramper, s'incliner, courir) est entraînée dans IsaacGym avec PPO à partir d'informations privilégiées sur les obstacles et d'une seule récompense pour une vitesse d'avance proche de 1 m/s, l'énergie mécanique et la survie. La première étape rend les obstacles pénétrables et pénalise le volume et la profondeur de pénétration sous un curriculum automatique (contraintes dynamiques souples, inspirées de la collocation directe) ; la seconde étape affine avec de vraies collisions. DAgger distille ensuite les cinq spécialistes en une seule politique GRU qui reçoit la proprioception et une image de profondeur 48×64, déployée avec un prétraitement de profondeur harmonisé et un écrêtage du couple à 25 Nm.

Idées clés

  • Laisser le robot traverser les obstacles au début, avec une pénalité de pénétration et un curriculum automatique, résout le problème d'exploration : sans cela, et avec la méthode d'exploration de référence RND, aucune escalade ni aucun saut n'a été appris.
  • Une seule récompense composée de la progression vers l'avant, de la puissance mécanique au carré et d'un bonus de survie a produit les cinq compétences, sans réglage de récompense par compétence ni données de mouvement.
  • La politique a besoin de mémoire : lors de l'escalade, les pattes arrière doivent agir en fonction des dimensions d'obstacle vues dans des images de profondeur antérieures, si bien que la politique GRU réussit là où une politique MLP échoue.
  • Distiller dans l'espace des actions avec DAgger fusionne des spécialistes aux poids de réseau différents en une seule politique visuelle, ce que la distillation dans l'espace latent à la manière de RMA ne peut pas faire.
  • Les images de profondeur ont été harmonisées entre la simulation (écrêtage, bruit gaussien, artefacts aléatoires) et la caméra réelle (écrêtage, comblement des trous, filtres spatiaux et temporels) ; un comportement consistant à réessayer après une escalade ratée est apparu sans avoir été programmé.

Principaux résultats

  • Essais réels en intérieur avec l'A1, 10 essais par configuration : 80 % de réussite pour escalader 0,40 m (1,53× la hauteur du robot), 80 % pour sauter des vides de 0,60 m (1,5× la longueur du robot), 90 % pour ramper sous 0,2 m (0,76× la hauteur du robot), et passage par des fentes de 0,28 m en s'inclinant ; meilleur résultat de toutes les méthodes comparées, y compris le contrôleur MPC intégré de l'A1.
  • Réussite en simulation de la politique de parkour distillée (100 essais × 3 graines, obstacles de test plus difficiles qu'à l'entraînement) : escalade 86 %, saut 80 %, rampement 100 %, inclinaison 73 %, course 100 %.
  • Méthodes de référence en simulation : Blind 0 % en escalade, saut et inclinaison et 13 % en rampement ; MLP 0 % en escalade et 1 % en saut ; No Distill 0 % en escalade, saut et inclinaison ; RMA, testé uniquement sur l'inclinaison, 74 %.
  • Les oracles spécialistes entraînés avec le préentraînement à dynamique souple ont atteint environ 95 % de réussite moyenne sur l'escalade, le saut, le rampement et l'inclinaison ; sans lui, 0 % en escalade et en saut.
  • En extérieur, le robot a sauté un vide de 0,6 m entre deux tabourets en pierre, gravi des marches successives de 0,42 m et rampé sous un chariot de camping.
  • Coût d'entraînement : chaque spécialiste 12 h en dynamique souple plus 6 h en dynamique dure sur une machine équipée d'une Nvidia 3090 ; distillation sur quatre machines équipées chacune d'une 3090.

Limites

  • Les environnements de simulation sont construits à la main, de sorte que de nouvelles compétences ne peuvent être apprises que si de nouveaux environnements d'obstacles sont ajoutés à la simulation (selon les auteurs).
  • La politique n'utilise que la profondeur ; l'entraînement à partir du RGB avec de l'information sémantique est laissé à des travaux futurs (selon les auteurs).
  • La profondeur embarquée ne se rafraîchit qu'à 10 Hz en raison du calcul embarqué limité, tandis que la politique tourne à 50 Hz sur le plongement de profondeur le plus récent disponible.
  • Les essais quantitatifs en conditions réelles n'ont été menés que sur l'A1, à 10 essais par configuration ; aucun taux de réussite réel n'est indiqué pour la tâche d'inclinaison à 0,28 m.

Impact sur le domaine

Finaliste du CoRL 2023 Best Systems Paper Award et cité 356 fois. Les auteurs le présentent comme un système open source pour entraîner et déployer des politiques de locomotion agile ; la page du projet renvoie au dépôt de code.

Résumé

Le parkour est un grand défi pour la locomotion à pattes, qui exige des robots qu'ils franchissent rapidement divers obstacles dans des environnements complexes. Les méthodes existantes peuvent générer soit des compétences de locomotion variées mais aveugles, soit des compétences fondées sur la vision mais spécialisées, en utilisant des données animales de référence ou des récompenses complexes. Cependant, le parkour autonome exige que les robots apprennent des compétences généralisables, à la fois fondées sur la vision et variées, pour percevoir diverses situations et y réagir. Dans ce travail, nous proposons un système pour apprendre une seule politique de parkour de bout en bout fondée sur la vision, regroupant des compétences de parkour variées, à l'aide d'une récompense simple et sans aucune donnée de mouvement de référence. Nous développons une méthode d'apprentissage par renforcement inspirée de la collocation directe pour générer des compétences de parkour, notamment escalader des obstacles hauts, franchir d'un bond de grands vides, ramper sous des barrières basses, se faufiler par des fentes étroites et courir. Nous distillons ces compétences en une seule politique de parkour fondée sur la vision et la transférons à un robot quadrupède à l'aide de sa caméra de profondeur égocentrée. Nous montrons que notre système permet à deux robots bon marché différents de sélectionner et d'exécuter de manière autonome les compétences de parkour appropriées pour traverser des environnements réels difficiles.

Liens

  • arXiv 2309.05665: https://arxiv.org/abs/2309.05665
  • DOI 10.48550/arXiv.2309.05665: https://doi.org/10.48550/arXiv.2309.05665
  • PDF: https://proceedings.mlr.press/v229/zhuang23a/zhuang23a.pdf
  • Code: https://github.com/ZiwenZhuang/parkour
  • Page du projet: https://robot-parkour.github.io/

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.