type
status
date
slug
summary
tags
category
icon
password

Rviz介绍


💡 什么是 Rviz?

Rviz (ROS Visualization) 是 ROS 系统中功能最强大的 3D 可视化平台
它本身不具备决策能力(不负责计算路径或控制驱动),它的本质是一个数据解析器:它订阅来自机器人传感器(雷达、摄像头)、定位算法(AMCL、SLAM)和导航算法(Nav2)的话题数据,并将这些枯燥的数字转化成 3D 图形显示出来。
 

🛠️ Rviz 界面四大核心板块板

板块名称
位置
功能描述
Displays (显示列表)
左侧
最常用。管理你想看到的数据(地图、模型、雷达等)。每一项都可以单独开关和调参。
3D View (主视图)
中间
3D 渲染窗口,展示机器人当前的物理世界映射。
Views (视图控制)
右侧
控制视角(俯视、跟随、第一人称等)。
Tools (工具栏)
顶部
提供交互工具,如 2D Pose Estimate(设置初始位姿)和 Nav2 Goal(发布目标点)。

📦 导航中必须掌握的插件 (Displays)

wpr_simulation2 导航中,你至少需要开启以下插件:
1. Global Options (全局配置)
  • Fixed Frame: 这是所有数据的基准。导航模式下必须设为 map。如果设为 base_link,地图会绕着机器人转,非常混乱。
 
2. RobotModel (机器人模型)
  • 作用:显示机器人的 3D 形状。
  • 关键点:依赖于 robot_description 话题和正确的 TF 变换。
 
3. Map (地图)
  • 作用:显示静态地图(.pgm 文件内容)。
  • 必改参数:ROS 2 中必须将 Durability Policy 改为 Transient Local
 
4. LaserScan (激光雷达)
  • 作用:显示雷达扫描到的红点(障碍物)。
  • 调试:如果红点和地图墙壁重合,说明定位准确;如果有偏移,说明定位漂移了。
 
5. Costmap (代价地图)
  • 作用:显示机器人周围的“危险区域”(膨胀层)。
  • 注意:包含 Global Costmap(全局避障区域)和 Local Costmap(局部避障区域)。
 

🚦 Rviz 状态颜色学(快速排查报错)

在 Displays 面板中,每个插件左侧的图标颜色代表了其健康状态:
  • 绿色 (Ok):数据接收正常,坐标变换(TF)正确。
  • 🟡 黄色 (Warning)虽然收到了数据,但存在小问题。例如:数据频率太低,或者 Fixed Frame 设置可能有误。
  • 🔴 红色 (Error)致命错误
    • 常见提示No transform from [xxx] to [map]
    • 原因:通常是 TF 树断了,或者对应的节点(如 AMCL)根本没启动。
 

🚀 进阶技巧:Rviz 配置文件 (.rviz)

你是否发现每次打开 Rviz 都要重新添加 Map、RobotModel?
  • 保存配置:配置好所有插件后,点击 File -> Save Config As,保存为一个 .rviz 文件。
  • 自动加载:在 Launch 文件启动 rviz2 节点时,通过参数指定这个文件。
    • 代码示例arguments=['-d', rviz_config_path]
    • 这也是为什么 wpr_simulation2 的脚本一启动就能看到特定界面的原因。
 
 

Rviz故障排除手册


1. 地图加载与显示问题

  • 现象:提示 No map received,或者 Rviz 界面全黑。
  • 原因:
      1. 路径错误:Launch 文件指向了默认安装目录下的空白地图,而不是你保存的地图。
  • 解决方案:
    • 修改 Launch:使用 os.path.expanduser('~') 指向你主目录下的 .yaml 绝对路径。
 

2. 坐标变换与状态报错

  • 现象Global Status: Error,提示 Fixed Frame [map] does not exist
  • 原因
      1. TF 树断裂:机器人的 base_linkmap 之间没有建立联系。
      1. 定位未初始化:Nav2 在没有确定初始位置前,不会发布 map 坐标系。
  • 解决方案
    • 手动对齐:使用 Rviz 工具栏的 2D Pose Estimate 在地图上点击并拖动,手动给机器人指定初始位姿。
 

3. 机器人模型(RobotModel)显示

  • 现象:看不到机器人模型,或者显示的是错误的方块/其他模型。
  • 原因
      1. 插件缺失:没有在 Displays 面板中添加 RobotModel
      1. 话题错误Description Topic 没设为 /robot_description
      1. 环境冲突:旧的编译缓存导致模型路径解析失败。
  • 解决方案
    • 添加插件:在 Rviz 左侧 Add -> RobotModel,并将 Topic 设置正确。
    • 清理编译:如果模型显示异常,运行 rm -rf build install log 后重新执行 colcon build --symlink-install
 

4. 代价地图(Costmap)残留

  • 现象:地图上残留了虚假的障碍物阴影。
  • 原因:传感器历史数据留在缓冲区,或者定位初始化前的错误扫描。
  • 解决方案
    • 指令清理
      • 清除全局代价地图(Global Costmap)
        • 清除局部代价地图(Local Costmap)
        • 面板清理:在 Rviz 中添加 Nav2 Panel 面板,点击 Reset Costmaps 按钮。
       
       
      💡
      有关问题,欢迎您在底部评论区留言,一起交流~
      OpenGauss 数据库环境配置gazebo
      Loading...