乐于分享
好东西不私藏

机器人系统——ROS2文档—使用 rqt_console 查看日志

机器人系统——ROS2文档—使用 rqt_console 查看日志

目标:了解 rqt_console,这是一个用于内省日志消息的工具。教程级别:入门级时间: 5 分钟

目录

  • 背景
  • 前置条件
  • 任务
    • 环境准备
    • 2  rqt_console 上的消息
    • 日志级别
  • 总结
  • 后续步骤

本教程需要使用的命令如下:

ros2 run rqt_console rqt_console
ros2 run turtlesim turtlesim_node
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}}"
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

背景

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

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

前置条件

您需要安装rqt_console  turtlesim(可以参考之前的教程。和往常一样,别忘了在打开的每个新终端中加载 ROS 2 环境

任务

环境准备

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

$ ros2 run rqt_console rqt_console

rqt_console窗口将会打开:

控制台的第一个区域是系统中日志消息显示的地方。

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

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

现在使用以下命令在新终端中启动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严重性级别的消息一遍又一遍地显示,如下所示:

在您运行ros2 topic pub命令的终端中按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会非常有帮助。您可能出于多种原因想要检查日志消息,通常是为了找出哪里出了问题以及导致该问题的一系列事件。

后续步骤

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

本文档完整翻译自 ROS 2 Lyrical 官方文档,仅用于学习交流。