使用 rqt_console
目标: 了解 rqt_console,一个用于检查日志消息的工具。
教程级别: 初级
预计用时: 5 分钟
rqt_console 是一个 GUI 工具,用于查看 ROS 2 中的日志消息。
通常,日志消息会直接显示在终端中。
而 rqt_console 可以持续收集这些消息,让你更有条理地浏览、过滤和保存它们,甚至可以重新加载已保存的日志文件,方便日后查看。
节点通过日志输出事件和状态信息,这些信息通常供用户参考。
你需要安装 rqt_console 和 turtlesim。
和往常一样,不要忘记在每一个新打开的终端中 source ROS 2。
在一个新终端中使用以下命令启动 rqt_console:
$ ros2 run rqt_console rqt_consolerqt_console 窗口将会打开:

控制台顶部区域用于显示系统日志消息。
中间区域可以按严重级别排除特定消息,点击右侧的加号按钮还能添加更多排除过滤器。
底部区域用于高亮显示包含指定字符串的消息,同样支持添加多个过滤器。
现在在一个新终端中使用以下命令启动 turtlesim:
$ ros2 run turtlesim turtlesim_node2 rqt_console 上的消息
Section titled “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 严重级别的相同消息反复出现,如下所示:

在运行 ros2 topic pub 命令的终端中按 Ctrl+C,即可停止乌龟撞墙。
3 Logger 级别
Section titled “3 Logger 级别”ROS 2 的 logger 级别按严重程度排序:
- Fatal
- Error
- Warn
- Info
- Debug
每个级别的确切含义并无严格标准,但通常可以这样理解:
Fatal消息表示系统即将终止,以尽量避免自身受损。Error消息表示严重问题,虽不一定会损坏系统,但会阻碍正常运行。Warn消息表示出现了意外行为或不理想的结果,可能暗示更深层的问题,但不会直接影响功能。Info消息用于报告事件和状态更新,确认系统正按预期运行。Debug消息会详细记录系统执行过程中的每一步。
默认级别是 Info,也就是说你只会看到默认级别及更高严重级别的消息。
通常,只有 Debug 消息会被隐藏,因为它是唯一低于 Info 的级别。
例如,如果将默认级别设置为 Warn,则只会看到 Warn、Error 和 Fatal 级别的消息。
3.1 设置默认 logger 级别
Section titled “3.1 设置默认 logger 级别”你可以在首次启动 /turtlesim 节点时,通过 remapping 来设置默认 logger 级别。
在终端中输入以下命令:
$ ros2 run turtlesim turtlesim_node --ros-args --log-level WARN现在你不会看到上次启动 turtlesim 时控制台中出现的那些初始 Info 级别消息了,因为 Info 消息的优先级低于新的默认级别 Warn。
如果你需要仔细查看系统产生的日志消息,rqt_console 会非常有用。
你可能出于各种原因需要检查日志,通常是为了定位问题以及追溯导致问题的一系列事件。
下一个教程将教你如何使用 ROS 2 launch 一次性启动多个节点。