This is an old revision of the document!


Simulateur Gazebo

Prérequis :

Environnement Linux : Ubuntu 18.04

Installation du ROS Melodic :

Modification du "sources.list":

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 :

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 "source /opt/ros/melodic/setup.bash" \>\> ~/.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 && catkin\_make Configuration environnement: 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/](http://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/)] 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, 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 : Permet de récupérer la position d'un objet. Exemple d'utilisation: model = GazeboEntity("turtlebot3\_burger","world") model.get\_position() - ●● get\_orientation : Permet de récupérer l'orientation d'un objet. Exemple d'utilisation: model = GazeboEntity("turtlebot3\_burger","world") model.get\_orientation() - ●● get\_linear : Permet de récupérer la vitesse linéaire. Exemple d'utilisation: model = GazeboEntity("turtlebot3\_burger","world") model.get\_linear() - ●● get\_angular : Permet de récupérer la vitesse angulaire. Exemple d'utilisation: model = GazeboEntity("turtlebot3\_burger","world") model.get\_angular() - ●● remove\_entity : Permet de supprimer un objet. Exemple d'utilisation: model = GazeboEntity("turtlebot3\_burger","world") 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("turtlebot3\_burger","world") 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("turtlebot3\_burger","world") 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'utilisation: model = GazeboEntity("turtlebot3\_burger","world") 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 = ['/home/yao/catkin\_ws/src/turtlebot3\_simulations/turtlebot3\_gazebo/launch/turtlebot3\_stage\_1.launch'] 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()

  • simulators.1549976779.txt.gz
  • Last modified: 2019/04/25 14:08
  • (external edit)