You're reading the documentation for a development version. For the latest released version, please have a look at Galactic.

使用 rqt_console

目标:了解 rqt_console,一个用于内省日志信息的工具。

Tutorial level: Beginner

Time: 5 minutes

背景

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 命令(在 主题 教程中详细讨论):

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 命令的终端中按 {kbd}`Ctrl` + {kbd}`C` 来阻止你的海龟撞到墙上。

3 记录器级别

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

Fatal
Error
Warn
Info
Debug

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

  • Fatal 消息表明,系统将终止试图保护自己免受损害。

  • Error 消息指出了重要的问题,这些问题不一定会损害系统,但会阻止系统正常运行。

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

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

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

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

通常,只有 Debug 消息被隐藏,因为它们是唯一比 Info 级别轻的级别。例如,如果将默认级别设置为 Warn,则只会看到严重性为 WarnErrorFatal 的消息。

3.1 设置默认的记录器级别

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

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

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

小结

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

下一步

下一个教程将教你如何 创建 launch 文件