当前位置: 首页 > news >正文

【ROS2学习笔记】rqt 模块化可视化工具

前言

本系列博文是本人的学习笔记,自用为主,不是教程,学习请移步其他大佬的相关教程。前几篇学习资源来自鱼香ROS大佬的详细教程,适合深入学习,但对本人这样的初学者不算友好,后续笔记将以@古月居的ROS2入门21讲为主,侵权即删。

一、学习目标

  1. 理解 rqt 的核心定位 ——轻量化、模块化的可视化工具,解决 RViz“功能过重、操作繁琐” 的痛点
  2. 掌握 rqt 的安装与启动(1 行命令搞定)
  3. 熟练使用 6 个核心模块:日志显示、图像显示、话题发布 / 服务调用、数据曲线绘制、数据包管理、节点可视化
  4. 清晰区分 rqt 与 RViz 的适用场景(知道什么时候该用哪个工具)
  5. 记住 rqt 的核心优势:“按需加载模块,轻量化操作,专注单一功能”

二、先搞懂:rqt 是什么?为什么需要它?

2.1 一句话定义:ROS 的 “工具箱式可视化工具”

rqt(ROS Qt-based Toolkit)是基于 Qt 开发的模块化可视化工具集,它把 “日志查看、图像显示、话题调试” 等功能拆分成一个个独立的 “小模块”,需要哪个功能就加载哪个,不用像 RViz 那样加载整个三维环境,轻量化且操作简单。

2.2 为什么用 rqt?(对比 RViz,解决小白痛点)

你有没有过这些困扰?

  • 只想看个摄像头图像,却要启动 RViz、添加 Image 显示项、配置参考系 —— 步骤繁琐;
  • 调试节点时,想实时看日志输出,却要开多个终端切换 —— 效率低;
  • 想临时发布一个话题(比如控制机器人速度),却要写代码或记复杂命令 —— 麻烦。

rqt 的出现就是为了解决这些问题,它的优势和 RViz 的区别如下:

对比维度rqt(模块化工具集)RViz(三维可视化平台)
核心特点轻量化、模块化(按需加载功能)重量级、一体化(专注三维场景可视化)
操作复杂度简单(每个模块 1-2 步操作)较复杂(需配置参考系、显示项、话题等)
适用场景1. 快速查看图像 / 日志2. 临时发布话题 / 调用服务3. 画简单数据曲线1. 三维场景可视化(如机器人模型、点云、路径)2. 多传感器数据融合显示
启动速度快(秒级启动)较慢(需加载三维环境)

结论:rqt 适合 “轻量级、单一功能” 的调试(比如只看图像、发话题),RViz 适合 “复杂三维场景” 的可视化(比如机器人导航、点云重建)。

三、rqt 基础:安装与启动(超简单!)

3.1 安装 rqt(ROS2 Humble 为例)

打开终端,执行 1 行命令即可安装 rqt 核心包(包含大部分常用模块):

# 安装ROS2 Humble对应的rqt包
sudo apt install ros-humble-rqt
  • 若需要更全的模块(如数据包管理、高级调试),可安装扩展包(可选):
    sudo apt install ros-humble-rqt-*  # 安装所有rqt相关扩展模块
    

3.2 启动 rqt

安装完成后,终端输入 1 个命令直接启动:

rqt
  • 预期效果:弹出 rqt 主窗口,默认是 “空白界面”,顶部有Plugins菜单(核心入口,所有模块都从这里加载)。

3.3 rqt 主界面初识(小白必看)

rqt 界面很简洁,核心操作都围绕 “顶部 Plugins 菜单”:

界面元素作用小白操作场景
顶部Plugins菜单加载 / 卸载 rqt 模块(核心入口)想查看图像→Plugins→Visualization→Image View
中间工作区显示加载的模块界面加载 Image View 后,这里显示摄像头图像
底部状态栏显示模块状态(如话题连接情况)话题连接成功→显示 “Connected”
右侧Config按钮保存 / 加载 rqt 配置(可选)常用模块配置好后,保存为 “my_config”,下次直接加载

四、rqt 核心模块实战(小白一步到位)

每个模块都按 “打开路径 → 操作步骤 → 应用场景” 的逻辑讲解,确保你能跟着做、用得上。

4.1 模块 1:日志显示(rqt_console)—— 调试节点必备

作用:

集中显示所有 ROS 节点的日志输出(INFO/WARN/ERROR),不用开多个终端切换,方便调试。

操作步骤:
  1. 打开模块:顶部Plugins → Logging → Console
  2. 筛选日志(可选):
    • 顶部下拉框选日志级别(INFO/WARN/ERROR),比如只看错误日志;
    • 输入 “关键词” 过滤(如输入 “turtle”,只看小海龟节点的日志);
  3. 启动一个节点测试(比如小海龟):

    bash

    ros2 run turtlesim turtlesim_node  # 启动小海龟仿真器
    
  4. 效果:rqt Console 窗口会实时显示小海龟节点的INFO日志(如 “Starting turtlesim with node name '/turtlesim'”)。
