Introducation :
ROS, permet de créer facilement des executables que n’appel des neuds. Les neuds communiques à travers des messages.
- Topic
- Service
- Action
Les packages
structure d’un package :
/pkg_name/msg/ : fichiers des message
/srv/ : fichiers des massage srv
/launch/ : le(s) fichier(s) pour lancer les neud à travers la commande roslaunch
/src/ : le code souce des neud
/…
Création d’un package
La creation de package se fait dans le dossier src du workspace:
roscd && cd ..
cd src
catkin_create_pkg nom_package les_dependances ...
Forcer ros a prendre en compte le nouveau package crée :
rospack profile
Les neuds (NODES)
Pour consulter la liste des neuds :
rosnode list
La commande suivante affichera des informations sur toutes les connexions de notre nœud.
rosnode info /SimpleNode
Compilation
ROS utilise CMAKE Chaque package est doté d’un fichier CMakeLists.txt
add_executable(simple src/simple.cpp)
add_dependencies(simple ${simple_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
arget_link_libraries(simple
${catkin_LIBRARIES}
)
addexecutable(simple src/simple.cpp)
Cette ligne génère un exécutable à partir du fichier simple.cpp, qui se trouve dans le dossier src de votre paquet. Cet exécutable sera placé par défaut dans le répertoire de packages de votre espace de développement, qui se trouve par défaut dans ~/catkinws/devel/lib/.
adddependencies(simple ${simpleEXPORTEDTARGETS} ${catkinEXPORTEDTARGETS})
Cette ligne ajoute toutes les dépendances cibles de cmake de l’exécutable.
targetlinklibraries(simple
${catkinLIBRARIES} )
Cette ligne spécifie les bibliothèques à utiliser pour lier une cible donnée. Dans ce cas, cela signifie que vous devez utiliser les bibliothèques Catkin pour créer un lien vers l’exécutable que vous avez créé.
Pour compiler il faut revenir à la racine du workspace et lancer la commande
catekine_make
# cette commande recompile tout les packages à la fois pour compiler un seul package à la fois :
catkin_make --only-pkg-with-deps my_package
Les launchers
Les launchers doivent se trouver dans le dossier launch du package :
format du fichier
<launch>
<!-- My Package launch file -->
<node pkg="my_package" type="simple" name="SimpleNode" output="screen">
</node>
</launch>
pkg = nom du package
type = nom de l’executable, le même spécifié dans add_executable du CMakeLists.txt
name = le nom du node une fois lancé (le nom sera visible dans la liste rosnode list)
pour lancer un launcher
roslaunch my_package my_package_launch_file.launch
serveur de paramètres
Un serveur de paramètres est un dictionnaire que ROS utilise pour stocker des paramètres. Ces paramètres peuvent être utilisés par les nœuds lors de l’exécution et sont normalement utilisés pour les données statiques, telles que les paramètres de configuration.
Pour obtenir une liste de ces paramètres:
rosparam list
Et pour définir une valeur sur un paramètre, vous pouvez taper:
rosparam get <parameter_name>
Et pour définir une valeur sur un paramètre, vous pouvez taper:
rosparam set <parameter_name> <value>
Roscore
roscore est le processus principal qui gère l’ensemble du système ROS. Il faut toujours avoir un roscore en marche pour pouvoir utiliser ROS. La commande qui lance un roscore est la suivante:
roscore
Variables d’environnement
ROS utilise un ensemble de variables d’environnement système Linux pour fonctionner correctement. Pour vérifier :
export | grep ROS