Differences

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

Link to this comparison view

Next revision Both sides next revision
simulators [2019/02/12 13:04]
mgp3212019 created
simulators [2019/02/12 13:06]
mgp3212019
Line 1: Line 1:
-Simulateur Gazebo+**Simulateur Gazebo** 
 + 
 +**Prérequis :**
  
-Prérequis : 
-  
 Environnement Linux : Ubuntu 18.04 Environnement Linux : Ubuntu 18.04
-  + 
-Installation du ROS Melodic : +** ** 
-  + 
-Modification du sources.list+**Installation du ROS Melodic :** 
-sudo sh -c 'echo "deb http://​packages.ros.org/​ros/​ubuntu $(lsb_release ​-sc) main" > /​etc/​apt/​sources.list.d/​ros-latest.list' + 
-  +** ** 
-Mettre en place les clés :+ 
 +**Modification du "sources.list":** 
 + 
 +sudo sh -c 'echo "deb http://​packages.ros.org/​ros/​ubuntu $(lsb\_release ​-sc) main" \&​gt; ​/​etc/​apt/​sources.list.d/​ros-latest.list' 
 + 
 +**Mettre en place les clés :** 
 sudo apt-key adv --keyserver hkp://​ha.pool.sks-keyservers.net:​80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 sudo apt-key adv --keyserver hkp://​ha.pool.sks-keyservers.net:​80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
-  + 
-Installation :+**Installation :** 
 sudo apt update sudo apt update
 +
 sudo apt install ros-melodic-desktop-full sudo apt install ros-melodic-desktop-full
-  + 
-  +** ** 
-Initialisation rosdep :+ 
 +**Initialisation rosdep :** 
 sudo rosdep init sudo rosdep init
 +
 rosdep update rosdep update
-  + 
-Configuration environnement : +**Configuration environnement :** 
-echo "source /​opt/​ros/​melodic/​setup.bash" >> ​~/.bashrc+ 
 +echo "source /​opt/​ros/​melodic/​setup.bash" \&​gt;​\&​gt; ​~/.bashrc 
 source ~/.bashrc source ~/.bashrc
-  + 
-Installation des packages dépendants :+**Installation des packages dépendants :** 
 sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