应用场景:
  • 调试节点时,快速定位错误(比如节点启动失败的ERROR日志);
  • 监控多个节点的运行状态(如同时看相机、激光雷达节点的日志)。

4.2 模块 2:图像显示(rqt_image_view)—— 看摄像头图像超简单

作用:

轻量化显示图像话题(如相机、深度图像),比 RViz 少了 “配置参考系” 的步骤,1 步到位。

操作步骤:
  1. 打开模块:顶部Plugins → Visualization → Image View
  2. 选择图像话题:
    • 窗口顶部下拉框会列出所有已发布的图像话题(如/image_raw/rgb/image_raw);
    • 选你要查看的话题(比如 Gazebo 仿真相机的/image_raw);
  3. 效果:窗口实时显示图像,支持鼠标滚轮缩放、点击查看像素值(右下角显示 x/y 坐标和 RGB 值)。
应用场景:
  • 快速验证相机是否工作(真实 USB 相机或 Gazebo 仿真相机);
  • 调试图像处理节点(比如看图像裁剪、滤波后的效果)。

4.3 模块 3:话题发布 / 服务调用(rqt_publisher + rqt_service_caller)—— 临时调试神器

3.1 话题发布(rqt_publisher)—— 不用写代码,临时发话题
作用:

手动发布 ROS 话题(如/cmd_vel控制机器人速度、/turtle1/cmd_vel控制小海龟),适合临时调试。

操作步骤(以控制小海龟为例):
  1. 打开模块:顶部Plugins → Topics → Publisher
  2. 添加话题:
    • 点击左下角+号 → 输入话题名/turtle1/cmd_vel,消息类型geometry_msgs/msg/Twist → 点击OK
  3. 设置话题数据:
    • 展开twist → 展开linear → 把x设为2.0(小海龟前进速度 2m/s);
    • 展开angular → 把z设为1.8(小海龟左转角速度 1.8rad/s);
  4. 启动发布:
    • 勾选话题名前的Enabled复选框 → 小海龟开始运动;
    • 想停止时,取消勾选Enabled即可。
3.2 服务调用(rqt_service_caller)—— 手动触发服务
作用:

手动调用 ROS 服务(如小海龟的/spawn生成新海龟、/kill删除海龟),不用写客户端代码。

操作步骤(以生成新海龟为例):
  1. 打开模块:顶部Plugins → Services → Service Caller
  2. 选择服务:
    • 顶部下拉框选服务名/spawn(小海龟生成服务);
  3. 设置服务参数:
    • x设为5.0y设为5.0(新海龟的位置);
    • theta设为0.0(朝向);
    • name设为turtle2(新海龟名字);
  4. 调用服务:点击Call按钮 → 小海龟窗口生成turtle2
应用场景:
  • 临时控制机器人运动(发布/cmd_vel);
  • 调试服务节点(如验证/spawn服务是否正常工作)。

4.4 模块 4:数据曲线绘制(rqt_plot)—— 直观看数据变化

作用:

把 ROS 话题的数值数据(如速度、位置)绘制成实时曲线,直观观察数据变化趋势(比如机器人速度是否稳定)。

操作步骤(以绘制小海龟速度为例):
  1. 打开模块:顶部Plugins → Visualization → Plot
  2. 添加要绘制的话题字段:
    • 点击左下角+号 → 输入话题字段/turtle1/cmd_vel/linear/x(小海龟 x 轴速度) → 点击OK
  3. 发布速度话题(触发曲线):
    • 用 rqt_publisher 发布/turtle1/cmd_vel,把linear/x0~2之间切换;
  4. 效果:窗口实时绘制 “时间 - 速度” 曲线,x 轴是时间,y 轴是速度值,能看到速度的变化趋势。
应用场景:
  • 调试机器人运动控制(如看速度是否平稳,有无突变);
  • 分析传感器数据(如看激光雷达某一方向的距离变化)。

4.5 模块 5:数据包管理(rqt_bag)—— 录制 / 回放 ROS 数据

作用:

录制 ROS 话题数据到.bag文件(数据包),后续可以回放数据,复现测试场景(比如复现机器人的一次导航过程)。

操作步骤(录制小海龟速度话题为例):
  1. 打开模块:顶部Plugins → Recording → Bag
  2. 录制数据:
    • 点击左上角Record按钮 → 勾选要录制的话题(如/turtle1/cmd_vel) → 点击Start Recording
    • 选择保存路径,输入文件名(如turtle_vel.bag) → 开始录制;
  3. 停止录制:点击Stop Recording
  4. 回放数据:
    • 点击左上角Play按钮 → 选择刚才保存的turtle_vel.bag → 点击Start Playing
    • 启动小海龟节点 → 小海龟会按录制时的速度运动。
