构建世界


预计完成时间:5 分钟

4.11   添加模型

你还记得第一单元里提到的,在 Gazebo Sim 中添加模型的三种方式吗?这一节会做同样的事情,不过会讲得更细。

为了演示如何添加模型,这里会在 world 文件中同时使用一个较小的在线模型和一个较大的离线下载模型。

请使用以下两个模型:

  1. 在线模型:Turtle
  2. 离线模型:Gazebo

现在,请把离线模型下载下来,并放到 robot_description 功能包中。

  1. 在浏览器中打开 Gazebo 模型对应的 Fuel 在线模型页面。
  2. 在网页上点击 “Download this model”,把对应的 .zip 文件下载到你的电脑中。
  3. 在 robot_description 功能包内创建一个名为 models 的文件夹。
In [ ]:
cd /workspace/src/robot_description
In [ ]:
mkdir models
  1. 把你电脑里的 zip 文件拖放到 IDE 文件浏览器中显示的这个 models 文件夹里。
  2. 将 zip 文件解压到一个与模型名称完全一致的文件夹中。
In [ ]:
cd models 
In [ ]:
unzip ./Gazebo.zip -d ./gazebo
  1. 然后删除这个模型的 zip 文件。
In [ ]:
rm -f ./Gazebo.zip

接下来,把这些模型添加到世界 SDF 文件 demo_world.sdf 中。请把下面的代码放到 light 标签对应部分之后。

复制并粘贴

In [ ]:
<include>
    <uri>model://gazebo</uri>
    <name>gazebo</name>
    <pose>5 0 0 0 0 3.14159</pose>
</include>

<include>
    <uri>
    https://fuel.gazebosim.org/1.0/OpenRobotics/models/turtle
    </uri>
    <name>turtle_left</name>
    <pose>1 3 0 0 0 3.14159</pose>
</include>

<include>
    <uri>
    https://fuel.gazebosim.org/1.0/OpenRobotics/models/turtle
    </uri>
    <name>turtle_right</name>
    <pose>1 -3 0 0 0 3.14159</pose>
</include>

最后,启动这个 world。不过别急,在启动之前你必须先告诉 Gazebo Sim 去哪里查找本地 Gazebo 模型。

因此,在启动 Gazebo Sim 之前,先导出模型路径。

在 Web Shell 1 中执行

In [ ]:
export GZ_SIM_RESOURCE_PATH=/workspace/src/robot_description/models
In [ ]:
cd /workspace/src/robot_description/worlds
In [ ]:
gz sim demo_world.sdf

当 Gazebo Sim 加载完成后,你应该会看到与下图类似的结果:

添加模型结果

如果你能看到 Gazebo 和两只 Turtle,就说明你已经成功学会了如何在世界中加入模型!

- 检查点 -

此时,你最终的 demo_world.sdf 文件内容应该如下:
demo_world.sdf

- 检查点结束 -