Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| simulators [2019/02/12 13:06] – mgp3212019 | simulators [2026/10/22 23:03] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | **Simulateur Gazebo** | + | {{tag> software simulator project}} |
| - | **Prérequis | + | Common API for reinforcement learning using the simulators |
| - | Environnement Linux : Ubuntu 18.04 | + | * Gym : [[software: |
| - | ** ** | + | |
| - | **Installation du ROS Melodic | + | |
| - | ** ** | + | Code is onhttps:// |
| - | + | ||
| - | **Modification du & | + | |
| - | + | ||
| - | sudo sh -c &# | + | |
| - | + | ||
| - | **Mettre en place les clés :** | + | |
| - | + | ||
| - | sudo apt-key adv --keyserver hkp:// | + | |
| - | + | ||
| - | **Installation :** | + | |
| - | + | ||
| - | sudo apt update | + | |
| - | + | ||
| - | sudo apt install ros-melodic-desktop-full | + | |
| - | + | ||
| - | ** ** | + | |
| - | + | ||
| - | **Initialisation rosdep :** | + | |
| - | + | ||
| - | sudo rosdep init | + | |
| - | + | ||
| - | rosdep update | + | |
| - | + | ||
| - | **Configuration environnement :** | + | |
| - | + | ||
| - | echo & | + | |
| - | + | ||
| - | source ~/.bashrc | + | |
| - | + | ||
| - | **Installation des packages dépendants :** | + | |
| - | + | ||
| - | sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | [Explication porvenant de : [http:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | **Intégration Turtlebot3: | + | |
| - | + | ||
| - | **Création des répertoires: | + | |
| - | + | ||
| - | mkdir ~/ | + | |
| - | + | ||
| - | mkdir ~/ | + | |
| - | + | ||
| - | **Télécharger des codes sources de Turtlebot3: | + | |
| - | + | ||
| - | cd ~/ | + | |
| - | + | ||
| - | git clone https:// | + | |
| - | + | ||
| - | git clone https://github.com/ | + | |
| - | + | ||
| - | git clone https:// | + | |
| - | + | ||
| - | **Installation: | + | |
| - | + | ||
| - | cd ~/ | + | |
| - | + | ||
| - | **Configuration environnement: | + | |
| - | + | ||
| - | Ajouter les lignes suivantes dans le fichier & | + | |
| - | + | ||
| - | source ~/ | + | |
| - | + | ||
| - | export TURTLEBOT3\_MODEL=burger | + | |
| - | + | ||
| - | [Explication porvenant de : [http:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | **Utilisation des codes sources pour la partie Gazebo :** | + | |
| - | + | ||
| - | Les codes sources contiennent deux fichier & | + | |
| - | + | ||
| - | **Le fichier** | + | |
| - | + | ||
| - | - **●●**** \_\_init\_\_ :** | + | |
| - | + | ||
| - | La méthode de construction, | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | - **●●**** pre\_get\_model\_state :** | + | |
| - | + | ||
| - | Initialisation des paramètres pour utiliser le service & | + | |
| - | + | ||
| - | - **●●**** get\_position :** | + | |
| - | + | ||
| - | Permet de récupérer la position d&# | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.get\_position() | + | |
| - | + | ||
| - | - **●●**** get\_orientation :** | + | |
| - | + | ||
| - | Permet de récupérer l&# | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.get\_orientation() | + | |
| - | + | ||
| - | - **●●**** get\_linear :** | + | |
| - | + | ||
| - | Permet de récupérer la vitesse linéaire. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.get\_linear() | + | |
| - | + | ||
| - | - **●●**** get\_angular :** | + | |
| - | + | ||
| - | Permet de récupérer la vitesse angulaire. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.get\_angular() | + | |
| - | + | ||
| - | - **●●**** remove\_entity :** | + | |
| - | + | ||
| - | Permet de supprimer un objet. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.remove\_entity() | + | |
| - | + | ||
| - | - **●●**** set\_model\_position :** | + | |
| - | + | ||
| - | Permet de modifier la position d&# | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.set\_model\_position(2, | + | |
| - | + | ||
| - | - **●●**** set\_model\_orientation :** | + | |
| - | + | ||
| - | Permet de modifier l&# | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | model.set\_model\_orientation(0, | + | |
| - | + | ||
| - | - **●●**** move\_robot :** | + | |
| - | + | ||
| - | Permet de faire avancer le turtlebot, une liste contenant une vitesse linéaire et une vitesse angulaire est nécessaire. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | model = GazeboEntity(& | + | |
| - | + | ||
| - | try: | + | |
| - | + | ||
| - | model.move\_robot(list) | + | |
| - | + | ||
| - | except rospy.ROSInterruptException: | + | |
| - | + | ||
| - | pass | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | **Le fichier** | + | |
| - | + | ||
| - | - **start :** | + | |
| - | + | ||
| - | Permet de démarrer une simulation. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.start() | + | |
| - | + | ||
| - | - **●●**** enPause :** | + | |
| - | + | ||
| - | Permet de mettre en pause la simulation. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.enPause() | + | |
| - | + | ||
| - | - **●●**** resetSimulation :** | + | |
| - | + | ||
| - | Permet de réinitialiser la simuation (timing, les positions des objets...) | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.resetSimulation() | + | |
| - | + | ||
| - | - **●●**** resetWorld :** | + | |
| - | + | ||
| - | Permet de réinitialiser le world. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.resetWorld() | + | |
| - | + | ||
| - | - **●●**** getListModel :** | + | |
| - | + | ||
| - | Permet de récupérer la liste des objet dans le world. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getListModel() | + | |
| - | + | ||
| - | - **●●**** getSimTime :** | + | |
| - | + | ||
| - | Permet de récupérer le temps de simulation. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getSimTime() | + | |
| - | + | ||
| - | - **●●**** loadWorld :** | + | |
| - | + | ||
| - | Permet de charger un world, une paramètre d&# | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | list = [&# | + | |
| - | + | ||
| - | simulateur.loadWorld(list) | + | |
| - | + | ||
| - | - **●●**** callbackAllProperties :** | + | |
| - | + | ||
| - | Fonction callback appelé par la fonction _getAllProperties_. | + | |
| - | + | ||
| - | - **●●**** callbackListModel :** | + | |
| - | + | ||
| - | Fonction callback appelé par la fonction _getListModelBySuscriber_. | + | |
| - | + | ||
| - | - **●●**** callbackPose :** | + | |
| - | + | ||
| - | Fonction callback appelé par la fonction _getAllPose_. | + | |
| - | + | ||
| - | - **●●**** callbackTwist :** | + | |
| - | + | ||
| - | Fonction callback appelé par la fonction _getAllTwist_. | + | |
| - | + | ||
| - | - **●●**** getAllProperties :** | + | |
| - | + | ||
| - | Permet de récupérer tous les properties de tous les objets de type Suscriber. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getAllProperties() | + | |
| - | + | ||
| - | - **●●**** getListModelBySuscriber :** | + | |
| - | + | ||
| - | Permet de récupérer une liste des objets dans le world de type Suscriber. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getListModelBySuscriber() | + | |
| - | + | ||
| - | - **●●**** getAllPose :** | + | |
| - | + | ||
| - | Permet de récupérer les positions et les orientations des objets dans le world de type Suscriber. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getAllPose() | + | |
| - | + | ||
| - | - **●●**** getAllTwist :** | + | |
| - | + | ||
| - | Permet de récupérer les vitesse des objets dans le world de type Suscriber. | + | |
| - | + | ||
| - | Exemple d&# | + | |
| - | + | ||
| - | simulateur = Simulator() | + | |
| - | + | ||
| - | simulateur.getAllTwist() | + | |