Page Web : https://serl-robot.github.io/
SERL fournit un ensemble de bibliothèques, de wrappers d'environnement et d'exemples pour former les politiques RL pour les tâches de manipulation robotique. Les sections suivantes décrivent comment utiliser SERL. Nous illustrerons l’utilisation avec des exemples.
?: Vidéo SERL, vidéo supplémentaire sur un échantillon RL efficace.
Table des matières
SERL : une suite logicielle pour un apprentissage par renforcement robotique efficace sur des échantillons
Installation
Présentation et structure du code
Démarrage rapide avec SERL dans Sim
Courez avec Franka Arm sur Real Robot
Contribution
Citation
Pour les personnes qui utilisent SERL pour des tâches impliquant le contrôle de la pince (par exemple, ramasser des objets), nous recommandons fortement d'ajouter une petite pénalité au changement d'action de la pince, car cela améliorera considérablement la vitesse d'entraînement. Pour plus de détails, veuillez vous référer à : PR #65.
De plus, nous recommandons également de proposer des interventions en ligne pendant la formation en plus du chargement des démos hors ligne. Si vous possédez un robot Franka et une SpaceMouse, cela peut être aussi simple que de simplement toucher la SpaceMouse pendant l'entraînement.
Nous avons résolu un problème majeur dans le cadre d’action de l’intervention. Voir la version v0.1.1. Veuillez mettre à jour votre code avec la branche principale.
Configurer l'environnement Conda : créer un environnement avec
conda create -n serl python=3.10
Installez Jax comme suit :
Pour le processeur (non recommandé) :
pip install --upgrade "jax[cpu]"
Pour les GPU :
pip install --upgrade "jax[cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Pour le TPU
pip install --upgrade "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
Consultez la page Jax Github pour plus de détails sur l'installation de Jax.
Installez le serl_launcher
cd serl_launcher pip install -e .pip install -r exigences.txt
SERL fournit un ensemble de bibliothèques communes permettant aux utilisateurs de former des politiques RL pour les tâches de manipulation robotique. La structure principale de l'exécution des expériences RL implique d'avoir un nœud acteur et un nœud apprenant, qui interagissent tous deux avec l'environnement du gymnase robotisé. Les deux nœuds fonctionnent de manière asynchrone, les données étant envoyées de l'acteur au nœud apprenant via le réseau à l'aide d'agentlace. L'apprenant synchronisera périodiquement la politique avec l'acteur. Cette conception offre une flexibilité pour la formation et l’inférence parallèles.
Tableau pour la structure du code
Répertoire de codes | Description |
---|---|
serl_lanceur | Code principal de la SERL |
serl_launcher.agents | Politiques des agents (par exemple DRQ, SAC, BC) |
serl_launcher.wrappers | Emballages d'environnement de salle de sport |
serl_launcher.data | Tampon de relecture et magasin de données |
serl_launcher.vision | Modèles et utilitaires liés à la vision |
franka_sim | Environnement de salle de simulation Franka Mujoco |
serl_robot_infra | Infra robot pour courir avec de vrais robots |
serl_robot_infra.robot_servers | Serveur Flask pour envoyer des commandes au robot via ROS |
serl_robot_infra.franka_env | Env. salle de sport pour le vrai robot Franka |
Nous proposons un environnement simulé pour tester SERL avec un robot franka.
Découvrez le démarrage rapide avec SERL dans Sim
Formation à partir d'un exemple d'observation de l'État
Formation à partir d'un exemple d'observation d'images
Formation à partir de l'observation d'images avec exemple de 20 trajectoires de démonstration
Nous fournissons un guide étape par étape pour exécuter des politiques RL avec SERL sur le vrai robot Franka.
Découvrez la course avec Franka Arm sur Real Robot
Insertion de chevilles ?
Insertion de composants PCB
Acheminement des câbles ?
Déplacement d'objet ?️
Nous apprécions les contributions à ce référentiel ! Forkez et soumettez un PR si vous avez des améliorations à apporter à la base de code. Avant de soumettre un PR, veuillez exécuter pre-commit run --all-files
pour vous assurer que la base de code est correctement formatée.
Si vous utilisez ce code pour votre recherche, veuillez citer notre article :
@misc{luo2024serl, title={SERL : Une suite logicielle pour l'apprentissage par renforcement robotique efficace par échantillons}, author={Jianlan Luo et Zheyuan Hu et Charles Xu et You Liang Tan et Jacob Berg et Archit Sharma et Stefan Schaal et Chelsea Finn et Abhishek Gupta et Sergey Levine}, année={2024}, eprint={2401.16013}, archivePrefix={arXiv}, PrimaryClass={cs.RO}}