-  
-  
-[Explication porvenant de : http://​wiki.ros.org/​melodic/​Installation/​Ubuntu] 
  
  
-Intégration Turtlebot3: 
  
-Création des répertoires:​ +[Explication porvenant de : [http://​wiki.ros.org/​melodic/​Installation/​Ubuntu](http://​wiki.ros.org/​melodic/​Installation/​Ubuntu)] 
-mkdir ~/catkin_ws + 
-mkdir ~/catkin_ws/src+ 
 + 
 +**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
  
-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 git clone https://​github.com/​ROBOTIS-GIT/​turtlebot3.git
  
-Installation:​ +**Installation:​**
-cd ~/catkin_ws && catkin_make+
  
-Configuration environnement:​ +cd ~/catkin\_ws &​amp;&​amp;​ catkin\_make
-Ajouter les lignes suivantes dans le fichier “~/.bashrc”:​ +
-source ~/​catkin_ws/​devel/​setup.bash +
-export TURTLEBOT3_MODEL=burger+
  
-[Explication porvenant de http://​emanual.robotis.com/​docs/​en/​platform/​turtlebot3/​simulation/​]+**Configuration environnement:**
  
 +Ajouter les lignes suivantes dans le fichier &​quot;​~/​.bashrc&​quot;:​
  
-Utilisation des codes sources pour la partie Gazebo : +source ~/​catkin\_ws/​devel/​setup.bash
  
-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”.+export TURTLEBOT3\_MODEL=burger
  
-Le fichier gazeboEntity.py contient les méthodes suivantes:+[Explication porvenant de : [http://​emanual.robotis.com/​docs/​en/​platform/​turtlebot3/​simulation/​](http://​emanual.robotis.com/​docs/​en/​platform/​turtlebot3/​simulation/​)]
  
-__init__ :  
-La méthode de construction,​ deux paramètes “model_name” et “relative_entity_name” sont nécessaires. 
-Exemple d’utilisation:​ 
-model = GazeboEntity("​turtlebot3_burger","​world"​) 
  
-pre_get_model_state :  
-Initialisation des paramètres pour utiliser le service “/​gazebo/​get_model_state”,​ ceci est appelée dans les méthodes get_position,​get_orientation,​get_linear et get_angular. 
  
-get_position : +**Utilisation des codes sources pour la partie Gazebo ​:**
-Permet de récupérer ​la position d’un objet. +
-Exemple d’utilisation: +
-model = GazeboEntity("​turtlebot3_burger","​world"​) +
-model.get_position()+
  
-get_orientation ​:  +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;​. 
-Permet de récupérer lorientation dun objet. + 
-Exemple dutilisation:​ +**Le fichier** ​ **gazeboEntity.py** ​ **contient les méthodes suivantes:** 
-model = GazeboEntity("​turtlebot3_burger"​,"world"+ 
-model.get_orientation()+- **●●**** \_\_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'orientation d'un objet. 
 + 
 +Exemple d'utilisation:​ 
 + 
 +model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;​,"world") 
 + 
 +model.get\_orientation() 
 + 
 +- **●●**** get\_linear :**
  
-get_linear :  
 Permet de récupérer la vitesse linéaire. Permet de récupérer la vitesse linéaire.
-Exemple d’utilisation:​ 
-model = GazeboEntity("​turtlebot3_burger","​world"​) 
-model.get_linear() 
  
-get_angular ​:+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. Permet de récupérer la vitesse angulaire.
-Exemple d’utilisation:​ 
-model = GazeboEntity("​turtlebot3_burger","​world"​) 
-model.get_angular() 
  
-remove_entity ​+Exemple d&#​39;​utilisation: 
 + 
 +model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) 
 + 
 +model.get\_angular() 
 + 
 +- **●●**** remove\_entity :** 
 Permet de supprimer un objet. Permet de supprimer un objet.
-Exemple d’utilisation:​ 
-model = GazeboEntity("​turtlebot3_burger","​world"​) 
-model.remove_entity() 
  
-set_model_position : +Exemple d'utilisation:​
-Permet de modifier la position d’un objet, trois paramètres les positions x,y,z sont nécessaires. +
-Exemple dutilisation:​ +
-model = GazeboEntity("​turtlebot3_burger","​world"​) +
-model.set_model_position(2,​2,​0)+
  
-set_model_orientation ​+model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;,&​quot;​world&​quot;​) 
-Permet de modifier lorientation dun objet, trois paramètres les orientations x,y,z sont nécessaires. + 
-Exemple dutilisation:​ +model.remove\_entity() 
-model = GazeboEntity("​turtlebot3_burger"​,"world"+ 
-model.set_model_orientation(0,0,-1)+- **●●**** 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'orientation d'un objet, trois paramètres les orientations x,y,z sont nécessaires. 
 + 
 +Exemple d'utilisation:​ 
 + 
 +model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;​,"world") 
 + 
 +model.set\_model\_orientation(0,0,-1) 
 + 
 +- **●●**** move\_robot :**
  
-move_robot : 
 Permet de faire avancer le turtlebot, une liste contenant une vitesse linéaire et une vitesse angulaire est nécessaire. Permet de faire avancer le turtlebot, une liste contenant une vitesse linéaire et une vitesse angulaire est nécessaire.
-Exemple dutilisation:​ + 
-model = GazeboEntity("​turtlebot3_burger"​,"world")+Exemple d'utilisation:​ 
 + 
 +model = GazeboEntity(&​quot;​turtlebot3\_burger&​quot;​,"world") 
 try: try:
- model.move_robot(list)+ 
 +        ​model.move\_robot(list) 
 except rospy.ROSInterruptException:​ except rospy.ROSInterruptException:​
- pass 
  
 +        pass
  
-Le fichier simGazebo.py contient les méthodes suivantes: 
  
-start :  + 
-Permet de démarrer une simulation.  +**Le fichier** ​ **simGazebo.py** ​ **contient les méthodes suivantes:​** 
-Exemple dutilisation:​+ 
 +- **start :** 
 + 
 +Permet de démarrer une simulation. 
 + 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.start() simulateur.start()
  
-enPause : +- **●●**** ​enPause :** 
 Permet de mettre en pause la simulation. Permet de mettre en pause la simulation.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.enPause() simulateur.enPause()
  
-resetSimulation : +- **●●**** ​resetSimulation :** 
 Permet de réinitialiser la simuation (timing, les positions des objets...) Permet de réinitialiser la simuation (timing, les positions des objets...)
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.resetSimulation() simulateur.resetSimulation()
  
-resetWorld : +- **●●**** ​resetWorld :** 
 Permet de réinitialiser le world. Permet de réinitialiser le world.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.resetWorld() simulateur.resetWorld()
  
-getListModel : +- **●●**** ​getListModel :** 
 Permet de récupérer la liste des objet dans le world. Permet de récupérer la liste des objet dans le world.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.getListModel() simulateur.getListModel()
  
-getSimTime : +- **●●**** ​getSimTime :** 
 Permet de récupérer le temps de simulation. Permet de récupérer le temps de simulation.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.getSimTime() simulateur.getSimTime()
  
-loadWorld :  +- **●●**** ​loadWorld :** 
-Permet de charger un world, une paramètre dune liste des ficher launcher est nécessaire. + 
-Exemple dutilisation:​+Permet de charger un world, une paramètre d'une liste des ficher launcher est nécessaire. 
 + 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
-list = ['/home/yao/catkin_ws/src/turtlebot3_simulations/turtlebot3_gazebo/launch/turtlebot3_stage_1.launch']+ 
 +list = ['/home/yao/catkin\_ws/src/turtlebot3\_simulations/turtlebot3\_gazebo/launch/turtlebot3\_stage\_1.launch'] 
 simulateur.loadWorld(list) simulateur.loadWorld(list)
  
-callbackAllProperties :  +- **●●**** ​callbackAllProperties :**
-Fonction callback appelé par la fonction getAllProperties.+
  
-callbackListModel :  +Fonction callback appelé par la fonction ​_getAllProperties_.
-Fonction callback appelé par la fonction ​getListModelBySuscriber.+
  
-callbackPose ​: +- **●●**** callbackListModel ​:**
-Fonction callback appelé par la fonction getAllPose.+
  
-callbackTwist : +Fonction callback appelé par la fonction _getListModelBySuscriber_. 
-Fonction callback appelé par la fonction ​getAllTwist.+ 
 +- **●●**** callbackPose :** 
 + 
 +Fonction callback appelé par la fonction _getAllPose_. 
 + 
 +- **●●**** ​callbackTwist :** 
 + 
 +Fonction callback appelé par la fonction ​_getAllTwist_. 
 + 
 +- **●●**** getAllProperties :**
  
-getAllProperties : 
 Permet de récupérer tous les properties de tous les objets de type Suscriber. Permet de récupérer tous les properties de tous les objets de type Suscriber.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.getAllProperties() simulateur.getAllProperties()
  
-getListModelBySuscriber :+- **●●**** ​getListModelBySuscriber :** 
 Permet de récupérer une liste des objets dans le world de type Suscriber. Permet de récupérer une liste des objets dans le world de type Suscriber.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.getListModelBySuscriber() simulateur.getListModelBySuscriber()
  
-getAllPose : +- **●●**** ​getAllPose :** 
 Permet de récupérer les positions et les orientations des objets dans le world de type Suscriber. Permet de récupérer les positions et les orientations des objets dans le world de type Suscriber.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
 +
 simulateur.getAllPose() simulateur.getAllPose()
  
-getAllTwist :+- **●●**** ​getAllTwist :** 
 Permet de récupérer les vitesse des objets dans le world de type Suscriber. Permet de récupérer les vitesse des objets dans le world de type Suscriber.
-Exemple dutilisation:​+ 
 +Exemple d'utilisation:​ 
 simulateur = Simulator() simulateur = Simulator()
-simulateur.getAllTwist() 
  
 +simulateur.getAllTwist()
  • simulators.txt
  • Last modified: 2019/04/25 14:08
  • (external edit)