1 – Les Bases de ROS

Introducation :

ROS, permet de créer facilement des executables que n’appel des neuds. Les neuds communiques à travers des messages.

  1. Topic
  2. Service
  3. 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
${catkin
LIBRARIES} )

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