Unitree RL Gym est une bibliothèque open-source dédiée à l'apprentissage par renforcement pour les robots quadrupèdes, supportant des modèles tels que Go2, H1, H1_2 et G1. Ce guide détaille la mise en place et l'utilisation pour les chercheurs et passionnés de robotique.
Configuration de l'Environnement
Avant de commencer, vérifiez les prérequis système suivants :
| Composant | Version | Description |
|---|---|---|
| Python | 3.8+ | Langage de programmation principal |
| PyTorch | 1.9+ | Framework de deep learning |
| CUDA | 11.0+ | Accélération GPU (optionnel) |
| Isaac Gym | Dernière version | Environnement de simulation physique |
Étapes d'Installation
- Cloner le dépôt du projet : ```
git clone https://github.com/unitree/unitree_rl_gym.git
cd unitree_rl_gym
- Installer les dépendances : ```
pip install -r requirements.txt
- Valider l'environnement : ```
python -c "import legged_gym; print('Environnement prêt !')"
Modules Fonctionnels Principaux
Entraînement du Modèle
Pour lancer l'entraînement, utilisez le script train.py avec des paramètres configurables :
python legged_gym/scripts/train.py --task=go2 --no_render=true
Paramètres clés pour l'optimisasion :
| Paramètre | Exemple | Fonction |
|---|---|---|
| --task | go2/g1/h1 | Sélection du modèle de robot |
| --no_render | true | Mode sans interface pour une efficacité accrue |
| --parallel_envs | 4096 | Nombre d'environnements parallèles |
| --epochs | 5000 | Itérations maximales d'entraînement |
Démonstration et Validation
Après l'entraînement, exécutez play.py pour visualiser les résultats :
python legged_gym/scripts/play.py --task=go2
Caractéristiques de la démonstration :
- Visualisation en temps réel des mouvements du robot
- Export automatique du modèle réseau Actor
- Support de plusieurs modes de locomotion
Flux de Travail Complett
Le processus de contrôle par apprentissage par renforcement suit quatre étapes standardisées :
- Phase d'entraînement en simulation :
- Entraînement du réseau de politiques dans Isaac Gym
- Conception de fonctions de récompense adaptées
- Entraînement parallèle pour accélérer la convergence
- Validation des performances :
- Vérification de la conformité de la politique entraînée
- Visualisation du comportement du robot
- Export du modèle final
- Test inter-simulateurs :
- Déploiement dans Mujoco pour valider la généralisation
- Assurance de l'indépendance vis-à-vis des spécificités de simulation
- Déploiement physique :
- Transfert de la politique sur le robot réel
- Adaptation du sim vers le réel
Chemins de Stockage
- Modèles entraînés :
logs/<nom_expérience>/<date_heure>_<nom_run>/ - Politiques exportées :
logs/<nom_expérience>/exported/policies/ - Modèles pré-entraînés :
deploy/pre_train/<robot>/motion.pt
Conseils de Configuration Avancée
Sélection du Modèle de Robot
Choisissez le robot en fonction de vos besoins :
| Robot | Scénario | Difficulté d'entraînement | Recommandation |
|---|---|---|---|
| Go2 | Apprantissage de base, mouvements simples | ★☆☆☆ | ★★★★ |
| G1 | Terrains complexes, tâches de charge | ★★★☆ | ★★★☆ |
| H1 | Recherche sur robots humanoïdes | ★★★★ | ★★☆☆ |
| H1_2 | Contrôle humanoïde avancé | ★★★★ | ★★☆☆ |
Optimisation des Performances
Pour l'entraînement sur CPU :
python legged_gym/scripts/train.py --task=go2 --compute_device=cpu --train_device=cpu
Pour l'accélération GPU :
python legged_gym/scripts/train.py --task=go2 --compute_device=cuda --train_device=cuda
Dépannage des Problèmes Courants
Problèmes d'Entraînement
- Entraînement lent : Augmentez la valeur de
--parallel_envset activez le mode--no_render - Non-convergence du modèle : Révisez la fonction de récompense et ajustez les paramètres de taux d'apprentissage
Problèmes de Déploiement
- Baisse de performance sim-vers-réel : Effectuez des tests Sim2Sim dans Mujoco pour assurer la robustesse de la politique
Parcours d'Apprentissage Progressif
- Niveau débutant : Maîtrisez les commandes d'entraînement et de démonstration
- Niveau intermédiaire : Personnalisez les fonctions de récompense et optimisez les hyperparamètres
- Niveau avancé : Développez de nouveaux modèles de robots pour des tâches de contrôle complexes
Domaines de Recherche Étendus
- Contrôle multi-robots coordonné
- Apprentissage d'adaptation à des environnements dynamiques
- Algorithmes de planification de mouvements en temps réel