使用 rqt_console 查看日志

目标:了解 rqt_console,一个用于自检日志消息的工具。

教程级别:初学者

时间:5 分钟

背景

rqt_console 是一个 GUI 工具,用于在 ROS 2 中自省日志消息。 通常,日志消息会显示在您的终端中。 使用 rqt_console,您可以随时间收集这些消息,以更有条理的方式仔细查看它们,过滤它们,保存它们,甚至重新加载已保存的文件以在不同时间进行自省。

节点使用日志以各种方式输出有关事件和状态的消息。 它们的内容通常是信息性的,以方便用户使用。

先决条件

您需要安装 rqt_console 和 turtlesim

与往常一样,不要忘记在 每次打开新终端 中获取 ROS 2。

任务

1 设置

使用以下命令在新终端中启动“rqt_console”:

ros2 run rqt_console rqt_console

“rqt_console”窗口将打开:

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

控制台的第一部分将显示系统的日志消息。

在中间,您可以选择通过排除严重性级别来过滤消息。 您还可以使用右侧的加号按钮添加更多排除过滤器。

底部部分用于突出显示包含您输入的字符串的消息。 您也可以向此部分添加更多过滤器。

现在使用以下命令在新终端中启动“turtlesim”:

ros2 run turtlesim turtlesim_node

2 条关于 rqt_console 的消息

为了生成“rqt_console”显示的日志消息,让我们让乌龟撞到墙上。 在新的终端中,输入下面的“ros2 topic pub”命令(在 topics tutorial 中有详细讨论):

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}}"

由于上述命令以稳定的速率发布主题,因此乌龟会不断撞墙。 在“rqt_console”中,你会看到一遍又一遍地显示同一条消息,其严重性级别为“Warn”,如下所示:

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

在运行“ros2 topic pub”命令的终端中按“Ctrl+C”来阻止你的乌龟撞到墙上。

3 记录器级别

ROS 2 的记录器级别按严重性排序:

Fatal
Error
Warn
Info
Debug

对于每个级别的含义,没有确切的标准,但可以安全地假设:

  • Fatal 消息表示系统将终止以尝试保护自身免受损害。

  • Error 消息表示重大问题,这些问题不一定会损坏系统,但会阻止系统正常运行。

  • Warn 消息表示意外活动或不理想的结果,可能代表更深层次的问题,但不会直接损害功能。

  • Info 消息表示事件和状态更新,可作为系统按预期运行的视觉验证。

  • Debug 消息详细说明了系统执行的整个分步过程。

默认级别为 Info

您将只看到默认严重性级别和更严重级别的消息。

通常,只有 Debug 消息被隐藏,因为它们是唯一比 Info 严重程度更低的级别。

例如,如果将默认级别设置为“Warn”,则只会看到严重级别为“Warn”、“Error”和“Fatal”的消息。

3.1 设置默认记录器级别

首次运行“/turtlesim”节点时,可以使用重新映射设置默认记录器级别。 在终端中输入以下命令:

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

现在,您将看不到上次启动“turtlesim”时控制台中出现的初始“Info”级别消息。 这是因为“Info”消息的优先级低于新的默认严重性“Warn”。

摘要

如果您需要仔细检查系统中的日志消息,则“rqt_console”会非常有用。 您可能出于多种原因想要检查日志消息,通常是为了找出哪里出了问题以及导致该问题的一系列事件。

下一步

下一个教程将教您如何使用 ROS 2 Launch 同时启动多个节点。