Gazebo手册:5 机器人模型配置文件

发布于:2023-01-21 ⋅ 阅读:(549) ⋅ 点赞:(0)

一、概述

        Gazebo 能够以编程方式或通过 GUI 将模型动态加载到仿真中。 在您下载或创建模型之后,模型就存在于您的计算机上。 本教程描述了 Gazebo 的模型目录结构,以及模型目录中的必要文件。

        Gazebo 中的模型定义了具有动态、运动学和视觉属性的物理实体。 此外,一个模型可能有一个或多个插件,这些插件会影响模型的行为。 一个模型可以代表任何东西,从简单的形状到复杂的机器人; 连地面都是模型。

        Gazebo 依靠数据库来存储和维护可在模拟中使用的模型。 模型数据库是社区支持的资源,因此请上传和维护您创建和使用的模型。

二、模型数据库存储库

模型数据库是在此处找到的 GitHub 存储库。您可以使用以下方法克隆存储库:

 git clone https://github.com/osrf/gazebo_models

三、模型数据库结构

        模型数据库必须遵循特定的目录和文件结构。 模型数据库的根目录包含每个模型的一个目录,以及一个包含模型数据库信息的 database.config 文件。 每个模型目录还有一个 model.config 文件,其中包含有关模型的元数据。 模型目录还包含模型的 SDF 以及任何材料、网格和插件。

        结构如下(在此示例中,数据库只有一个模型,称为 model_1):

数据库

  • database.config :关于数据库的元数据。 现在从 CMakeLists.txt 自动填充
  • model_1 :model_1 的目录
  • model.config : 关于 model_1 的元数据
  • model.sdf : 模型的 SDF 描述
  • model.sdf.erb : Ruby 嵌入式 SDF 模型描述
  • 网格:所有 COLLADA 和 STL 文件的目录
  • material : 一个应该只包含纹理和脚本子目录的目录
  • textures :图像文件(jpg、png 等)的目录。
  • scripts : OGRE 材料脚本的目录
  • plugins:插件源和头文件的目录

插件目录
这是一个可选目录,其中包含模型的所有插件。

网格目录
这是一个可选目录,其中包含模型的所有 COLLADA 和/或 STL 文件。

材料目录
这是一个可选目录,其中包含模型的所有纹理、图像和 OGRE 脚本。 纹理图像必须放在textures 子目录中,而OGRE 脚本文件必须放在scripts 目录中。

数据库配置
这是模型数据库根目录中的 database.config 文件。 该文件包含模型的许可证信息、数据库的名称和所有有效模型的列表。

注意:只有在线存储库需要 database.config 文件。 本地计算机上的模型目录不需要 database.config 文件。

这个 database.config 的格式是:

<?xml version='1.0'?>
<database>
  <name>name_of_this_database</name>
  <license>Creative Commons Attribution 3.0 Unported</license>
  <models>
    <uri>file://model_directory</uri>
  </models>
</database>

 <name> 数据库的名称。 这由 GUI 和其他工具使用。

<license> 数据库中模型的许可证。 我们强烈推荐 Creative Commons Attribution 3.0 Unported 许可证。

<models> 数据库中所有模型 URI 的列表。 <uri> 模型的 URI,这应该是 file://model_directory_name

四、模型配置

每个模型都必须在模型的根目录中有一个 model.config 文件,其中包含有关模型的元信息。 这个model.config的格式是:

<?xml version="1.0"?>

<model>
  <name>My Model Name</name>
  <version>1.0</version>
  <sdf version='1.5'>model.sdf</sdf>

  <author>
    <name>My name</name>
    <email>name@email.address</email>
  </author>

  <description>
    A description of the model
  </description>
</model>

<name> 必需 ,模型的名称。

<version> 必需,此模型的版本。

注意:这不是模型使用的 sdf 版本。 该信息保存在 model.sdf 文件中。

<sdf> 必需,描述此模型的 SDF 或 URDF 文件的名称。 version 属性指示文件使用的 SDF 版本,对于 URDF 不是必需的。 可以使用多个 <sdf> 元素来支持多个 SDF 版本。

<author> 必填

<name> 必需,模型作者的姓名。

<email> 必需,作者的电子邮件地址。

<description> 必填,模型描述应包括:

模型是什么(例如,机器人、桌子、杯子)
插件的作用(模型的功能)


<dependence> 可选,此模型的所有依赖项。 这通常是其他模型。

<model> 可选

<uri> 必需,模型依赖的 URI。

<version> 必需,模型的版本

五 模型文件说明

模型的 SDF
每个模型都需要一个包含模型模拟器描述格式的 model.sdf 文件。 您可以在 SDF 网站上找到更多信息。

模型 SDF.ERB
标准 SDF 文件,可以包含嵌入的 ruby 代码。 此选项用于使用嵌入式 Ruby 代码模板以编程方式生成 SDF 文件。 请注意,ruby 转换应手动完成(erb model.sdf.erb > model.sdf),并且最终的model.sdf 文件必须与model.sdf.erb 一起上传(此文件仅供参考)。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到