美文网首页
ROS2 日志管理与可视化

ROS2 日志管理与可视化

作者: 水之心 | 来源:发表于2020-09-17 08:48 被阅读0次

在终端中运行 ROS2 节点时,节点的日志信息会在终端中显示出来,但是这种方式呈现的日志比较凌乱,所以 ROS2 提供了一个专门用于管理日志信息的可视化工具——rqt_console

rqt_console 是一个 GUI 工具,用于自检 ROS 2 中的日志消息。通常,日志消息显示在终端中。使用 rqt_console,您可以随着时间的推移收集这些消息,以更有条理的方式仔细查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间进行内部检查。

节点使用日志以各种方式输出有关事件和状态的消息。为了用户的利益,它们的内容通常是信息性的。日志消息的意图由节点的作者定义,尽管内容可以在运行时编写。

首先打开一个新的终端,使用如下指令即可启动rqt_console:

$ ros2 run rqt_console rqt_console

在打开的窗口中,我们可以看到三个子窗口。最上边一个窗口会显示所有 ROS2 系统中的日志,是内容最多的,如果我们想做筛选,可以在中间的窗口中选择日志级别,此时中间窗口则会剔除无关级别的日志,如果我们想在日志中搜索某一字符串,那就可以在最下边的窗口中输入,确任后该窗口只显示包含此字符串的日志。中间和下边的窗口还可以添加更多筛选规则。

我们来启动小海龟仿真器试一试。

$ ros2 run turtlesim turtlesim_node

1 Messages on rqt_console

为了产生日志信息,我们可以控制海龟撞到仿真器的边缘:

$ 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 中就会弹出很多警告信息:

2 Logger levels

ROS2中的日志分成五个级别,级别自高到低分别是:

  • Fatal:致命级,描述系统为了自我保护即将终止的消息
  • Error:错误级,描述非致命但是会阻碍程序运行的消息
  • Warn:警告级,描述不损坏功能运行但是预期之外的行为的消息
  • Info:信息级,描述系统正常运行时事件和状态消息
  • Debug:调试级,描述系统一步一步运行的详细消息

ROS2 中默认开启的日志级别是 Info,会自动显示 info 级别以上的所有日志,包括Info、Warn、Error、Fatal。

运行节点时,我们也可以修改允许发布的日志级别,比如我们只想显示 Warn 级别以上的日志,可以这样:

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

这时启动的仿真器就只会向外发布 Warn 级别以上的日志了,Info 和 Debug 级别的日志都是看不到的。

rqt_console 工具可以帮助我们有效的查看机器人系统中的日志信息,提高调试、测试、开发的效率,快速找到你想要看到的日志。

相关文章

网友评论

      本文标题:ROS2 日志管理与可视化

      本文链接:https://www.haomeiwen.com/subject/oenkyktx.html