ROS2 学习笔记8:使用rqt控制台
思考及疑问: ROS2 各模块安装的关系,如果安装整个ros-vserion版本,单个模块是否需要单独安装,哪些模块,rqt, turtlesim, rviz …
Background 背景
rqt_console是ros2里面一个用于记录日志信息的图形化界面工具。通常情况下,日志信息显示在终端内。通过rqt_console,你可以收集任何时间段的消息,更加认真仔细审查它们,筛选它们,保存它们,甚至日后任意时间重新加载它们出来审查。
节点通过日志方式输出事件和状态的消息。为了用户,内容通常是消息。
Prerequisites 前提
需要安装 rqt_console
和 turtlesim
Tasks 任务
1 Setup
使用以下命令在新终端中启动 rqt_console :
ros2 run rqt_console rqt_console
rqt_console 窗口将打开:
控制台的第一部分将显示来自系统的日志信息。
中间部分,可以选择过滤信息,也可以使用右侧的加号按钮添加更多过滤器。
底部用于高亮显示包含输入字符串的信息。也可以在这部分添加更多过滤器。
现在在新终端中使用以下命令启动 turtlesim
:
ros2 run turtlesim turtlesim_node
2 Messages on 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}}"
由于上面的指令是以固定频率进行发送的,小乌龟会持续运动到墙壁。会看到带有Warn严重警告重复显示,如图:
在运行ros2 topic pub
指令的终端输入ctrl+c
,让小乌龟停止移动
3 Logger levels
ros2
记录器按照严重程度等级划分为:
Fatal
Error
Warn
Info
Debug
每个等级并没有一个标准定义,但基本描述有:
Fatal
:消息表示,系统为保护自身受到破坏,正在终止运行
Error
:消息表示,不会损害系统,但不能正常运行
Warn
:消息表示,异常活动或非理想结果会导致更深层次问题,但是不影响正常运行
Info
:消息表示,可以看见事件和状态正常更新,系统正常运转
Debug
:消息表示,系统运行的详细全过程
默认的等级是info
,可看见默认等级或者更高等级信息
一般情况下,debug
消息会隐藏起来,因为其严重等级低于info
。例如,如果你设置默认等级为Warn
,你只能看见Warn
, Error
和Fatal
等级消息
3.1 Set the default logger level
当你首次运行turtlesim
节点时,你可以设置默认等级.终端输入下面指令:
ros2 run turtlesim turtlesim_node --ros-args --log-level WARN
现在,不会看到最近一次启动turtlesim
节点所拥有的info
等级消息,因为info
等级优先级低于重置的默认等级warn
Summary 总结
如果需要仔细检查系统中的日志消息,rqt_console
将非常有帮助。您可能希望出于多种原因检查日志消息,通常是为了找出哪里出了问题以及导致问题的一系列事件。
Next steps 下一步
下一个教程将教你如何使用 ROS 2 Launch
同时启动多个节点