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œudrosnode list: Lister tous les nœuds actifsrosnode info: Afficher des informations sur un nœudrosnode machine: Lister les nœuds s'exécutant sur une machine spécifiquerosnode kill: Arrêter un nœudrosnode 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 topicrostopic delay: Afficher le délai d'un topic avec en-têterostopic echo: Imprimer les messages à l'écranrostopic find: Rechercher les topics par typerostopic hz: Afficher la fréquence de publication d'un topicrostopic info: Afficher des informations sur un topicrostopic list: Lister tous les topics actifsrostopic pub: Publier des données sur un topicrostopic type: Afficher le type d'un topic
Exemples :
rostopic list(-v): Affiche les noms des topics en cours d'exécution (avec-vpour 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 messagerosmsg info: Afficher des informations détaillées sur un messagerosmsg list: Lister tous les types de messagesrosmsg md5: Afficher la somme de contrôle MD5 d'un messagerosmsg package: Lister tous les messages d'un paquetrosmsg 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 servicerosservice call: Appeler un service avec les arguments fournisrosservice find: Rechercher les services par typerosservice info: Afficher des informations sur un servicerosservice list: Lister tous les services actifsrosservice type: Afficher le type d'un servicerosservice 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 servicerossrv info: Afficher des informations détaillées sur un message de servicerossrv list: Lister tous les types de messages de servicerossrv md5: Afficher la somme MD5 d'un message de servicerossrv package: Lister tous les messages de service d'un paquetrossrv 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ètrerosparam get: Obtenir un paramètrerosparam load: Charger des paramètres depuis un fichier externerosparam dump: Exporter des paramètres dans un fichier externerosparam delete: Supprimer un paramètrerosparam 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.