首页 > 代码库 > gazebo(二) gazebo组成

gazebo(二) gazebo组成

上一节已经安装并且打开gazebo,先不着急使用,我们来看一下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

看到一篇CSDN的博客上有这么一段话:

不久前,师弟问了我一个问题:“师兄,我要控制一个机器人在仿真环境下运动,需要学什么,或者从哪里入手呢?“

这个问题不是那么好回答,urdf——Gazebo——ros_control——MoveIt,这是我在很久后才能给出的一个答案。

那我们就直接吸取前人教训喽,从urdf学起,继续下一篇吧

 

gazebo(二) gazebo组成