Gazebo教程(一)——gazebo的组成

Gazebo的仿真由下面这些文件构成。

1、world 文件

world文件包含了所有的仿真需要用到的元件,包括机器人、灯光、传感器以及静态物体。这个文件用的SDF格式,后缀一般是.world。

Gazebo server(gzserver)读取这个文件来建立一个仿真的环境。

Gazebo自带了很多仿真的world文件,位置在<install_path>/share/gazebo-<version>/worlds目录下。

2、model 文件

model文件使用的是SDF格式,但是model文件只能包含一个model的tag(<model>…</model>)。这样的好处是可以减少model调用的复杂度,简化world文件。使用下面的语句可以在world中调用model。

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

3、环境变量

Gazebo使用了很多环境变量来确定文件的位置,并用来建立server和client的连接。一般来说,默认的环境变量就足够了,我们不需要重新设置。

下面是这些环境变量的值:

GAZEBO_MODEL_PATH:gazebo的model位置

GAZEBO_RESOURCE_PATH:gazebo的其他资源位置,包括world文件和media文件等。

GAZEBO_MASTER_URI:Gazebo master的URI,这个标识了server的IP和端口并且告诉client去哪里连接。

GAZEBO_PLUGIN_PATH:plugin库的位置。

GAZEBO_MODEL_DATABASE_URI:Gazebo的在线model库的链接。

这些环境变量包含在shell的脚本中。

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

4、Gazebo Server

server是仿真的引擎,它把world文件通过物理引擎和传感器引擎仿真出来。server可以通过下面的命令开始,必须注意的是server不包含图像信息,所以在终端中看不到任何信息,就是啥也看不出来的意思。

gzserver <world_filename>

可以是当前目录的文件,也可以是指定路径的文件,也可以是GAZEBO_RESOURCE_PATH目录下的文件。

5、Graphical Client

graphical client连接到正在运行的gzserver并将元件显示出来,这也是让你能够修改正在运行的仿真的工具。Graphical client可以通过下面的命令来运行。

gzclient

6、Server + Graphical Client 一起运行

一般通过gazebo命令直接运行gzserver和client,例如下面这样。

gazebo worlds/empty.world

7、Plugins

Plugins提供了一个方便的机制来和Gazebo交互,Plugins可以通过命令行或者在world/model文件中调用。在命令行中的Plugins会先调用,然后才会调用world/model文件中的Plugins。大部分的Plugins是server调用的,但也有一小部分的Plugins是通过graphical client调用用于简化GUI的产生。

命令行的调用方式。

gzserver -s <plugin_filename> <world_file>

client的调用。

gzclient -g <plugin_filename>

发布者

harifun

小学的时候,说自己要当一名科学家!那时候,看到新闻联播在宣传“四化”,立志要为现代化作出贡献!高中立志要做机器人,本科和硕士学的自动化!毕业进入华为,因为是测试岗位而离开,然后进入创业公司做工业扫地机器人和服务式机器人!A轮完成数千万级融资后因家庭原因离开上海,回武汉进入一家上市公司从事激光雷达设计工作!机器人是我一直以来的追求,希望有一天我能实现我的理想!

发表评论

电子邮件地址不会被公开。 必填项已用*标注