当前位置: 华文问答 > 科学

ROS 2入门教程——1.8 使用rqt_console

2021-03-07科学

1.8.1 目标

了解rqt_console,这是一个用于检查日志消息的工具。

1.8.2 教程级别

入门

1.8.3 学习时间

5分钟

1.8.4 内容

1.8.4.1 背景知识

rqt_console是一个GUI工具,用于检查ROS 2中的日志消息。通常来说,日志消息显示在终端中。用rqt_console工具可以随着时间的推移不停地收集这些日志消息,以更有条理的方式仔细查看它们,过滤它们,保存它们,甚至重新加载保存的文件以在不同的时间进行内部检查。

节点用日志以各种方式输出有关事件和状态的消息。为了用户的利益,它们的内容通常是信息性的。日志消息的意图由节点的作者定义,尽管其内容可以在运行时写入。

1.8.4.2 前提条件

需要安装好rqt_console工具和turtlesim软件包。

与往常一样,不要忘记在每个新打开的终端中source ROS 2的安装文件。

1.8.4.3 任务

(1)设置

在一个新的终端中用以下命令启动rqt_console:

ros2 run rqt_console rqt_console

rqt_console窗口将会打开,如下所示:

rqt控制台的第一部分用于显示来自系统的日志消息。

在中间部分,可以通过设置排除严重程度级别来过滤消息。也可以使用右侧的「+」加号按钮添加更多的排除过滤器。

底部部分用于突出显示包含输入的字符串消息。也可以在此部分添加更多过滤器。

现在,用以下命令在一个新终端中启动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)日志的级别

ROS 2的日志级别按以下严重程度(从高到低)排序:

Fatal
Error
Warn
Info
Debug

每个级别指代什么具体内容并没有确切的标准,但可以安全地作以下假设:

● 「致命」(Fatal)消息表示系统将终止程序,以尝试保护其自身免受损害。

● 「错误」(Error)消息表示重大问题,虽然不一定会损坏系统,但会阻止系统正常运行。

● 「警告」(Warn)消息表示意料之外的活动或不理想的结果,可能代表更深层的问题,但不会直接损害功能。

● 「信息」(Info)消息表示事件和状态的更新,可以用作系统是否按预期运行的一种可视化验证方式。

● 「调试」(Debug)消息一步一步地详细说明了系统执行的整个过程。

默认级别为「信息」。仅能看到默认严重程度级别和更高级别的消息。

通常来说,只有调试消息是隐藏的,因为它们是唯一不如信息消息严重的级别。例如,如果将默认级别设置为「警告」,则只会看到严重程度级别为「警告」、「错误」和「致命」的消息。

1)设置默认的日志级别

在使用重映射命令首次运行/ turtlesim节点时,可以设置默认日志级别。在终端中输入以下命令:

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

现在,您将不会看到上一次启动turtlesim节点时控制台中出现的「信息」级别警告了。这是因为「信息」消息的严重程度级别低于新设置的默认严重程度级别「警告」。

1.8.5 小结

如果需要仔细检查系统中的日志消息,rqt_console会非常有用。 可能会出于多种原因想要检查日志消息,通常用来找出问题出在哪里以及导致该问题的一系列事件。

1.8.6 下一步

下一个教程将教您如何创建launch文件。

*英语原文地址:Using rqt_console