使用rqt_console查看日志
了解rqt_console,一个用于自检日志消息的工具。
背景
rqt_console是一个GUI工具,用于自检ROS2中的日志消息。通常,日志消息会显示在终端中。使用rqt_console,您可以随着时间的推移收集这些消息,以更有组织的方式仔细查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间进行查看。
节点使用日志以各种方式输出有关事件和状态的消息。为了用户的利益,它们的内容通常是信息性的。
使用rqt_console
1、启动
使用以下命令在新终端中启动rqt_console:
ros2 run rqt_console rqt_console
rqt_console窗口将打开
- 控制台的第一部分将显示来自系统的日志消息。
- 在中间,可以选择通过排除严重性级别来筛选消息。还可以使用右侧的加号按钮添加更多排除筛选器。
- 底部部分用于突出显示包含您输入的字符串的消息。也可以在此部分添加更多筛选器。
现在用以下命令在新终端中启动turtlesim:
2、rqt_console上的消息
要为rqt_console生成要显示的日志消息,让乌龟撞到墙上。在新终端中,输入以下ros2 topic pub命令(在什么是ROS2中的——topics中详细练习操作过):
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,以防止乌龟撞到墙上。
Logger levels
ROS 2的Logger levels按严重程度排序:
Fatal
Error
Warn
Info
Debug
每个级别的指示没有确切的标准,但可以肯定地假设:
- Fatal消息表明系统将终止以保护自己免受损害。
- Error消息表示重大问题,这些问题不一定会损坏系统,但会妨碍系统正常运行。
- Warn消息表示意外活动或不理想的结果,这可能代表更深层次的问题,但不会直接损害功能。
- Info消息指示事件和状态更新,作为系统按预期运行的视觉验证。
- Debug消息详细说明了系统执行的整个分步过程。
默认级别为“Info”。将只看到默认严重级别和更严重级别的消息。 通常,只有Debug消息是隐藏的,因为它们是唯一一个级别低于Info的消息。例如,如果将默认级别设置为“Warn”,则只能看到严重级别为“ Warn、Error和Fatal”的消息。
设置默认logger level
可以在首次使用重新映射运行/turtlesim节点时设置默认Logger levels。在终端中输入以下命令:
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
现在,将看不到上次启动turtlesim时控制台中出现的初始Info 级别消息。这是因为Info 消息的优先级低于新的默认严重性警告。
总结
如果需要仔细检查系统中的日志消息,rqt_console会非常有用。出于多种原因,可能需要检查日志消息,通常是为了找出哪里出了问题以及导致问题的一系列事件。