1.可以使用一条单独的语句来运行client和server
gazebo
2.Gazebo的组成
(1) World描述文件
World描述文件包含了仿真器中的所有元素,包括机器人,灯光,传感器,静态对象等,World文件的格式是SDF(Simulation Description Format),有一个典型的.world扩展名。
Gazebo服务器(gzserver)通过读取这个文件来生成和构成一个世界,Gazebo里面附带很多worlds例子,这些worlds位于<install_path>/share/gazebo-<version>/worlds。
(2)Model文件
与Worlds文件一样,model文件也使用SDF格式,但只包含一个<model>...</model>。这些文件的目的是为了便于模型的重复使用以及简化World文件,当一个Model文件被创建后,使用以下的SDF语句能将其包含到World文件中。
<include filename="model_file_name"/>
许多模型被提供在在线模型数据库(以及先前版本附带的一些例子模型),我们可以通过数据库来添加模型,所需要的模型内容会在运行时被下载。
(3)环境变量
Gazebo使用许多环境变量来定位文件,并设置server和client之间的通信。Gazebo1.9.0在大多数情况下的默认值是被编译了的,所以开始时不需要去设置任何变量。默认值被包含于如下外部脚本:
source <install_path>/share/gazebo/setup.sh
如果想修改Gazebo的特性,例如通过延伸模型的路径搜索,那么首先应该source外部脚本文件,然后修改需要设置的变量。
(4)Gazebo服务器
server是Gazebo的主干,它以命令行的方式解析World描述文件,然后使用物理和传感器引擎模拟世界。server能通过以下命令开始。
gzserver <world_filename>
注意:server不包含任何图形,仅仅是不停的运行。
<world_filename>能被替换成:a.当前目录;b.绝对路径;c.GAZEBO_RESOURCE_PATH的路径成分。Gazebo附带的Worlds位于<install_path>/share/gazebo-<version_number>/worlds
。
例如,为了使用一个Gazebo附带的empty.world,使用以下的命令:
gzserver worlds/empty.world
(5)图形化客户端
图形化客户端连接了一个运行中的gzserver和可视化元素,这也是一个允许修改正在运行中的仿真器的工具,图形化客户端的运行可使用以下语句:
gzclient
(6)Gazebo command
Gazebo command能结合server和client于一个可执行性文件中,代替先运行gzserver worlds/empty.world,然后运行gzclient。我们能像如下运行:
gazebo worlds/empty.world
3.插件
对于Gazebo界面,插件提供了一种简单又方便的机制。插件能通过命令行的方式载入,或者通过指定world/model文件来载入。在加载过程中,首先加载由命令行指定的插件,然后加载由world/model文件指定的插件。大部分的插件已经被server加载,然而,为了便于自定义GUI(图形用户界面)的生成,部分插件也被图形化客户端(graphical client)加载。
例如,命令行加载插件:
gzserver -p <plugin_filename> <world_file>
同样的机制也可被用于graphical client:
gzclient -p <plugin_filename>
本文靠自己理解,翻译而来,如有错误之处望不吝指教!!!