Skip to main content

17、ROS2 Rviz2使用

1、Rviz2简介

机器人开发过程中,各种各样的功能,如果我们只是从数据层面去做分析,很难快速理解数据的效果,比如机器人模型,我们需要知道自己设计的模型长啥样,还有模型内部众多坐标系在运动过程中都在哪些位置。

再比如机械臂运动规划和移动机器人自主导航,我们希望可以看到机器人周边的环境、规划的路径,当然还有传感器的信息,摄像头、三维相机、激光雷达等等,数据是用来做计算的,可视化的效果才是给人看的。

所以,数据可视化可以大大提高开发效率,Rviz2就是这样一款机器人开发过程中的数据可视化软件,机器人模型、传感器信息、环境信息等等,全都可以在这里搞定。

2、准备工作

  • 如果有实体机器人可以在机器人主控端启动rviz练习本节课程内容,如果没有实体机器人,我们可以通过gazebo仿真的方式启动turtlebot3仿真机器人,来模拟激光雷达、相机等话题,方便接下来的数据可视化

注意: 以下的安装步骤非必须,如果手中有实体机器人,设置好多机通信之后可以直接使用实机的雷达信息,可以自行选择使用实机雷达或虚拟仿真机器人;以下内容适合没有实机的用户使用。

  • 本节课程以仿真机器人为例,教学rviz2的可视化功能,不管是实机还是仿真机器人,rviz2的操作流程都是相同的。
  • 安装tutlebot3模拟器功能包

xxxxxxxxxx sudo apt install ros- ${ROS_DISTRO} -turtlebot3 *

  • 安装ros和gazebo桥接工具

xxxxxxxxxx sudo apt install ros- ${ROS_DISTRO} -ros-gz

  • 设置turtlebot3机器人类型环境变量

xxxxxxxxxx export TURTLEBOT3_MODEL = waffle

  • 启动gazebo仿真环境

xxxxxxxxxx ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

image-20250905164250419

3、Rviz2启动

启动一个终端,使用如下命令即可启动:

xxxxxxxxxx rviz2

如果是在docker中启动,请务必确保已经开启了GUI显示。

image-20231031104047357

4、图像数据可视化

在左侧Displays窗口中点击“Add”,找到Image显示项,OK确认后就可以加入显示列表啦,然后配置好该显示项订阅的图像话题,就可以顺利看到机器人的摄像头图像啦。

image-20231031104244974

  • Fixed Frame选择为base_footprint坐标系,放置坐标变换错误
  • 选择相机彩色画面话题/camera/image_raw
  • 此时我们可以看到Camera窗口中看到当前仿真机器人的视角画面

image-20250905165626951

5、雷达数据可视化

在左侧Displays窗口中点击“Add”,选择Laserscan,然后配置订阅的话题名,此时就可以看到激光点啦

image-20231031104528033

  • LaserScanTopic话题选择/sacn
  • 此时我们就可以看到激光雷达的点云轮廓

image-20250905170346004

6、机器人模型可视化

在左侧Displays窗口中点击“Add”,选择RobotModel

image-20250905170711426

  • 在机器人的DescriptionTopic选项中,选择话题/robot_deseription
  • 此时我们就可以在Rviz2中看到机器人的可视化模型

image-20250905170923074

7、其它数据可视化

rivz_default_plugins中列举了很多常用的数据可视化插件,大家可以一一尝试使用。

image-20231031104758824