节点配置及查看日志实验
目标: 了解 rqt_console,这是一个用于检查 ROS 2(Robot Operating System 2)日志消息的工具。
难度等级: 初学者
预计完成时间: 15 分钟
背景知识
rqt_console 是一个图形界面工具,用来检查 ROS 2 中的日志消息。通常,日志消息会显示在你的终端里。
使用 rqt_console,你可以收集这些时序消息,以更有序的方式仔细查看它们、过滤它们、保存它们,甚至重新加载保存的文件以便在不同的时间进行检查。
Node(节点) 通过日志输出关于事件和状态的消息。这些内容通常提供一些基本信息,旨在帮助用户了解系统运行情况。
准备工作
你需要安装 :rqt_console 和 turtlesim. 参见 配置环境变量并熟悉基础工具 .
每次打开新的终端时,请不要忘记配置 ROS 2 环境,参见 1. 加载设置文件
我们的工作平台是 Ubuntu 24.04,使用的终端是 Zsh。
实践任务
1. 设置
首先,在新终端中使用以下命令启动 rqt_console:
ros2 run rqt_console rqt_console
这将打开 rqt_console 窗口。窗口的第一部分会显示来自你系统的日志消息。

中间部分可以让你通过排除特定严重性级别的消息来过滤消息。你还可以通过右侧的加号按钮添加更多的过滤条件。
底部区域是用来高亮显示包含你输入字符串的消息。这部分也可以添加更多过滤器。
接着,在另一个新终端中使用以下命令启动 turtlesim:
ros2 run turtlesim turtlesim_node
2. 在 rqt_console 中生成消息
为了让 rqt_console 显示日志消息,我们可以让小海龟撞墙。在新终端中输入以下 ros2 topic pub 命令 (详情请参阅 3.7 发布话题: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(警告)级别重复显示。

按 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 将非常有用。你可能出于各种原因想要检查日志消息,通常是找出问题所在以及导致问题的一系列事件。
下一步
下一个教程将教你如何使用 ros2 Launch 同时启动多个节点。
vim: filetype=markdown