ROS2教程(入门级):ROS2中使用rqt_console

19 篇文章 79 订阅
本文介绍了ROS2中图形化工具rqt_console的使用方法,包括如何查看和过滤日志消息,以及如何设置logger级别。通过实例展示了在小海龟撞墙场景中观察不同严重级别的日志,帮助理解ROS2的日志系统。
摘要由CSDN通过智能技术生成

目标: 了解rqt_console这个可以用来查看log消息的工具。

背景知识

rqt_console 是ROS2中用来查看log消息的图形化界面。比较经典的情况是,log消息会出现在你的终端。通过rqt_console ,你可以采集这些数据,后续可以仔细的查看它,从里面过滤出你需要的消息,保存这些消息,甚至从保存的文件中将它们加载出来,再次对消息进行分析。

节点通过log以多种多样的方式输出它关注的事件和状态的消息。为了方便用户,这些内容通常都是有信息量的。

前提条件

首先,你需要先安装rqt_console以及turtlesim package](https://blog.csdn.net/weixin_42499608/article/details/117985676),并且不要忘记在启动的每个新的终端上source ROS 2。如何你对上面的内容还没看过的,可以戳一下,过去了解一下。

任务

1. 设置

利用下面的命令,在一个新的终端上启动rqt_console

ros2 run rqt_console rqt_console

rqt_console 的窗口会打开:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqsCcABI-1625555483673)(https://docs.ros.org/en/foxy/_images/console.png)]

窗口的第一个部分,会展示你系统中的log信息。

在中间一个窗口,你拥有通过严重程度来过滤消息的选项。你还可以通过右侧的加号按钮增加更多的过滤器。

底部的窗口会高亮那边包含你输入的字符串的消息。这个部分同样允许你增加更多的过滤器。

现在,通过下面的命令在一个新的终端中启动turtlesim:

ros2 run turtlesim turtlesim_node

通过rqt_console查看消息

为了产生log消息,以便在rqt_console 中显示出来,让我们尝试将小海龟移动到墙里。在一个新的终端,输入下面的指令(至于指令的意思,具体介绍实在话题的教程中):

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严重级别的消息不断的重复出现,类似下面的样子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CuTzPLS6-1625555483682)(https://docs.ros.org/en/foxy/_images/warn.png)]

在你运行ros2 topic pub命令的终端按下Ctrl+c,让你的小海龟停止撞墙。

3. logger的等级

3 Logger levels

ROS2的logger等级是按照严重程度排序的:

Fatal
Error
Warn
Info
Debug

这里没有准确的标准来判断每个严重程度意味着什么问题,但是大改可以这么理解:

  • Fatal消息意味着它为了保护自己不受损害即将终止。
  • Error消息意味着出现的重大的问题,虽然不致于损害系统,但是已经不能正确的执行功能。
  • Warn消息意味着出现了没有意料到的活动,或者出现了非理想中的结果,这些可能暗示着会有一些更深层的问题,但是不影响功能上正常运行。
  • Info消息指的是事件和状态的更新,往往是通过可视化验证系统正按照预期的状态运行。
  • Debug消息是系统逐步运行的细节。

默认的等级是Info。你将会看到默认等级以及更严重的等级的消息。

正常情况下,只有Debug消息是隐藏的,因为只有它是比Info更加不重要的。比如,如果你设置了默认的等级是Warn,你将只会看到严重等级是WarnError以及Fatel的消息。

3.1 Set the default logger level

你可以在首次运行/turtlesim节点的时候,通过remapping设置默认logger的等级。在终端输入下面的命令:

ros2 run turtlesim turtlesim_node --ros-args --log-level WARN

现在,你就看不到上一次你启动turtlesim的时候打印出来的哪些属于Info级别的警告了,因为Info级别的消息的优先级比现在的默认严重等级要低。

总结

当你想要仔细的检查系统的log的时候,rqt_console是非常有效的。通常是,当你需要查找一下哪里出问题了,或者哪些事件已经触发了,你可能都需要去检查系统的log。

下一步

下面的教程会讲述如何写launch文件。

如果你想了解更多关于ROS2或者机器人的东西,可以关注我或者订阅我的专栏:ROS 2专栏

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值