官网的教程:http://gazebosim.org/tutorials?tut=components&cat=get_started
这一部分将描述在运行gazebo仿真过程的每一部分。

《一》world files
环境文件、世界文件
这个world描述文件包含所有在仿真过程的元素模块。包括机器人(robot)、光照、传感器和静态的物体。这个文件的格式是使用SDF格式和以.world为后缀名。
从上节的内容可知gzserver的作用是更新物理环境和产生传感器的数据。所以gzserver会读取world文件去生成和填充一个世界环境。gazebo本身就有很多world的例子。这些例子被下载在<install_path>/share/gazebo-/worlds

《二》model file
模型文件的格式和world文件的格式一样都是使用SDF格式但是只是单独包含…这个标签。这个文件的作用是为了实现模型的重复利用和简化world文件。一旦模型文件被创建,可以在world文件中使用如下的代码去包含该模型。

<include>
 <uri>model://model_file_name</uri>
 </include>

在线模型库提供了大量的模型,你可以在连接网络的情况下下载这些模型。你可以插入以下模型库的模型,在运行仿真时会下载。

《三》环境变量
gazebo使用很多的环境变量去定位文件和设置客户端和服务端的通信。在很多种情况下,这些环境变量都是默认值,这就意味着你不用去修改这些变量。
这里给出这些诶变量:
GAZEBO_MODEL_PATH:gazebo寻找models的路径
GAZEBO_RESOURCE_PATH:gazebo寻找其他资源,比如world文件、media文件
GAZEBO_MASTER_URI:gazebo的节点管理者的URI,有服务器和客户端连接的IP 和 端口
GAZEBO_PLUGIN_PATH:在运行时寻找plugin 共享库的路径
GAZEBO_MODEL_DATA_URI:gazebo下载在线模型的URI
这些的默认值在如下路径的shell脚本

source <install_path>/share/gazebo/setup.sh

《四》gazebo服务器

这个服务器是gazebo的工作空间,能够解析所给的world描述文件,而且仿真使用物理引擎和传感器引擎。
可以使用以下命令启动服务器,这个服务器是没有图像界面的。

gzserver <world_filename>

这个<world_filename> 可以是:
1、关联当前的目录,也就是在打开终端的目录上。
2、一个绝对的路径
3、在一个GAZEBO_RESOUCE_PATH中相关连的路径
4、worlds/<world_name>,<world_name>是一个已经下载在gazebo上的world 文件

比如运行empty_sky.world文件:

gzserver worlds/empty_sky.world

《五》图像化客户端

作用:模块、元素的可视化、图像化更改模型、修改方便
启动:gzclient

《六》服务器和客户端

同时启动两者:

gazebo worlds/empty_sky.world

《七》Plugin

Plugin提供一种简单和方便的机制去和gazebo 通信。
Plugin的使用有两种方式:一是在终端中输入,二是在SDF文件中插入。

gzserver -s <plugin_filename>
gzserver --verbose -s libRestWebPlugin.so
gzclient --gui-client-plugin libTimerGUIPlugin.so