ROS2学习之旅(9)——使用rqt_console

rqt_console是一个GUI工具,用于在ROS2中查看日志消息。通常,日志消息会显示在终端中。使用rqt_console,可以随着时间的推移收集这些消息,以更有组织的方式仔细查看它们,过滤它们,保存它们,甚至重新加载已保存的文件以在不同的时间进行查看。
节点使用日志以各种方式输出有关事件和状态的消息。

1.准备

运行rqt_console,在终端执行:

ros2 run rqt_console rqt_console

此时,会打开rqt_console:

控制台的第一部分将显示来自系统的日志消息。

中间部分可以通过排除严重级别来过滤消息,还可以使用右边的加号按钮添加更多排除过滤器。

底部部分用于突出显示包含输入的字符串的消息,也可以在此部分添加更多的过滤器。

现在用下面的命令在新终端中启动turturlesim:

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.日志级别

ROS2的记录器级别按严重程度排序:

Fatal
Error
Warn
Info
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

4.总结

如果需要仔细检查来自系统的日志消息,rqt_consle可能非常有用。出于各种原因,可能希望检查日志消息,通常是为了找出哪里出了问题以及导致该问题的一系列事件。

如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习。
都看到这了,点个推荐再走吧~
未经允许,禁止转载。

posted @ 2021-07-13 22:09  Love&Robot  阅读(582)  评论(0编辑  收藏  举报