RViz 机器人可视化入门:从原理到实践
> 导读:RViz 是 ROS2 最核心的可视化工具,本文从原理图解、界面操作到完整实践,配合 TurtleBot3 实例,带你全面掌握 RViz!
一、原理图解
1.1 什么是 RViz?
RViz (ROS Visualization) = ROS 可视化工具
| 类比 | 作用 |
|---|---|
| 汽车仪表盘 | 显示机器人状态 |
| 飞机 HUD | 实时显示传感器数据 |
RViz 的两大特性:
- 只读:它本身不是仿真器,只是数据显示器
- 3D 可视化:立体呈现机器人模型、传感器数据、坐标变换
1.2 RViz 数据流架构
flowchart LR
A[机器人节点] -->|发布话题| B[ROS2 网络]
C[传感器节点] -->|发布数据| B
B -->|订阅| D[RViz 可视化]
核心原理:
- RViz 通过 ROS2 话题订阅数据
- 把平面文字数据变成 3D 立体图形
- 显示 TF 坐标变换树,让你理解机器人各部件位置
二、TurtleBot3 机器人说明
2.1 什么是 TurtleBot3?
TurtleBot3 是 ROS2 官方推荐的入门级移动机器人平台,有三个型号:
| 型号 | 特点 |
|---|---|
| burger | 小型机器人,适合教学 |
| waffle | 中型机器人,搭载更多传感器 |
| waffle_pi | 基于树莓派的版本 |
2.2 TurtleBot3 硬件组成(仿真版)
graph TD
A[TurtleBot3] --> B[激光雷达]
A --> C[IMU 惯性测量单元]
A --> D[驱动轮]
A --> E[摄像头]
核心传感器话题:
/scan:激光雷达扫描数据/odom:里程计信息/imu:IMU 数据/tf:坐标变换树
三、RViz 安装与启动
3.1 前提条件
- Ubuntu 24.04 + ROS2 Jazzy
- 已安装 turtlebot3 相关包
sudo apt install -y \
ros-jazzy-turtlebot3-description
3.2 启动 RViz 最简单的方法
注意:必须配合 Gazebo 或真实机器人一起用,RViz 只负责显示!
source /opt/ros/jazzy/setup.bash
rviz2
四、RViz 界面详解
4.1 界面布局
| 区域 | 名称 | 作用 |
|---|---|---|
| 左侧 | Displays 面板 | 添加/配置显示项 |
| 上方 | Fixed Frame | 选择参考坐标系 |
| 中间 | 3D 视图 | 主显示区域 |
| 右侧 | Views 面板 | 控制视角 |
| 左下角 | Add/Remove | 管理显示项 |
截图位置1:RViz 完整界面
(此处插入:标注了各个面板的 RViz 窗口截图)
4.2 必知显示项
| 显示项 | 作用 |
|---|---|
| Grid | 参考网格 |
| RobotModel | 机器人 3D 模型 |
| TF | 坐标变换树 |
| LaserScan | 激光雷达数据 |
| Image | 摄像头画面 |
五、RViz 显示 TurtleBot3 完整实操
5.1 启动仿真环境
终端1:启动 Gazebo(提供数据)
来自 linuxros.cn · linuxROS
source /opt/ros/jazzy/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
终端2:启动 RViz
source /opt/ros/jazzy/setup.bash
rviz2
5.2 逐步配置 RViz
步骤1:设置 Fixed Frame
点击上方 Fixed Frame 下拉菜单,选择:
base_link
截图位置2:Fixed Frame 下拉选择
(此处插入:Fixed Frame 选择 base_link 的截图)
步骤2:添加机器人模型
- 点击左下角 Add
- 找到 RobotModel,点击 OK
- 在左侧面板展开 RobotModel
- 确认 Description Topic 是
/robot_description
截图位置3:RViz 中显示 TurtleBot3 模型
(此处插入:3D 视图中有绿色 TurtleBot3 机器人的截图)
步骤3:添加激光雷达数据
- 点击 Add
- 选 By topic 标签
- 找到
/scan,选 LaserScan - 点击 OK
截图位置4:显示激光雷达红色点云
(此处插入:RViz 显示红色激光点云的截图)
六、键盘控制机器人移动
6.1 启动控制节点
终端3:启动 teleop_keyboard
source /opt/ros/jazzy/setup.bash
ros2 run turtlebot3_teleop teleop_keyboard
6.2 控制按键
| 按键 | 功能 |
|---|---|
| w | 前进 |
| s | 后退 |
| a | 左转 |
| d | 右转 |
| q | 加速 |
| z | 减速 |
| 空格 | 停止 |
注意:必须保持 teleop_keyboard 终端在焦点(选中状态),按键才有效!
6.3 视角操作
| 操作 | 功能 |
|---|---|
| 鼠标左键 | 旋转视角 |
| 鼠标右键 | 放大/缩小 |
| 鼠标中键 | 平移视角 |
| 滚轮 | 放大/缩小 |
截图位置5:键盘控制机器人移动
(此处插入:控制机器人移动时的截图)
七、进阶技巧
6.1 保存配置
RViz 配置好了,下次不想重新配置:
- 点击 File → Save Config As
- 保存为
my_turtlebot.rviz - 下次启动:
rviz2 -d my_turtlebot.rviz
6.2 常用操作快捷键
| 键 | 功能 |
|---|---|
| 鼠标左键 | 旋转 |
| 鼠标右键 | 缩放 |
| 鼠标中键 | 平移 |
八、常见问题解决
| 问题 | 解决 |
|---|---|
| 机器人模型不显示 | Fixed Frame 改为 base_link |
| 全是红色 Error | 检查话题名称是否正确 |
| display.launch.py 报错 | turtlebot3_description 没有这个文件,用 Gazebo 提供数据 |
字数:约 1300 字 | 完成日期:2026-04-26