【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
在ros开发当中,rviz和tf都是用的比较多的一个工具。前者是为了实现传感器数据和计算结果的可视化,后者主要是为了显示各个传感器、传感器和小车之间的旋转变换。今天我们就了解一下rviz。很多同学搞不清楚rviz和gazebo的关系。正好借助这次机会说说清楚。
应该说,在一开始我们没有robot实车的时候,用gazebo搭建一个仿真环境,利用这个仿真的环境和机器人模型学习ros,这本身是非常方便的。机器人模型上的各种传感器数据、计算结果都可以通过rviz显示出来。等到后期,我们对ros也比较了解,希望通过真实的设备来做一点事情,那么这个时候gazebo就不需要了,但是rviz还是存在的。rviz在这种情况下显示的数据,就不再是gazebo里面的虚拟环境数据,就变成了真实的物理环境数据了。
从这个角度来看,不管是仿真环境,还是真实世界,rviz都是需要很好掌握的。
1、rviz的安装
如果我们已经安装了ros-noetic-desktop-full,那么就不再需要单独安装rviz。
2、启动wpb_simple.launch
为了验证rviz的效果,首先需要加载一下wpb_simple.launch,构建一个虚拟的3d环境。
roslaunch wpr_simulation wpb_simple.launch
3、启动rviz
启动rviz的过程也不复杂,直接输入rosrun rviz rviz即可。不出意外,我们可以看到这样的界面,
之前我们谈到,rviz可以显示各个传感器的数据。而wpb_simple.launch中的小车上面正好有一个lidar。所以可以通过rviz先试一下lidar的数据。
4、rviz中显示lidar数据
要显示数据,做到这几个部分就可以了。第一,在Global Options的Fixed Frame中填写base_footprint;第二,单击左下角的Add按钮,在弹出的对话框中选择LaserScan,
第三,在左侧的LaserScan中,选择Topic为/scan,并且为了方便查看,Size修改为0.03。
这个时候你大概率会看到一段红线,也就是之前3d场景中书柜的区域。当然,为了观察的方便,我们可以把robot也添加进来。方法也很简单,就是继续单击左下角的Add按钮,在弹出的对框中选择RobotModel即可,这样看起来就更加形象生动了。
5、3d场景中添加障碍物
这样一条线看上去不是很过瘾,那我们可以在场景中添加一些障碍物,进一步观察rviz中的红线有没有发生改变。首先切换到gazebo的场景,添加几个正方体、圆柱体,添加的方法就是直接将状态栏中的正方体、圆柱体拖下来即可。假设添加后的场景是这样的,
那这个时候,查看rviz的时候,也会发现对应的红线也发生了变化。假设观察到这个现象,这说明我们的仿真其实是有效的。