RQT 是 ROS(机器人操作系统)中一个强大的可视化工具框架,它提供了类似 IDE 的界面,支持多种插件扩展,可用于监控机器人状态、调试算法、配置参数等。以下是 RQT 的详细使用指南:
一、RQT 基础使用
1. 启动 RQT
在终端中输入以下命令启动 RQT:
bash
rqt
若需要在启动时直接加载特定插件,可以使用:
bash
rqt --force-discover # 强制重新发现所有插件
rqt -s plugin_name # 直接启动指定插件(如rqt_graph)
2. 插件管理
- 添加插件:点击顶部菜单
Plugins
→ 选择分类(如Visualization
、Robot Tools
)→ 选择插件 - 保存布局:点击顶部菜单
File
→Save As
,保存当前插件布局配置 - 加载布局:点击顶部菜单
File
→Open
,加载已保存的布局
二、常用 RQT 插件及功能
1. rqt_graph - 计算图可视化
- 功能:显示 ROS 节点 (Node)、话题 (Topic)、服务 (Service) 之间的连接关系
- 启动方式:
Plugins
→Visualization
→Node Graph
- 使用技巧:
- 右键点击节点 / 话题可查看详细信息
- 使用过滤功能(如只显示特定命名空间的节点)
- 调整布局算法(Force-Directed、Hierarchical 等)
2. rqt_console - 日志监控
- 功能:实时显示 ROS 节点输出的日志信息(DEBUG、INFO、WARN、ERROR、FATAL)
- 启动方式:
Plugins
→Diagnostics
→Console
- 使用技巧:
- 设置日志级别过滤
- 通过正则表达式过滤特定节点或关键词
- 保存日志到文件
3. rqt_plot - 实时数据绘图
- 功能:绘制 ROS 话题发布的数值数据变化曲线
- 启动方式:
Plugins
→Visualization
→Plot
- 使用技巧:
- 添加话题:点击
+
按钮,输入话题名称(如/odom/pose/pose/position/x
) - 调整 Y 轴范围、刷新频率
- 支持多曲线绘制和数据导出
- 添加话题:点击
4. rqt_image_view - 图像显示
- 功能:显示 ROS 图像话题(如摄像头、深度相机输出)
- 启动方式:
Plugins
→Visualization
→Image View
- 使用技巧:
- 选择图像话题(如
/camera/image_raw
) - 调整亮度、对比度、缩放比例
- 支持单帧播放、保存图像
- 选择图像话题(如
5. rqt_reconfigure - 动态参数配置
- 功能:实时调整 ROS 节点的参数(需节点支持动态重配置)
- 启动方式:
Plugins
→Configuration
→Dynamic Reconfigure
- 使用技巧:
- 选择需要配置的节点
- 实时修改参数值,无需重启节点
- 保存 / 加载参数配置文件
6. rqt_tf_tree - TF 变换可视化
- 功能:显示机器人坐标系之间的变换关系
- 启动方式:
Plugins
→Visualization
→TF Tree
- 使用技巧:
- 查看坐标系层级结构
- 高亮特定坐标系路径
- 检查 TF 发布频率和延迟
7. rqt_bag - ROS Bag 文件处理
- 功能:录制、播放和分析 ROS Bag 数据文件
- 启动方式:
Plugins
→Tools
→Bag
- 使用技巧:
- 选择要录制的话题
- 设置录制文件路径和压缩方式
- 控制播放速度、暂停 / 恢复
三、自定义 RQT 插件开发
1. 创建插件包
bash
catkin_create_pkg rqt_myplugin rospy rqt_gui rqt_gui_py
cd catkin_ws && catkin_make
source devel/setup.bash
2. 编写插件代码
在 rqt_myplugin/src/rqt_myplugin
目录下创建 my_plugin.py
:
python
运行
#!/usr/bin/env python
from python_qt_binding.QtWidgets import QWidget, QVBoxLayout, QLabel
from rqt_gui_py.plugin import Plugin
class MyPlugin(Plugin):
def __init__(self, context):
super(MyPlugin, self).__init__(context)
self.setObjectName('MyPlugin')
# 创建UI组件
self._widget = QWidget()
layout = QVBoxLayout(self._widget)
label = QLabel('Hello ROS!')
layout.addWidget(label)
# 将组件添加到RQT窗口
context.add_widget(self._widget)
def shutdown_plugin(self):
pass # 清理资源
3. 配置插件描述文件
在 rqt_myplugin/plugin.xml
中添加:
xml
<library path="lib/rqt_myplugin">
<class type="rqt_myplugin.my_plugin.MyPlugin" name="MyPlugin" base_class_type="rqt_gui_py::Plugin">
<description>
A simple RQT plugin
</description>
<provides>
<interface package="rqt_gui" type="Plugin"/>
</provides>
</class>
</library>
4. 注册插件
在 package.xml
中添加:
xml
<export>
<rqt_gui plugin="${prefix}/plugin.xml"/>
</export>
5. 编译并测试
bash
catkin_make
rqt --force-discover # 重新发现插件
四、RQT 使用技巧与常见问题
1. 快捷键
Ctrl + S
:保存当前布局Ctrl + O
:打开已保存的布局Ctrl + F
:在 rqt_graph 中搜索节点 / 话题
2. 常见问题及解决
- 插件无法加载:
- 检查插件依赖是否安装:
rosdep install rqt_xxx
- 尝试清除缓存:
rm -rf ~/.config/ros.org/rqt_gui/
- 检查插件依赖是否安装:
- rqt_graph 显示不完整:
- 增大窗口尺寸
- 调整布局参数(Layout → Settings)
- 中文显示乱码:
- 设置环境变量:
export LANG=zh_CN.UTF-8
- 安装中文字体:
sudo apt-get install ttf-wqy-zenhei
- 设置环境变量:
3. 高级技巧
- 自定义主题:修改
~/.config/ros.org/rqt_gui.ini
中的样式配置 - 远程使用:通过 SSH X11 转发在远程机器上运行 RQT
- 自动化脚本:使用 Python 脚本自动加载特定布局:
python
运行
import subprocess subprocess.call(['rqt', '--perspective-file', 'my_layout.perspective'])
五、扩展资源
-
官方文档:
-
常用插件列表:
- rqt_robot_plugins:机器人状态监控
- rqt_action:Action 服务器 / 客户端调试
- rqt_launch:启动文件管理
- rqt_rviz:集成 RViz 可视化
-
插件开发参考:
通过合理使用 RQT 及其插件,你可以大幅提高 ROS 开发效率,快速定位问题,实现更直观的机器人系统监控与调试。