Utilisation de rqt_console pour afficher les journaux

Objectif : Apprenez à connaître rqt_console, un outil d’introspection des messages de journal.

Niveau du tutoriel : Débutant

Durée : 5 minutes

Arrière-plan

rqt_console est un outil graphique utilisé pour analyser les messages de journalisation dans ROS 2. Généralement, les messages de journalisation s’affichent dans votre terminal. Avec rqt_console, vous pouvez collecter ces messages au fil du temps, les visualiser de près et de manière plus organisée, les filtrer, les enregistrer et même recharger les fichiers enregistrés pour les introspecter à un moment différent.

Les nœuds utilisent des journaux pour générer des messages concernant les événements et l’état de diverses manières. Leur contenu est généralement informatif, pour le bien de l’utilisateur.

Conditions préalables

Vous aurez besoin de rqt_console et turtlesim installés.

Comme toujours, n’oubliez pas de sourcer ROS 2 dans chaque nouveau terminal que vous ouvrez.

Tâches

1 Configuration

Démarrez rqt_console dans un nouveau terminal avec la commande suivante :

ros2 run rqt_console rqt_console

La fenêtre rqt_console s’ouvrira :

../../../_images/console.png

La première section de la console est l’endroit où les messages de journal de votre système s’afficheront.

Au milieu, vous avez la possibilité de filtrer les messages en excluant les niveaux de gravité. Vous pouvez également ajouter d’autres filtres d’exclusion à l’aide du bouton plus à droite.

La section inférieure sert à mettre en surbrillance les messages qui incluent une chaîne que vous avez saisie. Vous pouvez également ajouter d’autres filtres à cette section.

Lancez maintenant turtlesim dans un nouveau terminal avec la commande suivante :

ros2 run turtlesim turtlesim_node

2 messages sur rqt_console

Pour produire des messages de journal à afficher par rqt_console, faisons courir la tortue contre le mur. Dans un nouveau terminal, entrez la commande ros2 topic pub (discutée en détail dans le topics tutorial) ci-dessous :

ros2 topic pub -r 1 /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: 0.0}}"

Étant donné que la commande ci-dessus publie le sujet à un rythme régulier, la tortue se heurte continuellement au mur. Dans rqt_console, vous verrez le même message avec le niveau de gravité Warn affiché encore et encore, comme ceci :

../../../_images/warn.png

Appuyez sur Ctrl+C dans le terminal où vous avez exécuté la commande ros2 topic pub pour empêcher votre tortue de se heurter au mur.

3 niveaux d’enregistrement

Les niveaux d’enregistrement de ROS 2 sont classés par gravité :

Fatal
Error
Warn
Info
Debug

Il n’y a pas de norme exacte pour ce que chaque niveau indique, mais il est prudent de supposer que :

  • Les messages Fatal indiquent que le système va s’arrêter pour essayer de se protéger de tout préjudice.

  • Les messages d”erreur indiquent des problèmes importants qui n’endommageront pas nécessairement le système, mais qui l’empêchent de fonctionner correctement.

  • Les messages Warn indiquent une activité inattendue ou des résultats non idéaux qui pourraient représenter un problème plus profond, mais ne nuisent pas purement et simplement à la fonctionnalité.

  • Les messages Info indiquent des mises à jour d’événements et d’états qui servent de vérification visuelle que le système fonctionne comme prévu.

  • Les messages Debug détaillent l’ensemble du processus étape par étape de l’exécution du système.

Le niveau par défaut est Info. Vous ne verrez que les messages du niveau de gravité par défaut et des niveaux plus graves.

Normalement, seuls les messages Debug sont cachés car ils sont le seul niveau moins sévère que Info. Par exemple, si vous définissez le niveau par défaut sur Warn, vous ne verrez que les messages de gravité Warn, Error et Fatal.

3.1 Définir le niveau d’enregistrement par défaut

Vous pouvez définir le niveau d’enregistrement par défaut lors de la première exécution du nœud /turtlesim en utilisant le remappage. Saisissez la commande suivante dans votre terminal :

ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

Maintenant, vous ne verrez plus les avertissements initiaux de niveau Info qui sont apparus dans la console la dernière fois que vous avez lancé turtlesim. En effet, les messages Info ont une priorité inférieure à la nouvelle sévérité par défaut, Warn.

Résumé

rqt_console peut être très utile si vous avez besoin d’examiner de près les messages du journal de votre système. Vous voudrez peut-être examiner les messages du journal pour un certain nombre de raisons, généralement pour savoir où quelque chose s’est mal passé et la série d’événements qui ont conduit à cela.

Prochaines étapes

Le prochain didacticiel vous apprendra comment démarrer plusieurs nœuds à la fois avec ROS 2 Launch.