背景
基础准备
任务
1 设置
2 rqt_console上的消息
3 log 级别
总结
背景
rqt_console是一个GUI工具,用于在ROS 2中自查日志消息。通常,日志消息会显示在终端中。使用rqt_console,我们可以随时收集这些消息,以更有组织的方式仔细查看log,过滤log,保存log,以便在不同的时间进行查看。
节点使用日志以不同的方式输出有关事件和状态的消息。
基础准备
需要安装rqt_console和turtlesim。
在每个终端记得source。
任务
1 设置
在一个新的终端中使用以下命令启动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中,你会看到同样的消息,警告严重级别一遍又一遍地显示,如下所示:
在运行ros2 topic pub命令的终端中按Ctrl+C来停止命令。
3 log级别
ROS 2的log按严重程度排序如下:
Fatal
Error
Warn
Info
Debug
每个级别的含义并没有确切的标准,但基本准则如下:
Fatal消息表示系统将终止,以试图保护自己免受损害。
Error消息表示一些重大问题,这些问题不一定会损坏系统,但会阻止系统正常运行。
Warn消息表示意外活动或可能代表更深层次问题的非理想结果,但不会完全损害功能。
Info消息指示事件和状态更新,作为系统按预期运行的视觉验证。
Debug消息详细说明了系统执行的整个分步过程。
默认级别为Info。您将只看到默认Info级别和更严重级别的消息。
通常,只有Debug消息是隐藏的,因为它们是唯一比Info轻的级别。例如,如果将默认级别设置为Warn,则只会看到严重性为Warn、Error和Fatal的消息。
3.1 设置log的默认级别
可以在第一次使用重映射运行/turtlesim节点时设置默认logger级别。在终端输入以下命令:
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
现在,您将看不到上次启动turtlesim时在控制台中出现的初始Info级别消息。这是因为Info消息的优先级低于新的默认严重性Warn。
总结
如果您需要仔细检查来自系统的日志消息,Rqt_console将非常有用。出于各种原因,您可能希望检查日志消息,通常是为了找出出错的地方以及导致出错的一系列事件。