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
,则只会看到严重性为Warn
、Error
和Fatal
的消息。
3.1更改默认日志级别
可以在第一次运行/turtlesim
节点时设置默认记录器级别,在终端中输入如下命令:
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
现在不会看到上次在控制台启动turtlesim
时出现的初始Info
级别警告,这是因为Info消息的优先级低于新的默认级别Warn
。
4.总结
如果需要仔细检查来自系统的日志消息,rqt_consle
可能非常有用。出于各种原因,可能希望检查日志消息,通常是为了找出哪里出了问题以及导致该问题的一系列事件。
如果给您带来帮助,希望能给点个关注,以后还会陆续更新有关机器人的内容,点个关注不迷路~欢迎大家一起交流学习。
都看到这了,点个推荐再走吧~
未经允许,禁止转载。