Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| simulators [2019/02/12 13:04] – created 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 | + | |
| - | + | ||
| - | Installation du ROS Melodic : | + | |
| - | + | ||
| - | Modification du “sources.list”: | + | |
| - | sudo sh -c 'echo "deb http:// | + | |
| - | + | ||
| - | 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:// | + | |
| + | * Gym : [[software: | ||
| - | Intégration Turtlebot3: | + | * Gazebo |
| - | Création des répertoires: | + | * Vrep : [[simulatorvrep|Vrep]] |
| - | mkdir ~/ | + | |
| - | mkdir ~/ | + | |
| - | + | ||
| - | Télécharger des codes sources de Turtlebot3: | + | |
| - | cd ~/ | + | |
| - | git clone https:// | + | |
| - | git clone https:// | + | |
| - | git clone https:// | + | |
| - | + | ||
| - | Installation: | + | |
| - | cd ~/catkin_ws && catkin_make | + | |
| - | + | ||
| - | 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 “gazeboEntity.py” et “simGazebo.py” qui se situent dans le répertoire “program_gazebo” sur la branche “dev-Yao_ZHAO”. | + | |
| - | + | ||
| - | Le fichier gazeboEntity.py contient les méthodes suivantes: | + | |
| - | + | ||
| - | __init__ : | + | |
| - | La méthode de construction, | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | + | ||
| - | pre_get_model_state : | + | |
| - | Initialisation des paramètres pour utiliser le service “/ | + | |
| - | + | ||
| - | get_position : | + | |
| - | Permet de récupérer la position d’un objet. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.get_position() | + | |
| - | + | ||
| - | get_orientation : | + | |
| - | Permet de récupérer l’orientation d’un objet. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.get_orientation() | + | |
| - | + | ||
| - | get_linear : | + | |
| - | Permet de récupérer la vitesse linéaire. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.get_linear() | + | |
| - | + | ||
| - | get_angular : | + | |
| - | Permet de récupérer la vitesse angulaire. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.get_angular() | + | |
| - | + | ||
| - | remove_entity : | + | |
| - | Permet de supprimer un objet. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.remove_entity() | + | |
| - | + | ||
| - | set_model_position : | + | |
| - | Permet de modifier la position d’un objet, trois paramètres les positions x,y,z sont nécessaires. | + | |
| - | Exemple d’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | model.set_model_position(2, | + | |
| - | + | ||
| - | set_model_orientation : | + | |
| - | Permet de modifier l’orientation d’un objet, trois paramètres les orientations x,y,z sont nécessaires. | + | |
| - | Exemple d’utilisation: | + | |
| - | 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’utilisation: | + | |
| - | model = GazeboEntity(" | + | |
| - | try: | + | |
| - | model.move_robot(list) | + | |
| - | except rospy.ROSInterruptException: | + | |
| - | pass | + | |
| - | + | ||
| - | + | ||
| - | Le fichier simGazebo.py contient les méthodes suivantes: | + | |
| - | + | ||
| - | start : | + | |
| - | Permet de démarrer une simulation. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.start() | + | |
| - | + | ||
| - | enPause : | + | |
| - | Permet de mettre en pause la simulation. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.enPause() | + | |
| - | + | ||
| - | resetSimulation : | + | |
| - | Permet de réinitialiser la simuation (timing, les positions des objets...) | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.resetSimulation() | + | |
| - | + | ||
| - | resetWorld : | + | |
| - | Permet de réinitialiser le world. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.resetWorld() | + | |
| - | + | ||
| - | getListModel : | + | |
| - | Permet de récupérer la liste des objet dans le world. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.getListModel() | + | |
| - | + | ||
| - | getSimTime : | + | |
| - | Permet de récupérer le temps de simulation. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.getSimTime() | + | |
| - | + | ||
| - | loadWorld : | + | |
| - | Permet de charger un world, une paramètre d’une liste des ficher launcher est nécessaire. | + | |
| - | Exemple d’utilisation: | + | |
| - | 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’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.getAllProperties() | + | |
| - | + | ||
| - | getListModelBySuscriber : | + | |
| - | Permet de récupérer une liste des objets dans le world de type Suscriber. | + | |
| - | Exemple d’utilisation: | + | |
| - | 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’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.getAllPose() | + | |
| - | + | ||
| - | getAllTwist : | + | |
| - | Permet de récupérer les vitesse des objets dans le world de type Suscriber. | + | |
| - | Exemple d’utilisation: | + | |
| - | simulateur = Simulator() | + | |
| - | simulateur.getAllTwist() | + | |
| + | Code is onhttps:// | ||