Gazebo 创建模型(一)

记一笔
Gazebo 有一个自己的模型存储仓库,里面已经有了大量的默认模型,而且有一个活跃的社区。
https://bitbucket.org/osrf/gazebo_models/src/default/

在Gazebo中的模型定义了完整的动力学,运动学,以及可视化的实体。可以有一个或多个插件。模型可以代表任何东西,包含地面和复杂的机器人。

模型数据库的结构

一个模型数据库(Model Database Structure)必须要遵守一个特定的目录结构,Database.config,以及各个模型的根目录,如下:

  • Database 模型数据库的根目录
    • database.config 描述模型的元数据,这个现在都是被CMake自动填充的
    • model_subdirectory 模型的根目录,可以有多个
      • model.config 模型的元数据
      • model.sdf 模型的SDF描述文件
      • model.sdf.erb 模型的Ruby嵌入式(embedded)描述文件
      • meshes 所有COLLADA和STL文件的描述 (可选)
      • materials 包含材质和脚本 (可选)
        • textures 材质:存放图片文件(JPG,PNG,等图片格式)
        • scripts OGRE脚本的目录
      • plugins 插件和头文件的目录(可选)

模型数据库配置

database.config在模型的根目录中,是一个存储信息用的XML文件,这个文件包含模型的许可证信息,模型数据库的名称,以及有效模型的列表,这个文件只有使用在线仓库的时候才被需要,本地的数据库仓库不需要这个文件
这个文件的格式如下:

<?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>


  • 数据库的名称. 被GUI和其他工具要求.


  • 数据库的许可证.


  • 列出数据库模型中所有的URL.


    • 模型的URL,例如: file://model_directory_name

模型配置

每个模型都的根目录下必须要有一个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>
  • 必须
    模型的名字.

  • 必须
    模型的版本.
    Note: 这个不是模型的sdf文件的版本.

  • 必须
    描述这个模型的SDF或者URDF文件的名称。version属性决定了模型使用哪个版本的SDF文件,并且是否要求URDF文件,多个元素可以被用来支持多个版本的sdf文件.

  • 必须

    • 必须
      作者的名字.

    • 必须
      作者的邮箱.

  • 必须
    模型的描述文件应该包含:

    这个模型是啥 (e.g., robot, table, cup)
    插件实干啥的 (functionality of the model)

  • 可选
    这个模型依赖的模型,通常都是其他模型.

    • 可选

      • 必须
        依赖模型的URL.

      • 必须
        模型的版本.

模型的SDF的文件

注:SDF(Simulator Description Format)
每个模型需要一个model.sdf文件,这个文件中需要包含模型的模拟器描述格式。
SDF模型的详解

模型的SDF.ERB文件

标准的SDF文件可以嵌入RUBY的代码。这个选项被用来程序化的生成SDF文件。

你可能感兴趣的:(#,gazebo)