Using rqt_console to view logs — ROS 2 Documentation: Humble documentation
一、目标
了解 rqt_console,一个用于领悟日志消息的工具。您将需要安装 rqt_console 和 turtlesim。 与往常一样,不要忘记在您打开的每个新终端中获取 ROS 2。
二、背景
rqt_console 是一个 GUI 工具,用于检查 ROS 2 中的日志消息。通常,日志消息会显示在终端中。使用 rqt_console,您可以随着时间的推移收集这些消息,以更有条理的方式仔细查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间进行重现或回顾。
三、打开控制台指令
ros2 run rqt_console rqt_console
- 控制台的第一部分是显示系统日志消息的地方。
- 在中间,您可以选择通过排除严重性级别来过滤消息。您还可以使用右侧的加号按钮添加更多排除过滤器。
- 底部用于突出显示包含您输入的字符串的消息。您也可以在此部分中添加更多过滤器。
四、使用日志终端
现在,使用以下命令在新终端中启动turtlesim:
ros2 run turtlesim turtlesim_node
rqt_控制台上的2条消息
为了生成rqt_控制台要显示的日志消息,让我们让海龟撞到墙上。在新的终端中,输入以下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_控制台中,您将看到相同的消息,警告严重性级别反复显示,如下所示:
在运行ros2 topic pub命令的终端中按Ctrl+C组合键,以阻止海龟撞到墙上。
五、记录器级别
ROS 2的记录器级别按严重程度排序:
- 致命的
- 错误
- 警告
- 信息
- 调试
对于每个级别所指示的内容,没有确切的标准,但可以安全地假设:
- 致命消息表示系统将终止以保护自身免受损害。
- 错误消息表示重大问题,这些问题不一定会损坏系统,但会阻止系统正常运行。
- 警告消息表示意外的活动或不理想的结果,可能代表更深层的问题,但不会直接损害功能。
- 信息消息表示事件和状态更新,作为系统按预期运行的视觉验证。
- 调试消息详细说明了系统执行的整个分步过程。
默认级别为Info。您将只看到默认严重性级别和更严重级别的消息。
通常情况下,只有调试消息是隐藏的,因为它们是唯一比Info级别低的级别。例如,如果将默认级别设置为“警告”,则只会看到严重性为“警告”、“错误”和“致命”的消息。
六、总结
在ROS2的正式开发中,对于程序的健壮性要求很高。在程序本身无误,但控制数据出现差错,如何去进行单元测试,本篇介绍rqt_console就是完成测试操作的工具。