Commandes ROS courantes

Dans un système robotique, il peut y avoir de quelques à plusieurs dizaines de nœuds en cours d'exécution simultanément. Chaque nœud possède un nom unique et ils communiquent via des topics, services, messages, paramètres, etc. Un défi courant se pose : lorsque vous devez personnaliser un nœud pour communiquer avec un autre nœud existant, comment récupérer le topic et le format de message utilisés par cet autre nœud ?

ROS fournit un ensemble d'outils en ligne de commande utiles pour obtenir diverses informations sur les différents nœuds. Les commandes les plus couramment utilisées sont les suivantes :

  • rosnode : Gérer les nœuds
  • rostopic : Gérer les topics
  • rosservice : Gérer les services
  • rosmsg : Gérer les types de message (msg)
  • rossrv : Gérer les types de message de service (srv)
  • rosparam : Gérer les paramètres

Ces commandes sont dynamiques, contrairement aux commandes statiques du système de fichiers. Une fois le programme ROS démarré, ces commandes vous permettent d'obtenir dynamiquement des informations sur les nœuds ou les paramètres en cours d'exécution.

rosnode

rosnode est utilisé pour récupérer des informations sur les nœuds ROS.

  • rosnode ping : Tester l'état de connectivité avec un nœud
  • rosnode list : Lister tous les nœuds actifs
  • rosnode info : Afficher des informations sur un nœud
  • rosnode machine : Lister les nœuds s'exécutant sur une machine spécifique
  • rosnode kill : Arrêter un nœud
  • rosnode cleanup : Nettoyer les nœuds inaccessibles

rostopic

rostopic inclut des outils en ligne de commande pour afficher des informations de débogage sur les topics ROS, comme les publishers, subscribers, la fréquence de publication et les messages ROS. Il inclut également une bibliothèque Python expérimentale pour récupérer dynamiquement des informations sur les topics et interagir avec eux.

  • rostopic bw : Afficher l'utilisation de la bande passante d'un topic
  • rostopic delay : Afficher le délai d'un topic avec en-tête
  • rostopic echo : Imprimer les messages à l'écran
  • rostopic find : Rechercher les topics par type
  • rostopic hz : Afficher la fréquence de publication d'un topic
  • rostopic info : Afficher des informations sur un topic
  • rostopic list : Lister tous les topics actifs
  • rostopic pub : Publier des données sur un topic
  • rostopic type : Afficher le type d'un topic

Exemples :

  • rostopic list(-v) : Affiche les noms des topics en cours d'exécution (avec -v pour des informations détaillées comme le nombre de publishers et de subscribers).
  • rostopic pub /topic_name msg_type "msg_content" : Publier un message sur un topic.
  • rostopic echo /topic_name : Récupérer et afficher le message actuellement publié sur un topic.
  • rostopic info /topic_name : Obtenir des informations détaillées sur un topic, y compris le type de message, et les informations sur les publishers et subscribers.
  • rostopic hz /topic_name : Afficher la fréquence de publication d'un topic.
  • rostopic bw /topic_name : Afficher l'utilisation de la bande passante d'un topic.

2.4.3 rosmsg

rosmsg est un outil en ligne de commande pour afficher des informations sur les types de messages ROS.

  • rosmsg show : Afficher la description d'un message
  • rosmsg info : Afficher des informations détaillées sur un message
  • rosmsg list : Lister tous les types de messages
  • rosmsg md5 : Afficher la somme de contrôle MD5 d'un message
  • rosmsg package : Lister tous les messages d'un paquet
  • rosmsg packages : Lister tous les paquets contenant des messages

Exemples :

  • rosmsg list : Lister tous les types de messages dans l'environnement ROS actuel.
  • rosmsg packages : Lister tous les paquets contenant des types de messages.
  • rosmsg package <package_name> : Lister tous les messages d'un paquet spécifique.
  • rosmsg show <msg_name> : Afficher la description d'un message spécifique.
  • rosmsg info <msg_name> : Similaire à rosmsg show, fournit des informations sur un type de message.
  • rosmsg md5 <msg_name> : Générer la somme MD5 d'un message pour les vérifications d'intégrité.

2.4.4 rosservice

rosservice inclut des outils en ligne de commande pour lister et interroger les services ROS.

  • rosservice args : Afficher les arguments requis par un service
  • rosservice call : Appeler un service avec les arguments fournis
  • rosservice find : Rechercher les services par type
  • rosservice info : Afficher des informations sur un service
  • rosservice list : Lister tous les services actifs
  • rosservice type : Afficher le type d'un service
  • rosservice uri : Afficher l'URI ROSRPC d'un service

Exemples :

  • rosservice list : Lister tous les services actifs.
  • rosservice args /service_name : Afficher les arguments requis par un service spécifique.
  • rosservice call /service_name "args" : Appeler un service avec les arguments fournis.
  • rosservice find <service_type> : Rechercher des services par leur type de message.
  • rosservice info /service_name : Obtenir des informations détaillées sur un service.
  • rosservice type /service_name : Obtenir le type d'un service.
  • rosservice uri /service_name : Obtenir l'URI d'un service.

2.4.5 rossrv

rossrv est un outil en ligne de commande pour afficher des informations sur les types de service ROS. Sa syntaxe est très similaire à celle de rosmsg.

  • rossrv show : Afficher la description d'un message de service
  • rossrv info : Afficher des informations détaillées sur un message de service
  • rossrv list : Lister tous les types de messages de service
  • rossrv md5 : Afficher la somme MD5 d'un message de service
  • rossrv package : Lister tous les messages de service d'un paquet
  • rossrv packages : Lister tous les paquets contenant des messages de service

Exemples :

  • rossrv list : Lister tous les types de messages de service dans l'environnement ROS actuel.
  • rossrv packages : Lister tous les paquets contenant des messages de service.
  • rossrv package <package_name> : Lister tous les messages de service d'un paquet spécifique.
  • rossrv show <srv_name> : Afficher la description d'un message de service spécifique.
  • rossrv info <srv_name> : Similaire à rossrv show, fournit des informations sur un type de message de service.
  • rossrv md5 <srv_name> : Générer la somme MD5 d'un message de service pour les vérifications d'intégrité.

2.4.6 rosparam

rosparam inclut des outils en ligne de commande pour obtenir et définir des paramètres ROS sur le serveur de paramètres, en utilisant des fichiers encodés en YAML.

  • rosparam set : Définir un paramètre
  • rosparam get : Obtenir un paramètre
  • rosparam load : Charger des paramètres depuis un fichier externe
  • rosparam dump : Exporter des paramètres dans un fichier externe
  • rosparam delete : Supprimer un paramètre
  • rosparam list : Lister tous les paramètres

Exemples :

  • rosparam list : Lister tous les paramètres sur le serveur de paramètres.
  • rosparam set <param_name> <value> : Définir un paramètre avec une valeur spécifique.
  • rosparam get <param_name> : Obtenir la valeur d'un paramètre spécifique.
  • rosparam delete <param_name> : Supprimer un paramètre spécifique.
  • rosparam load <file_name.yaml> : Charger des paramètres depuis un fichier YAML.
  • rosparam dump <file_name.yaml> : Exporter les paramètres actuels vers un fichier YAML.

Ces commandes vous permettent d'interagir dynamiquement avec les différents composants de l'écosystème ROS, offrant un moyen puissant de gérer et de surveiller votre système robotique basé sur ROS.