在终端中运行 ROS2 节点时,节点的日志信息会在终端中显示出来,但是这种方式呈现的日志比较凌乱,所以 ROS2 提供了一个专门用于管理日志信息的可视化工具——rqt_console
。
rqt_console
是一个 GUI 工具,用于自检 ROS 2 中的日志消息。通常,日志消息显示在终端中。使用 rqt_console
,您可以随着时间的推移收集这些消息,以更有条理的方式仔细查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间进行内部检查。
节点使用日志以各种方式输出有关事件和状态的消息。为了用户的利益,它们的内容通常是信息性的。日志消息的意图由节点的作者定义,尽管内容可以在运行时编写。
首先打开一个新的终端,使用如下指令即可启动rqt_console:
$ ros2 run rqt_console rqt_console
![](https://img.haomeiwen.com/i1114626/ca680116583001a7.png)
在打开的窗口中,我们可以看到三个子窗口。最上边一个窗口会显示所有 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
中就会弹出很多警告信息:
![](https://img.haomeiwen.com/i1114626/19bcd6c205f30d6e.png)
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
工具可以帮助我们有效的查看机器人系统中的日志信息,提高调试、测试、开发的效率,快速找到你想要看到的日志。
网友评论