本文目录
零、rqt可视化工具箱
rqt
是ROS
的一个软件框架,以插件的形式实现各种GUI工具。可以在 rqt
中将所有现有的 GUI 工具作为子窗口运行,也可以以独立方法运行,但 rqt
可以更轻松地同时管理屏幕上的所有各种窗口。用户可以使用Python或C++创建自己的 rqt 插件。
在终端输入rqt
即可运行(也可以输入 rosrun rqt_gui rqt_gui
),如下:
可以在 Plugins
中选择需要的插件。
一、rqt_console
rqt_console
可以通过图形化查看发布到 rosout
的消息,他会不停的收集信息并提供日志过滤功能。
启动方法: 在 rqt
窗口依次点击 Plugins
-> Logging
-> Console
启动,或直接在终端输入命令 rqt_console
启动。
界面如下图:
其中,每列说明如下:
# | Message | Severity | Node | Stamp | Topics | Location |
---|---|---|---|---|---|---|
序号 | 日志内容 | 日志等级 | 发布日志的节点 | 时间戳 | 话题 | 打印日志的位置 |
另外,也可以通过条件过滤日志,即下方的 Exclude Messages
和 Highlight Messages
,分别可以通过指定条件(右侧的绿色加号)排除和高亮符合的日志。
示例如下:
如上,排除了日志中包含In
(区分大小写)和指定位置的日志,并高亮了日志等级为 Fatal
的日志。
其中条件可选如下:
分别为:
条件 | 说明 |
---|---|
…containing | 内容包含 |
…with serverities | 日志等级 |
…from node | 所属节点 |
…from time range | 时间范围 |
…from topic | 所属话题 |
…from location | 日志位置(在哪个文件的第几行) |
Custom | 用户自定义条件 |
二、rqt_logger_level
rqt_logger_level
可以通过可视化界面设置指定的日志级别。
启动方法: 在 rqt
窗口依次点击 Plugins
-> Logging
-> Logger Level
启动,或直接在终端输入命令 rqt_logger_level
启动。
界面如下:
其中,每列说明如下:
Nodes | Loggers | Levels |
---|---|---|
节点名 | 日志记录器 | 日志等级 |
其中,
-
Nodes
:通过如下接口设置-
ros::init(argc, argv, "rqt_console_node"); // C++ rospy.init_node('rqt_console_node') # Python
-
-
Loggers
:日志记录器(loggers)是用于输出诊断信息、调试信息和运行时消息的工具。每个日志记录器通常与特定的ROS包或库相关联,并允许开发者控制不同级别的日志消息的输出。以下对这些日志记录器进行说明:- ros
- 这个日志记录器是ROS核心的一部分,它记录了整个系统范围内的重要信息。
- ros.roscpp
- 这个日志记录器与ROS的C++库(roscpp)相关,记录了roscpp库的操作和事件。
- ros.roscpp.roscpp_internal
- 这个日志记录器专门用于roscpp库的内部操作。它可能会记录关于库内部工作方式的细节,但以"info"级别进行记录,这意味着默认情况下这些信息不会非常详细。
- ros.roscpp.roscpp_internal.connections
- 这个日志记录器可能用于记录roscpp库内部的网络连接和通信相关的信息。这包括节点之间的通信和连接状态的变化。
- ros.roscpp.superdebug
- 这是一个特殊的日志记录器,通常用于更详细的调试。
- ros.rqt_learning
- 这个日志记录器是特定于名为
rqt_learning
的ROS包的。
- 这个日志记录器是特定于名为
- ros
-
Levels
:日志等级,各等级说明如下:Debug
:这是最低级别的日志,用于记录开发过程中的详细信息,通常仅在需要调试时使用。这对于开发者来说非常有用,尤其是在开发和测试阶段。Info
:此级别用于记录程序正常运行时的一般信息,比DEBUG级别略高,它包含的信息对日常操作和问题诊断有价值。Warn
:警告级别用来指示可能的问题,但不一定会导致程序出错。这通常意味着某些事情不如预期,但程序可以继续运行。Error
:此级别用于报告错误情况,这些错误可能会影响程序的功能。Fatal
:最高级别的日志,表示出现了严重的错误,程序可能会因此终止运行。
使用方法: 依次选择要设置的节点、日志记录器后,直接点选日志等级即可设置。
该可视化界面和如下命令有同样的效果:
rosservice call /<node_name>/get_loggers
rosservice call /<node_name>/set_logger_level
如下图:
标签:rqt,ros,记录器,roscpp,系列学习,日志,ROS From: https://blog.csdn.net/maizousidemao/article/details/136964357