本篇在Ubuntu18.04+ROS melodic环境下完成,其他环境类似相同。

一·简介

  ROS中的工具就是帮助我们完成一系列的操作,使我们的工作更加的高效。ROS工具功能大概有以下几个方面:仿真,调试,可视化。本篇我所写的是关于Gazebo实现的仿真功能。

二·关于Gazebo

  相信大家对于Gazebo并不陌生,经常会用到这个仿真环境,无论是在topic通信还是service通信中,我们的demo都是在Gazebo仿真中进行的。Gazebo是一个机器人仿真工具,模拟器,也是一个独立的开源机器人仿真平台,当今市面还有其他的仿真平台,例如V-Rep,webots等,但是Gazebo不仅仅是开源,也是兼容ROS最好的仿真工具。它提供高保真的物理模拟,一套传感器模型,以及对用户和程序是非常友好的交互方式,能够在复杂的室内和室外环境准确高效的模拟机器人的工作功能,通常与ROS联合使用,因为Gazebo和ROS都由OSRF开源机器人组织来维护,Gazebo支持很多开源的物理引擎,比如典型的ODE;可以进行机器人的运动学,动力学仿真,能够模拟机器人常用的传感器(如激光雷达,摄像头,IMU等),也可以加载自定义的环境和场景。

  Gazebo支持urdf/sdf的格式文件,均用于描述仿真环境,官方也提供了一些常用模块,可以直接导入使用。

三·仿真的意义

  仿真不仅仅是为了做出一个很棒的3D场景,我觉得最重要的是给机器人一个逼近现实的虚拟物理环境,比如光照条件,物理距离等等。设定好具体的参数,让机器人完成我们设定的目标及任务。比如有一些危险因素的测试,就可以让机器人在仿真环境中去完成,例如无人车在交通环境复杂的交通要道的效果,我们就可以在仿真环境下测试各种情况无人车的反应与效果,如车辆的性能,驾驶的策略,车流人流的行为模式等,只有更大程度的逼近现实,才能得出车辆的真实效果。知道无人车在仿真条件下做到万无一失,才能实际放入真实环境去使用,这既避免了危险因素对实验者的威胁,也节约了时间和资源,这就是仿真的意义。

  通常一些不依赖于具体硬件的算法和场景都可以在Gazebo上进行仿真,例如图像识别,传感器数据融合处理,路径规划,SLAM等任务完全可以在Gazebo上仿真实现,大大减轻了对于硬件的依赖。

四.Gazebo的安装

  最好从http://gazebos im.org来安装Gazebo,在ROS官网也可以安装但是个人感觉版本比较老啦,不是很建议。以下我的安装方法是用于要在Ubuntu上独立使用Gazebo,则就选择从Ubuntu Debians操作系统安装。

1.先配置个人的Ubuntu库文件,允许”restricted“,”universe“及”multiverse“。

2.设置电脑能安装来自packages.osrfoundation.org的软件。

3.检索安装Gazebo库文件的关键部分wget http://packages.osrfoundation.org/gazel

4.更新apt-get,安装Gazebo(sudo apt-get update   sudo apt-get install gazebo)

5.检验安装(gzserver)第一次运行可能需要下载一些model,当看到”Publicized address“时表示运行成功。

6.运行gazebo client,出现如下界面,表示安装成功。

五·演示

  打开模拟场景,输入roslaunch robot_sim_demo robot_spawn_launch,

操作说明:1.平移:鼠标左键

                  2.旋转:鼠标滚轮中键

                  3.放缩:鼠标滚轮

                  4.界面左侧是控制面板

                  5.导入模型就在控制面板的insert,可以直接拖入模拟空间,也可以按需自制模型拖入

希望对大家有所帮助!