应用场景:
  • 复现 bug 场景(录制出问题时的话题数据,后续反复回放调试);
  • 分享测试数据(把.bag文件发给别人,复现你的测试结果)。

4.6 模块 6:节点可视化(rqt_graph)—— 看节点关系图

作用:

生成 ROS 节点、话题、服务的关系图(类似 “思维导图”),直观看到 “哪个节点发布了哪个话题”“哪个节点订阅了哪个话题”。

操作步骤:
  1. 打开模块:顶部Plugins → Introspection → Node Graph
  2. 启动节点测试(如小海龟 + 键盘控制):
    ros2 run turtlesim turtlesim_node  # 节点1:小海龟仿真器
    ros2 run turtlesim turtle_teleop_key  # 节点2:键盘控制
    
  3. 效果:窗口显示两个节点(/turtlesim/teleop_turtle),以及它们之间的话题/turtle1/cmd_velteleop_turtle发布,turtlesim订阅)。
应用场景:
  • 调试节点通信(比如检查 “节点是否正确订阅了话题”“话题名是否写错”);
  • 理解复杂系统的节点关系(如导航系统中 “地图节点”“定位节点”“规划节点” 的通信关系)。

五、rqt vs RViz 终极对比(小白再也不混淆)

维度rqtRViz
核心定位模块化工具集(单一功能轻量化)三维可视化平台(复杂场景一体化)
操作复杂度低(1-2 步加载模块,无需配置参考系)中(需配置 Fixed Frame、显示项、话题)
适用场景1. 快速看图像 / 日志2. 临时发话题 / 调服务3. 画数据曲线4. 录 / 放数据包5. 看节点关系1. 显示机器人三维模型2. 可视化点云 / 激光扫描3. 显示导航路径 / 坐标系4. 多传感器数据融合显示
启动速度快(秒级)较慢(需加载三维环境)
资源占用低(只加载所需模块)高(加载整个三维渲染引擎)

六、复习要点总结(小白必背)

  1. 核心命令

    • 安装:sudo apt install ros-humble-rqt
    • 启动:rqt
    • 加载模块:顶部Plugins → 选择对应模块(如Image View)。
  2. 6 个核心模块及用途

    • 日志显示(Console):看节点日志,调试错误;
    • 图像显示(Image View):轻量化看相机图像;
    • 话题 / 服务(Publisher/Service Caller):临时发话题、调服务;
    • 数据曲线(Plot):绘制度量数据变化;
    • 数据包(Bag):录制 / 回放 ROS 数据;
    • 节点图(Node Graph):看节点通信关系。
  3. 工具选择原则

    • 轻量化、单一功能 → 用 rqt;
    • 三维场景、多数据融合 → 用 RViz。

rqt 是 ROS 调试的 “瑞士军刀”,小巧灵活,掌握这 6 个模块,能解决 80% 的日常调试需求!

http://www.dtcms.com/a/444179.html

相关文章:

  • 广东网站设计费用泰州网站建设方案推广
  • 苏州网站优化找哪家网站开发课程百度云
  • 网站网页切换怎么做WordPress建站主机推荐
  • 找高权重的网站做外链dw旅游网站设计教程
  • 如何用个门户网站做销售在网站后台管理系统里产品说明怎么添加图片
  • 北京网站搭建哪家好自己怎么设计公司的logo
  • wordpress注册不seo的作用有哪些
  • 手机做网站用什么软件wordpress 搭建知识库
  • AI大事记8:深蓝与卡斯帕罗夫——符号主义 AI 的巅峰与局限(下)
  • 苏州做网站的单位网站公司市场营销方案
  • model.export参数说明
  • 北京网站搜索优化北京建网站费用
  • 建设网站呼叫中心有什么好处wordpress没有用户选项
  • 怎么自己做一个网页产品seo优化
  • aspcms手机网站插件公司网站建设济宁
  • 番禺学校网站建设建议做编程网站
  • 怎么制作网站模版如何制作微信公众号里的小程序
  • 微网站是什么时候创建的桂林网络平台开发公司
  • 合肥网站seo优化排名c 做网站后台
  • 友链交换网站常州网警
  • 用什么建网站 cms广西贵港网站建设
  • 标准通网站建设合肥网站建设专业设计
  • 青岛做公司网站的公司怎么开个人网站
  • 如何做游戏推广网站中山精品网站建设案例
  • 信誉好的商城网站建设山东省建设管理中心网站首页
  • 广州网站建设电话大全家庭网络搭建网站
  • 专做白酒的网站深圳网站建设公司业务招聘
  • 网站建设相关工作济源市建设工程管理处网站
  • 网站模版建设教程十大互联网培训机构
  • 个人博客网站制作论文网站红色模板