一、介绍物理模拟器 Gazebo 与可视化工具 Rviz
Gazebo:机器人的'物理模拟器'
Gazebo 是一个 3D 物理仿真环境。它不仅仅有图像,还严格地遵守物理定律,比如重力、摩擦力、碰撞、光线等等。
- 它是什么? Gazebo 是一个3D 物理仿真环境。
- 它做什么?
你可以在 Gazebo 里搭建一个虚拟世界(比如一个有家具的房间、一条马路),然后把你的机器人模型放进去。
- 机器人可以在里面真正地'动起来'。
- 你可以给机器人发送'前进'指令,它会真的在虚拟世界里前进。
- 如果它撞到墙,Gazebo 会模拟出碰撞效果,它会被挡住或弹开。
- 它甚至可以模拟机器人身上的传感器,比如激光雷达会返回虚拟的扫描数据,摄像头会看到虚拟世界的图像。
简单来说,Gazebo 就是:
一个为机器人打造的、高度逼真的'虚拟现实游戏引擎'。它负责'创造世界'和'执行物理规律'。
Rviz:机器人的'数据可视化器'
Rviz 是一个 3D 数据可视化工具。它本身不模拟任何物理现象,它只是一个'显示器'或'仪表盘'。
- 它是什么? Rviz 是一个3D 数据可视化工具。
- 它做什么?
它接收来自机器人程序发出的各种数据,然后用直观的图形方式展示给你看。
- 显示'所见':如果机器人有激光雷达,Rviz 可以把扫描到的点云数据展示成一个轮廓图。
- 显示'所想':如果机器人正在做路径规划,Rviz 可以把机器人计划要走的那条路线用一条彩色的线画出来。
- 显示'所在':它可以显示机器人在地图中的实时位置和姿态。
- 显示'模型':它可以显示机器人自身的 3D 模型,并让模型的关节随着真实数据运动。
简单来说,Rviz 就是:
一个为机器人打造的'超级仪表盘'或'X 光透视眼'。它负责'把机器人的内部状态和感知数据,变得肉眼可见'。
二、使用 Gazebo 和 Rviz
1、打开 Rviz
打开终端:
roslaunch wpr_simulation wpb_simple.launch //打开 Gazebo 仿真
//打开一个新的终端 rviz
2、配置环境
① 启动后界面
② 点击 ADD,在弹出的窗口中找到 RobotModel,选中后点击 OK
③ 重复步骤找到 LaserScan
④ 按图示选择
⑤ 结果
红色细线即为激光雷达检测到的数据。
三、创建获取激光雷达数据的功能包及节点
1、创建功能包和节点
(1)创建功能包
打开终端:
cd catkin_ws/src
catkin_create_pkg lidar_pkg roscpp rospy sensor_msgs

