GAZEBO 中 sdf文件详解

GAZEBO 中 sdf文件详解

1.model模型

  • 一个模型数据库会拥有的文件

(1)database.config:有关数据库的元数据,从CMakeList自动填充『本地不需要』
(2)model文件夹:

  • 一个模型(model文件夹)会有的文件

1)mdoel.config 模型的元数据  『必需』
2)model.sdf 模型的SDF描述 『必需』
3)plugins 插件源文件和头文件的目录
4)model.sd.erb/meshes/materials

1.1 Model.config格式

固定开头

<?xml version>
<model>
<name>名字
<version>版本
<sdf>描述模型的SDF文件的名字
<author>作者
<name>名字
<email>邮件
<description>介绍模型模型是什么插件干了什么
<depend>
<uri>模型依赖关系的URI
<version>该模型的版本

1.2 Model.sdf格式

<?xml version ?>  xml的版本
<sdf version>  sdf的版本,和config里<sdf>的版本要一样呀
<model name> 模型的名字
<pose> 在世界中的位置 x y z pitch yaw roll
<static> 选择模型是否固定
<link>链接 包含模型的一个主体的物理属性,尽量减少模型中链接数量以提高性能和稳定
<collision>: 用于碰撞检查,一个link可以有多个碰撞元素
<geometry> 物体
<box> | <sphere> | <cylinder>形状名字
<size> x y z长度 | <radius>半径 | <radius> & <length>
<surface> 平面
<friction>设置地面摩擦力
<ode> <mu> <slip>
<visual>: 可视化
<geometry> 几何形状
<box>形状名字
<size> x y z长度
<inertial>: 惯性元素,描述了link的动态特性,例如质量和转动惯量矩阵
<mass> 质量
<inertia> !!!注意这两单词不一样呀
<sensor>: 从world收集数据用于plugin
<light>: 光源
<joint>关节 关节连接两个link,用于旋转轴和关节限制等
<plugin>插件  用于控制模型


1.meta data 元数据:描述数据的数据
2.URI 统一资源标识符:uri

  • URL 统一资源定位符
  • URN 统一资源名称
    3.hg:macurial程序的执行命令【轻量级分布式版本控制系统】
    4.XML的注释格式:
 <!-- 注释内容-->

2 在sdf文件中添加传感器

加入一个激光
1.进入到你模型的文件路径
2.打开sdf文件
3.将下面的程序放置到标签的前面。

    <include>
      <uri>model://hokuyo</uri>
      <pose>0.2 0 0.2 0 0 0</pose>
    </include>
    <joint name="hokuyo_joint" type="fixed">
      <child>hokuyo::link</child>
      <parent>chassis</parent>
    </joint>

标志是告诉gazebo去寻找一个模型并且把它插入进去到与母体相关给定的处。在本次当中,我们把hokuyo激光放在机器人的前端,
模块是告诉gazebo这个模型在数据库当中的位置。

把激光头与parent连接起来,它的状态为fixed,防止它移动。

joint模块当中的child是从hokuyo激光的sdf文件当中继承的。hokuyo的激光文件开头:

    <?xml version="1.0" ?>
    <sdf version="1.4">
      <model name="hokuyo">
        <link name="link">

当hokuyo文件被插入之后,它的links的命名空间就是hokuyo,所以写法是hokuyo::

你可能感兴趣的:(gazebo)