Skip to main content

节点配置及查看日志实验

目标: 了解 rqt_console,这是一个用于检查 ROS 2(Robot Operating System 2)日志消息的工具。

难度等级: 初学者

预计完成时间: 15 分钟


背景知识

rqt_console 是一个图形界面工具,用来检查 ROS 2 中的日志消息。通常,日志消息会显示在你的终端里。

使用 rqt_console,你可以收集这些时序消息,以更有序的方式仔细查看它们、过滤它们、保存它们,甚至重新加载保存的文件以便在不同的时间进行检查。

Node(节点) 通过日志输出关于事件和状态的消息。这些内容通常提供一些基本信息,旨在帮助用户了解系统运行情况。


准备工作

你需要安装 :rqt_consoleturtlesim. 参见 配置环境变量并熟悉基础工具 .

每次打开新的终端时,请不要忘记配置 ROS 2 环境,参见 1. 加载设置文件

我们的工作平台是 Ubuntu 24.04,使用的终端是 Zsh


实践任务

1. 设置

首先,在新终端中使用以下命令启动 rqt_console

ros2 run rqt_console rqt_console

这将打开 rqt_console 窗口。窗口的第一部分会显示来自你系统的日志消息。

https://docs.ros.org/en/kilted/_images/console.png

中间部分可以让你通过排除特定严重性级别的消息来过滤消息。你还可以通过右侧的加号按钮添加更多的过滤条件。

底部区域是用来高亮显示包含你输入字符串的消息。这部分也可以添加更多过滤器。

接着,在另一个新终端中使用以下命令启动 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(警告)级别重复显示。

https://docs.ros.org/en/kilted/_images/warn.png

Ctrl+C 停止小海龟撞墙。

3. 日志级别

ROS 2 的日志级别按照严重程度排序如下:

  1. 致命 (Fatal)
  2. 错误 (Error)
  3. 警告 (Warn)
  4. 信息 (Info)
  5. 调试 (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 将非常有用。你可能出于各种原因想要检查日志消息,通常是找出问题所在以及导致问题的一系列事件。


下一步

下一个教程将教你如何使用 ros2 Launch 同时启动多个节点。

vim: filetype=markdown