Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
simulators [2019/02/12 13:06]
mgp3212019
simulators [2019/04/25 14:08] (current)
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 http://​wiki-robot.enstb.org/​doku.php?​id=simulatorGym
  
-** **+  ​Gazebo : http://​wiki-robot.enstb.org/​doku.php?​id=simulatorGazebo ​
  
-**Installation du ROS Melodic ​:**+  ​Vrep http://​wiki-robot.enstb.org/​doku.php?​id=simulatorVrep ​
  
-** ** +Code is onhttps://​github.com/​Pikalchemist/lems/tree/livrable_FIP ​(branch livrable_FIP)
- +
-**Modification du &​quot;​sources.list&​quot;:​** +
- +
-sudo sh -c &#​39;​echo &​quot;​deb http://​packages.ros.org/​ros/​ubuntu $(lsb\_release -sc) main&​quot;​ \> /​etc/​apt/​sources.list.d/​ros-latest.list&#​39;​ +
- +
-**Mettre en place les clés :** +
- +
-sudo apt-key adv --keyserver hkp://​ha.pool.sks-keyservers.net:​80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 +
- +
-**Installation :** +
- +
-sudo apt update +
- +
-sudo apt install ros-melodic-desktop-full +
- +
-** ** +
- +
-**Initialisation rosdep :** +
- +
-sudo rosdep init +
- +
-rosdep update +
- +
-**Configuration environnement :** +
- +
-echo &​quot;​source /​opt/​ros/​melodic/​setup.bash&​quot;​ \&​gt;​\&​gt;​ ~/.bashrc +
- +
-source ~/.bashrc +
- +
-**Installation des packages dépendants :** +
- +
-sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential +
- +
- +
- +
-[Explication porvenant de : [http://​wiki.ros.org/​melodic/​Installation/​Ubuntu](http://​wiki.ros.org/​melodic/​Installation/​Ubuntu)] +
- +
- +
- +
-**Intégration Turtlebot3:​** +
- +
-**Création des répertoires:​** +
- +
-mkdir ~/​catkin\_ws +
- +
-mkdir ~/​catkin\_ws/​src +
- +
-**Télécharger des codes sources de Turtlebot3:​** +
- +
-cd ~/​catkin\_ws/​src/​ +
- +
-git clone https://​github.com/​ROBOTIS-GIT/turtlebot3\_simulations.git +
- +
-git clone https://github.com/​ROBOTIS-GIT/​turtlebot3\_msgs.git +
- +
-git clone https://​github.com/​ROBOTIS-GIT/​turtlebot3.git +
- +
-**Installation:​** +
- +
-cd ~/​catkin\_ws &​amp;&​amp;​ catkin\_make +
- +
-**Configuration environnement:​** +
- +
-Ajouter les lignes suivantes dans le fichier &​quot;​~/​.bashrc&​quot;:​ +
- +
-source ~/​catkin\_ws/​devel/​setup.bash +
- +
-export TURTLEBOT3\_MODEL=burger +
- +
-[Explication porvenant de : [http://​emanual.robotis.com/​docs/​en/​platform/​turtlebot3/​simulation/​](http://​emanual.robotis.com/​docs/​en/​platform/​turtlebot3/​simulation/​)] +
- +
- +
- +
-**Utilisation des codes sources pour la partie Gazebo :** +
- +
-Les codes sources contiennent deux fichier &​quot;​gazeboEntity.py&​quot;​ et &​quot;​simGazebo.py&​quot;​ qui se situent dans le répertoire &​quot;​program\_gazebo&​quot;​ sur la branche &​quot;​dev-Yao\_ZHAO&​quot;​. +
- +
-**Le fichier** ​ **gazeboEntity.py** ​ **contient les méthodes suivantes:​** +
- +
-- **●●**** \_\_init\_\_ :** +
- +
-La méthode de construction,​ deux paramètes &​quot;​model\_name&​quot;​ et &​quot;​relative\_entity\_name&​quot;​ sont nécessaires. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-- **●●**** pre\_get\_model\_state :** +
- +
-Initialisation des paramètres pour utiliser le service &​quot;/​gazebo/​get\_model\_state&​quot;,​ ceci est appelée dans les méthodes get\_position,​get\_orientation,​get\_linear et get\_angular. +
- +
-- **●●**** get\_position :** +
- +
-Permet de récupérer la position d&#​39;​un objet. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.get\_position() +
- +
-- **●●**** get\_orientation :** +
- +
-Permet de récupérer l&#​39;​orientation d&#​39;​un objet. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.get\_orientation() +
- +
-- **●●**** get\_linear :** +
- +
-Permet de récupérer la vitesse linéaire. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.get\_linear() +
- +
-- **●●**** get\_angular :** +
- +
-Permet de récupérer la vitesse angulaire. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.get\_angular() +
- +
-- **●●**** remove\_entity :** +
- +
-Permet de supprimer un objet. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.remove\_entity() +
- +
-- **●●**** set\_model\_position :** +
- +
-Permet de modifier la position d&#​39;​un objet, trois paramètres les positions x,y,z sont nécessaires. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.set\_model\_position(2,​2,​0) +
- +
-- **●●**** set\_model\_orientation :** +
- +
-Permet de modifier l&#​39;​orientation d&#​39;​un objet, trois paramètres les orientations x,y,z sont nécessaires. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-model.set\_model\_orientation(0,​0,​-1) +
- +
-- **●●**** move\_robot :** +
- +
-Permet de faire avancer le turtlebot, une liste contenant une vitesse linéaire et une vitesse angulaire est nécessaire. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) +
- +
-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&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.start() +
- +
-- **●●**** enPause :** +
- +
-Permet de mettre en pause la simulation. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.enPause() +
- +
-- **●●**** resetSimulation :** +
- +
-Permet de réinitialiser la simuation (timing, les positions des objets...) +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.resetSimulation() +
- +
-- **●●**** resetWorld :** +
- +
-Permet de réinitialiser le world. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.resetWorld() +
- +
-- **●●**** getListModel :** +
- +
-Permet de récupérer la liste des objet dans le world. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.getListModel() +
- +
-- **●●**** getSimTime :** +
- +
-Permet de récupérer le temps de simulation. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.getSimTime() +
- +
-- **●●**** loadWorld :** +
- +
-Permet de charger un world, une paramètre d&#​39;​une liste des ficher launcher est nécessaire. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-list = [&#​39;/​home/​yao/​catkin\_ws/​src/​turtlebot3\_simulations/​turtlebot3\_gazebo/​launch/​turtlebot3\_stage\_1.launch&#​39;​] +
- +
-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&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.getAllProperties() +
- +
-- **●●**** getListModelBySuscriber :** +
- +
-Permet de récupérer une liste des objets dans le world de type Suscriber. +
- +
-Exemple d&#​39;​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&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.getAllPose() +
- +
-- **●●**** getAllTwist :** +
- +
-Permet de récupérer les vitesse des objets dans le world de type Suscriber. +
- +
-Exemple d&#​39;​utilisation:​ +
- +
-simulateur = Simulator() +
- +
-simulateur.getAllTwist()+
  • simulators.1549976779.txt.gz
  • Last modified: 2019/04/25 14:08
  • (external edit)