欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转Gazebo:创建机器人系列教程 - 第二步:动手制作SDF模型实例

最编程 2024-07-22 20:11:30
...

Step 1: 收集所需基本元素的网格(mesh)描述

此步骤涉及收集构建模型所需的所有必要三维网格文件。 Gazebo提供了一组简单的形状的描述:长方体、球体和圆柱体。 如果您的模型需要更复杂的内容,请继续阅读。

网格来自许多地方。 谷歌的3D仓库是一个很好的3D模型存储库,你可以从那里得到所需的3D网格文件。您也可以使用3D建模器(如BlenderSketchup)创建自己的网格文件。

Gazebo要求网格文件格式为STL、COLLADA或OBJ,COLLADA和OBJ是首选格式。

小贴士: 使用三维建模软件移动每个网格,使其中心放置在坐标原点。 这将使模型在Gazebo中的放置变得非常容易。
小贴士: Collada和OBJ文件格式允许将材质附加到网格。使用此机制可以改善网格的视觉外观。
小贴士: 保持网格简单。如果计划将网格用作碰撞元素,则尤其如此。通常的做法是使用低多边形网格作为碰撞元素,而使用高多边形网格作为视觉元素。一个更好的实践是使用一个内置的形状(长方体、球体、圆柱体)作为碰撞元素。

Step 2: 创建你的模型 SDF 文件

从创建极其简单的模型文件开始,或复制现有的模型文件。 这里的关键是从您知道可以工作或可以非常容易调试的东西开始。

以下是一个非常基本的长方体模型文件,其中只有一个单位大小的长方体形状作为碰撞几何体,并且具有单位惯性的相同单位长方体视觉效果:

创建box.sdf模型文件

gedit box.sdf

将以下内容复制到box.sdf中:

<?xml version='1.0'?>
<sdf version="1.4">
  <model name="my_model">
    <pose>0 0 0.5 0 0 0</pose>
    <static>true</static>
    <link name="link">
      <inertial>
        <mass>1.0</mass>
        <inertia> <!-- inertias are tricky to compute -->
          <!-- http://gazebosim.org/tutorials?tut=inertia&cat=build_robot -->
          <ixx>0.083</ixx>       <!-- for a box: ixx = 0.083 * mass * (y*y + z*z) -->
          <ixy>0.0</ixy>         <!-- for a box: ixy = 0 -->
          <ixz>0.0</ixz>         <!-- for a box: ixz = 0 -->
          <iyy>0.083</iyy>       <!-- for a box: iyy = 0.083 * mass * (x*x + z*z) -->
          <iyz>0.0</iyz>         <!-- for a box: iyz = 0 -->
          <izz>0.083</izz>       <!-- for a box: izz = 0.083 * mass * (x*x + y*y) -->
        </inertia>
      </inertial>
      <collision name="collision">
        <geometry>
          <box>
            <size>1 1 1</size>
          </box>
        </geometry>
      </collision>
      <visual name="visual">
        <geometry>
          <box>
            <size>1 1 1</size>
          </box>
        </geometry>
      </visual>
    </link>
  </model>
</sdf>

请注意,长方体的原点位于长方体的几何中心,因此为了使长方体的底部与地平面齐平,添加了原点\<pose\>0 0 0.5 0 0 0\</pose\>以将长方体提升到地平面上方。

小贴士: 以上示例将简单长方体模型设置为静态,这将使模型不可移动。此功能在模型创建期间非常有用。创建完模型后,如果要移动模型,请将<static>标记设置为false。

Step 3: 添加部件到模型SDF文件

对于一个.sdf文件,可以慢慢地开始增加更多的复杂性。

以下是添加功能的推荐顺序:

  1. 添加一个 link.
  2. 设置碰撞元素。
  3. 设置视觉元素。
  4. 设置惯性属性。
  5. 转到#1,直到添加了所有链接。
  6. 添加所有关节(如果有)。
  7. 添加所有插件(如果有)。

对于每个新添加的内容,请使用图形客户端加载模型,以确保您的模型是正确的。 但是,仅有box.sdf文件不足以将模型加载到图形客户端。 您还必须正确设置模型目录,这将在下一个教程:制作移动机器人中学习。