Nœuds de lancement
Objectif : utiliser un outil de ligne de commande pour lancer plusieurs nœuds à la fois.
Niveau du didacticiel : Débutant
Durée : 5 minutes
Contenu
Arrière-plan
Dans la plupart des didacticiels d’introduction, vous avez ouvert de nouveaux terminaux pour chaque nouveau nœud que vous exécutez. Au fur et à mesure que vous créez des systèmes plus complexes avec de plus en plus de nœuds fonctionnant simultanément, l’ouverture de terminaux et la ressaisie des détails de configuration deviennent fastidieuses.
Les fichiers de lancement vous permettent de démarrer et de configurer simultanément plusieurs exécutables contenant des nœuds ROS 2.
L’exécution d’un seul fichier de lancement avec la commande ros2 launch
démarrera tout votre système - tous les nœuds et leurs configurations - en une seule fois.
Conditions préalables
Avant de commencer ces didacticiels, installez ROS 2 en suivant les instructions de la page ROS 2 Installation.
Les commandes utilisées dans ce didacticiel supposent que vous avez suivi le guide d’installation des packages binaires pour votre système d’exploitation (packages Debian pour Linux). Vous pouvez toujours suivre si vous avez construit à partir de la source, mais le chemin d’accès à vos fichiers d’installation sera probablement différent. Vous ne pourrez pas non plus utiliser la commande sudo apt install ros-<distro>-<package>
(utilisée fréquemment dans les didacticiels de niveau débutant) si vous installez à partir des sources.
Si vous utilisez Linux et que vous n’êtes pas déjà familiarisé avec le shell, ce tutoriel vous aidera.
Tâches
Exécution d’un fichier de lancement
Ouvrez un nouveau terminal et exécutez :
ros2 launch turtlesim multisim.launch.py
Cette commande exécutera le fichier de lancement suivant :
# turtlesim/launch/multisim.launch.py
from launch import LaunchDescription
import launch_ros.actions
def generate_launch_description():
return LaunchDescription([
launch_ros.actions.Node(
namespace= "turtlesim1", package='turtlesim', executable='turtlesim_node', output='screen'),
launch_ros.actions.Node(
namespace= "turtlesim2", package='turtlesim', executable='turtlesim_node', output='screen'),
])
Note
Le fichier de lancement ci-dessus est écrit en Python, mais vous pouvez également utiliser XML et YAML pour créer des fichiers de lancement. Vous pouvez voir une comparaison de ces différents formats de lancement de ROS 2 dans Utilisation de Python, XML et YAML pour les fichiers de lancement ROS 2.
Cela exécutera deux nœuds turtlesim :

Pour l’instant, ne vous inquiétez pas du contenu de ce fichier de lancement. Vous pouvez trouver plus d’informations sur le lancement de ROS 2 dans les Tutoriels de lancement de ROS 2.
(Facultatif) Contrôlez les nœuds Turtlesim
Maintenant que ces nœuds fonctionnent, vous pouvez les contrôler comme n’importe quel autre nœud ROS 2. Par exemple, vous pouvez faire rouler les tortues dans des directions opposées en ouvrant deux terminaux supplémentaires et en exécutant les commandes suivantes :
Dans la seconde borne :
ros2 topic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
Dans le troisième terminal :
ros2 topic pub /turtlesim2/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: -1.8}}"
Après avoir exécuté ces commandes, vous devriez voir quelque chose comme ceci :

Résumé
L’importance de ce que vous avez fait jusqu’à présent est que vous avez exécuté deux nœuds turtlesim avec une seule commande. Une fois que vous aurez appris à écrire vos propres fichiers de lancement, vous pourrez exécuter plusieurs nœuds - et configurer leur configuration - de la même manière, avec la commande ros2 launch
.
Pour plus de didacticiels sur les fichiers de lancement de ROS 2, consultez la page principale du didacticiel sur le fichier de lancement.
Prochaines étapes
Dans le prochain didacticiel, Enregistrement et lecture de données, vous découvrirez un autre outil utile, ros2bag
.