Introduction à ROS
BE INSA
Olivier STASSE,
DR-2, CNRS,
Gepetto,
LAAS CNRS
AIP, Toulouse
Nov 2017
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Table des matières
1 Panorama
2 Organisation des programmes sous ROS
3 Communications ROS
4 Programmer avec ROS
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple : Asservissement visuel
Visual
servoing
control
3d-sensor v KobukiNodelet
I
w
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple : Asservissement visuel - Topics
/camera/image color
Visual /mobilebase/command/velocity
servoing
control v
I
3d-sensor w KobukiNodelet
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple : Asservissement visuel - Topics - Params
/camera/image color
Visual /mobilebase/command/velocity
servoing
control v
I
3d-sensor w KobukiNodelet
(Kp , Kd )
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple : Asservissement visuel - Software bus
rostopic rosparam
Software Bus (roscomm/rosmaster) - Handle rosnodes
Visual
servoing
control
3d-sensor KobukiNodelet
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Table des matières
1 Panorama
Motivations générales
ROS - Introduction
Exemple
Installation ROS Indigo
Configuration ROS Indigo
Navigation dans ROS Indigo
Création d’un paquet pour ROS Indigo
2 Organisation des programmes sous ROS
3 Communications ROS
Olivier Stasse LAAS-CNRS, Toulouse, France
4 Programmer avec ROS
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Application robotique
Traitement
Représentation du signal
de l’environnement
Planification
Environnement
de tâches
Planification
de mouvement
Contrôle
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Application robotique - Outils
OpenCV - PCL
OctoMap Traitement
Représentation du signal
de l’environnement
Planification
Environnement
de tâches
SMACH
Planification
de mouvement
MovIt Contrôle
KLD - iTask - SoT
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Application robotique distribuée
PC - Vision
PC - Mapping Traitement
Représentation du signal
de l’environnement
Planification
Bus logiciel Environnement
de tâches
PC - Task Planning
Planification
de mouvement
PC - Motion Planning Contrôle
PC - Contrôle
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations
Passage à l’échelle
La communauté robotique doit collaborer pour créer des systèmes
robotiques de qualité à l’exemple de l’informatique et la physique.
ROS est l’outil qui a permis ce passage.
Plomberie Outils Capacités Ecosystème
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Plomberie
Middleware
Publication/souscription à la transmission de messages
anonymes (Message Passing)
Enregistrer et rejouer des messages
Requêtes/réponses à des remote procedure calls
Système de paramètres distribués
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Outils
rviz Visualisateur graphique 3D.
rosbag Enregistrement et visualisation des données.
rxplot Affichage en ligne.
rxgraph Visualisation du système.
rqt Interface graphique de contrôle incrémentale
catkin Système de compilation et de gestion de paquets.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Outils
rviz Visualisateur graphique 3D.
rosbag Enregistrement et visualisation des données.
rxplot Affichage en ligne.
rxgraph Visualisation du système.
rqt Interface graphique de contrôle incrémentale
catkin Système de compilation et de gestion de paquets.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Outils
rviz Visualisateur graphique 3D.
rosbag Enregistrement et visualisation des données.
rxplot Affichage en ligne.
rxgraph Visualisation du système.
rqt Interface graphique de contrôle incrémentale
catkin Système de compilation et de gestion de paquets.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Outils
rviz Visualisateur graphique 3D.
rosbag Enregistrement et visualisation des données.
rxplot Affichage en ligne.
rxgraph Visualisation du système.
rqt Interface graphique de contrôle incrémentale
catkin Système de compilation et de gestion de paquets.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Outils
rviz Visualisateur graphique 3D.
rosbag Enregistrement et visualisation des données.
rxplot Affichage en ligne.
rxgraph Visualisation du système.
rqt Interface graphique de contrôle incrémentale
catkin Système de compilation et de gestion de paquets.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Ecosystème
Définitions de messages standards pour les robots
Librairie pour la géométrie des robots
Language de description des robots
Remote Procedure Calls préemptable
Diagnostiques
Estimation de pose
Localisation
Cartographie
Navigation
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Ecosystème
Systèmes d’exploitation Supporté :
Robots
Packages Expérimentaux :
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Motivations générales
Motivations - Ecosystème
Systèmes d’exploitation
01/05/2014 : 111 Robots supportés sur [Link]
Robots 25/04/2017 : 27 Robots supportés sur [Link]
01/05/2014 : 2048 Packages supportés sur [Link]
Packages 25/04/2017 : 1400 Packages supportés sur [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
ROS - Introduction
ROS : Bref historique
2008 Démarrage de ROS par Willow Garage
2010 - Janvier ROS 1.0
2010 - Mars Box Turtle
2010 - Aout C Turtle
2011 - Mars Diamondback
2011 - Aout Electric Emys
2012 - Avril Fuerte
2012 - Décembre Groovy Galapagos
2013 - Février Open Source Robotics Fundation poursuit la gestion de
ROS
2013 - Aout Willow Garage est absorbé par Suitable Technologies
2013 - Aout Le support de PR-2 est repris par Clearpath Robotics
2013 - Septembre Hydro Medusa (prévu)
2014 - Juillet Indigo Igloo (EOL - Avril 2019)
2015 - May Jade Turtle (EOL - Mai 2017)
2016 - May Kinetic Kame (EOL - Mai 2021)
2017 - May Lunar Loggerhead
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
ROS - Introduction
ROS : Normalisation des releases
Kinetic Kame (Mai 2016 - Mai 2021)
Ubuntu Wily (15.10)
Ubuntu Xenial (16.04 LTS)
C++11, Boost 1.55, Lisp SBCL 1.2.4, Python 2.7, CMake
3.0.2
Ogre3D 1.9.x, Gazebo 7, PCL 1.7.x, OpenCV 3.1.x, Qt 5.3.x,
PyQt5
Indigo Igloo (May 2014)
Ubuntu Saucy (13.10)
Ubuntu Trusty (14.04 LTS)
C++03, Boost 1.53, Lisp SBCL 1.0.x, Python 2.7, (Test
additionels contre Python 3.3 recommendés) CMake 2.8.11
Lien vers la ROS Enhancement Proposal (REPs) :
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple
Exemple : Asservissement visuel
Visual
servoing
control
3d-sensor v KobukiNodelet
I
w
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple
Exemple : Asservissement visuel - Topics
/camera/image color
Visual /mobilebase/command/velocity
servoing
control v
I
3d-sensor w KobukiNodelet
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple
Exemple : Asservissement visuel - Topics - Params
/camera/image color
Visual /mobilebase/command/velocity
servoing
control v
I
3d-sensor w KobukiNodelet
(Kp , Kd )
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Exemple
Exemple : Asservissement visuel - Software bus
rostopic rosparam
Software Bus (roscomm/rosmaster) - Handle rosnodes
Visual
servoing
control
3d-sensor KobukiNodelet
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Installation ROS Indigo
Installation de ROS - Indigo - Ubuntu 14.04.4 LTS
1 - Spécifications des [Link]
sudo sh -c ’echo ”deb http ://[Link]/ros/ubuntu
precise main” > /etc/apt/[Link].d/[Link]’
2 - Spécifications des clefs
wget http ://[Link]/[Link] -O - | sudo apt-key
add -
3 - Mise à jour des listes de paquets
sudo apt-get update
4 - Installation des paquets
sudo apt-get install ros-indigo-desktop-full
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Configuration ROS Indigo
Configuration - Indigo - Ubuntu 14.04.4 LTS
1 - Spécifications de ROS ROOT et ROS PACKAGE PATH
env | grep ROS
2 - Ligne à ajouter au fichier .bashrc
source /opt/ros/indigo/[Link]
3 - Création de l’espace catkin
mkdir -p ˜/catkin ws/src
cd ˜/catkin ws/src
catkin init workspace
Tutorial Installing and Configuring Your ROS Environment :
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Configuration ROS Indigo
Configuration - Indigo - Ubuntu 14.04.4 LTS
4 - Ligne à ajouter au fichier .bashrc
source $HOME/catkin ws/devel/[Link]
Tutorial Installing and Configuring Your ROS Environment :
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Configuration ROS Indigo
Configuration - Indigo - Ubuntu 14.04.4 LTS
Votre distribution ROS est indiquée par ROS DISTRO
ROS DISTRO=indigo
L’annuaire de votre application est spécifié par
ROS MASTER URI
ROS MASTER URI=http ://localhost :11311
ROS MASTER URI=http ://hostname :port number
hostname dans ROS MASTER URI indique l’ordinateur où
roscore est lancé. port number indique le port où roscore
attend les connections.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Navigation dans ROS Indigo
ROS Filesystem - Navigation - Indigo
1 - rospack : Donne les informations sur les paquets (exemple
roscpp)
rospack find roscpp
2 - roscd : Bascule le répertoire directement sur le paquet
roscd roscpp
roscd roscpp/cmake
roscd log
3 - rosls : Affiche le contenu du répertoire d’un paquet
rosls roscpp tutorials
Tutorial Navigation dans le système de fichiers
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création d’un paquet pour ROS Indigo
Création d’un paquet ROS - Définition - Indigo
Le paquet doit contenir un fichier [Link] qui suit le
format catkin. Le fichier [Link] contient des meta
informations sur le paquet.
Il n’y a qu’un seul paquet par répertoire.
Les paquets imbriqués, et les paquets dans un même
répertoire sont interdits.
Le paquet le plus simple est :
mon paquet/
[Link]
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Table des matières
1 Panorama
2 Organisation des programmes sous ROS
Création de paquets
Définitions
3 Communications ROS
4 Programmer avec ROS
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Paquets dans un workspace catkin - (1/9) - Indigo
work space folder
src
[Link]
package 1
[Link]
[Link]
...
package n
[Link]
[Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Paquets dans un workspace catkin - (2/9) - Indigo
1 - Aller dans le répertoire src du paquet
cd ˜/catkin ws/src
Pour créer un nouveau package, et ses dépendences :
catkin create pkg
catkin create pkg beginner tutorials std msgs rospy roscpp
catkin create pkg [package name] [depend1] [depend2] [de-
pend3]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Paquets dans un workspace catkin - (3/9) - Indigo
2 - Dépendences du premier ordre
rospack depends1 beginner tutorials
Dépendences standards : std msgs rospy roscpp
3 - Les dépendences sont stockées dans le fichier [Link]
roscd beginner tutorials
cat [Link]
<package>
...
<buildtool depend>catkin</buildtool depend>
<build depend>roscpp</build depend>
...
</package>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Paquets dans un workspace catkin - (4/9) - Indigo
4 - Dépendences indirectes d’un paquet
rospack depends beginner tutorials
<package>
cpp common
rostime
roscpp traits
roscpp serialization
...
roslib
rospy
</package>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Personnalisation du paquet - (5/9) - Indigo
5 - Description du paquet
<description>The beginner tutorials package</description>
<package>
<!- One maintainer tag required, multiple allowed, one person per tag
->
<!- Exemple : ->
<!- <maintainer email=”[Link]@[Link]”>Jane
Doe</maintainer> ->
<maintainer email=”user@[Link]”>user</maintainer>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Personnalisation du paquet - (6/9) - Indigo
7 - License du paquet
<!- One license tag required, multiple allowed, one license
per tag ->
<!- Commonly used license strings : ->
<!- BSD, MIT, Boost Software License, GPLv2, GPLv3, LG-
PLv2.1,LGPLv3 ->
<license>TODO</license>
La license souvent utilisée sous ROS est la BSD
<license>BSD</license>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Personnalisation du paquet - (7/9) - Indigo
8 - Spécification des dépendences
<!- The * depend tags are used to specify dependencies ->
<!- Dependencies can be catkin packages or system dependencies ->
<!- Exemples : ->
<!- Use build depend for packages you need at compile time : ->
<!- <build depend>genmsg</build depend> ->
<!- Use buildtool depend for build tool packages : ->
<!- <buildtool depend>catkin</buildtool depend> ->
<!- Use run depend for packages you need at runtime : ->
<!- <run depend>python-yaml</run depend> ->
<!- Use test depend for packages you need only for testing : ->
<!- <test depend>gtest</test depend> ->
<buildtool depend>catkin</buildtool depend>
<build depend>roscpp</build depend>
<build depend>rospy</build depend>
<build depend>std msgs</build depend>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Personnalisation du paquet - (8/9) - Indigo
9 - Ajout de la dépendence à l’exécution :
<buildtool depend>catkin</buildtool depend>
<build depend>roscpp</build depend>
<build depend>rospy</build depend>
<build depend>std msgs</build depend>
<run depend>roscpp</run depend>
<run depend>rospy</run depend>
<run depend>std msgs</run depend>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Personnalisation du paquet - (9/9) - Indigo
10 - Fichier [Link] final
< ?xml version=”1.0” ?>
<package>
<name>beginner tutorials</name>
<version>0.1.0</version>
<description>The beginner tutorials package</description>
<maintainer email=”you@[Link]”>Your Name</maintainer>
<license>BSD</license>
<url type=”website”>http ://[Link]/beginner tutorials</url>
<author email=”you@[Link]”>Jane Doe</author>
<buildtool depend>catkin</buildtool depend>
<build depend>roscpp</build depend>
<build depend>rospy</build depend>
<build depend>std msgs</build depend>
<run depend>roscpp</run depend>
<run depend>rospy</run depend>
<run depend>std msgs</run depend>
</package>
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Création de paquets
Compilation des paquets Indigo
La compilation de tous les paquets s’effectue avec une seule
commande.
Cette commande doit s’effectuer dans le répertoire du works-
pace.
Le répertoire build du workspace stocke les objets compilés
intermédiaires.
Le répertoire devel du workspace stocke les exécutables et les
librairies compilées.
catkin make
catkin make install
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Définitions
Graphe d’applications avec ROS
Nodes : Un node est un exécutable qui utilise ROS pour
communiquer avec d’autres noeuds.
Messages : Types de données ROS utilisés pour souscrire ou publié sur
un topic.
Topics : Les nodes peuvent publier des messages sur un topic aussi
bien que souscrire à un topic pour recevoir des messages.
Master : Nom du service pour ROS (i.e. aide les noeuds à se trouver
mutuellement).
Paramètres : Informations très peu dynamiques qui doivent être partagés
dans l’application.
rosout : Equivalent de stdout/stderr.
roscore : Master+rosout+parameter server (serveur de paramètres,
introduit plus tard).
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Définitions
Définitions - Node
Un fichier éxecutable dans un paquet ROS.
Les noeuds ROS utilisent une librairie client pour
communiquer avec les autres noeuds.
Les noeuds peuvent publier ou souscrire à des topics.
Les noeuds peuvent fournir ou utiliser un service.
Les librairies client sont :
rospy pour python.
roscpp pour C++.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Table des matières
1 Panorama
2 Organisation des programmes sous ROS
3 Communications ROS
roscore
rosrun
rostopic
roswtf
rqt console
roslaunch
rosed
Olivier Stasse
rosbag
LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
roscore
Le système des Name services
Pour pouvoir localiser et interagir entre les nodes il faut un
annuaire.
C’est le rôle de roscore.
Il doit être lancé systématiquement mais une seule fois.
Si roscore ne se lance pas, il faut :
Vérifier la connection réseau.
Si roscore ne s’initialise pas et évoque un problème de
droits, il faut vérifier les droits sur le répertoire .ros
Tutorial Understanding ROS Nodes : [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
roscore
Le système des Name services
Pour obtenir la liste des nodes actifs :
rosnode list
Pour obtenir des informations sur un node :
rosnode info /rosout
Tutorial Understanding ROS Nodes : [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rosrun
Utilisation de rosrun
Pour pouvoir lancer un fichier exécutable/node d’un paquet
rosrun [package name][node name]
Par exemple pour lancer turtlesim :
rosrun turtlesim turtlesim node
Pour renommer des arguments (utiliser rosnode list pour
vérifier) :
rosrun turtlesim turtlesim node name :=my turtle
Pour tester si le node est actif
rosnode ping my turtle
Tutorial Understanding ROS Nodes : [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rosrun
Comprendre les topics - Préparation
Pour démarrer turtle sim et turtle teleop key
rosrun turtlesim turtlesim node
rosrun turtlesim turtle teleop key
Démarrer la visualization du graphe de l’application :
rosrun rqt graph rqt graph
Démarrer le graphe de l’affichage des topics :
rosrun rqt plot rqt plot
Tutorial Understanding ROS Topics : [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rostopic
Comprendre les topics - rostopic
Les topics sont des données publiées par des noeuds, et au-
quelles les noeuds souscrivent.
L’exécutable permettant d’avoir des informations sur les to-
pics est rostopic.
rostopic bw display bandwith used by topic
rostopic echo print messages to screen
rostopic hz display publishing rate of topic
rostopic list print information about active topics
rostopic pub publish data to topic
rostopic type print topic type
Tutorial Understanding ROS Topics : [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
roswtf
Vérifier son installation ros - roswtf
Ce programme vérifie l’installation de ROS et analyse les
problèmes.
Effectue le test suivant le répertoire.
Vérifie la cohérence de l’installation : variables
d’environnements, paquets installés.
Analyse le graphe en cours d’exécution.
Tutorial Getting started with roswtf :
[Link] ;
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rqt console
rqt - rqt console
rqt est une interface d’affichage non 3D qui se peuple
avec des plugins. Elle permet de construire une interface
de contrôle incrémentalement. L’exécutable permettant
d’afficher les messages des noeuds de façon centralisé est
rqt console.
rosrun rqt console rqt console
rosrun rqt logger level rqt logger level
Tutorial Using rqt console et roslaunch [Link]
UsingRqtconsoleRoslaunch
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
roslaunch
Lancer plusieurs noeuds - roslaunch
roslaunch lit un fichier xml qui contient tous les paramètres
pour lancer une application distribuée ROS.
roslaunch [package] [[Link]]
Exemple :
roscd beginner tutorials
roslaunch beginner tutorials [Link]
Tutorial Using rqt console et roslaunch [Link]
UsingRqtconsoleRoslaunch
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rosed
Spécifier l’éditeur pour ROS - rosed
roslaunch permet d’éditer un fichier directement par le nom
du paquet et non par le chemin entier. Il inclut la complétion
par <Tab>.
rosed [package] [filename]
Exemple :
rosed roscpp [Link]
L’éditeur utilisé est spécifié par la variable d’environnement
EDITOR
export EDITOR=’emacs’
Tutorial Using rosed to edit files in ROS [Link]
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
rosbag
Enregistrer des données - rosbag
rosbag permet d’enregistrer et de rejouer des données sur
votre application.
Pour enregistrer un sac de données :
rosbag record -a
rosbag record -O subset /turtle1/cmd vel /turtle1/pose
Le nom du fichier démarre avec l’année, la date et le temps
et le suffixe .bag
Tutorial Recording and play back data [Link]
20playing%20back%20data
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Table des matières
1 Panorama
2 Organisation des programmes sous ROS
3 Communications ROS
4 Programmer avec ROS
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS
Panorama Organisation des programmes sous ROS Communications ROS Programmer avec ROS
Tutorials couverts par cette partie
Création de fichiers ROS msg and srv
Ecrire un simple souscripteur et publieur (C++)
Ecrire un simple souscripteur et publieur (Python)
Ecrire un simple service et un client (C++)
Ecrire un simple service et un client (Python)
Faire fonctionner ensemble le client simple et le service simple.
Olivier Stasse LAAS-CNRS, Toulouse, France
Introduction ROS