Differences

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

Link to this comparison view

simulators [2019/02/12 13:06]
mgp3212019
simulators [2019/04/25 14:08]
Line 1: Line 1:
-**Simulateur Gazebo** 
  
-**Prérequis :** 
- 
-Environnement Linux : Ubuntu 18.04 
- 
-** ** 
- 
-**Installation du ROS Melodic :** 
- 
-** ** 
- 
-**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.txt
  • Last modified: 2019/04/25 14:08
  • (external edit)