Rédaction d'un fichier de type launch


On crée un dossier qui porte le nom "launch" dans notre paquet que nous avons détaillé dans la section La création de l'environnement de travail sous ROS, l'emplacement de ce fichier de type launch est /catkin_ws/src/<Nom_du_paquet >/launch.

Ce dossier contiendra les fichiers de type launch qui sous "file.launch", ces fichiers permettront de lancer plusieurs nœuds au même temps.

L'utilité de cette méthode sous ROS est d'éviter d'utiliser plusieurs terminaux pour lancer plusieurs nœuds, donc aussi de gagner du temps.

Voilà un exemple de ce type de fichier qu'on détaillera dans la suite :

Tous les fichier launch commencent par le terme "<launch>" et se terminent par "</launch>".

<param name="/use_sime_time" value="true"/> 

Cette ligne permet d’indiquer au maître d'utiliser le topic publié "/clock" pour le l'horloge de ROS.

<node pkg="joy" type="joy_node" name="joy_node" output="screen"> 
</node> 

Cette notation permet la déclaration du nœud "joy_node" qui appartiens au paquet "joy", comme vous voyez dans ce fichier plusieurs nœuds sont déclarés.

Voilà la notation générale de la déclaration d'un nœud :

<node pkg="Nom du paquet où se trouve le dossier launch" type="le nom du nœud" name="on choisira un nom pour le nœud" output="screen"> 
</node> 

Un autre avantage de ce type de fichier est qu'on peut lancer même les noeuds créés dans un script qu'on trouve généralement dans le dossier /catkin_ws/src/<Nom_du_paquet >/scripts. Voilà la déclaration de ce type de nœud :

<node pkg="MonPaquet" type="joybase.py" name="joybase_node" output="screen">
</node> 

Ce nœud qu'on a nommé "joybase_node" est décrit dans le scripts "joybase.py" dans le dossier scripts qui appartiens au package "MonPaquet".

Voilà un autre exemple, où on lance le noeud "init_tete_node" décri dans le script "jointes.py" qui est situé dans le package "MonPaquet" :

<node pkg="MonPaquet" type="jointes.py" name="init_tete_node" output="screen"> 
</node> 

On peut aussi déclarer un autre fichier de type launch dans un autre de même type, la ligne suivante permet de déclarer le fichier laserscan2.launch qui appartiens au paquet "MonPaquet" et plus précédemment dans le dossier "launch" :

 <include file="$(find MonPaquet)/launch/laserscan2.launch" /> 

La balise <remap> vous permet de transmettre des arguments de remappage de nom au nœud ROS que vous lancez de manière plus structurée que de définir directement l'attribut args d'un <nœud>. La balise <remap> s'applique à toutes les déclarations suivantes de son étendue (<launch>, <node> ou <group>).

<remap from="/scan" to="/laser/scan"/>

Dans cette ligne, on reçoit un nœud qui indique qu'il s'abonne au topic "/scan", mais vous ne disposez que d'un nœud qui publie le topic "/laser/scan". Ils sont du même type et vous voulez diriger votre topic "/laser/scan" vers le nouveau nœud qui veut "/scan".

Cette méthode vous permet d'éviter d'écrire un script permettant s'abonner ou de publier sur un topic.

Dans le cas où un nœud possède un ou plusieurs paramètres qu'on souhaite configurer (comme dans le cas du nœud "slam_gmapping"), on utilise la notation suivante :

<param name="map_update_interval" value="0.1" />  

Ici, on configure le paramètre "map_update_interval" du nœud "slam_gmapping", on le met à "0.1".

La même chose pour les paramètres suivants :

<param name="minimumScore"        value="100"/>
<param name="linearUpdate"       value="0.1" />
<param name="angularUpdate"       value="0.1" />
<param name="temporalUpdate"      value="0.05" />      
<param name="xmin"                value="-5." />              
<param name="ymin"                value="-5." />
<param name="xmax"                value="5." />
<param name="ymax"                value="5." />
<param name="particles"           value="100" />          
<param name="maxRange"            value="3.0" />          
<param name="maxUrange"           value="3.0" />          
<param name="delta"               value="0.02" />             
<param name="base_frame"          value="base_footprint" />  

le terme "</node>" détermine la fin de la déclaration d'un nœud.

Une fois le fichier "launch" est rédigé, on pourra l’exécuter, en lançant la ligne de commande suivante depuis un terminal :

 roslaunch <Nom_du_paquet> file.launch