ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

【ROS】作成したロボット部品を表示してみる【 Gazebo,SDF,XML】

urdf/XML - ROS Wiki

公式のURDFの説明を見ても、私は全く理解できない。 というか挫折したのでSDFでとりあえずやってみることにした。

nullpo24.hatenablog.com

nullpo24.hatenablog.com

ロボットディスクリプション

URDF ver

urdf/XML - ROS Wiki

f:id:nullpo24:20190603222302p:plain

SDF ver

http://sdformat.org/spec?ver=1.6&elem=link
http://sdformat.org/spec?ver=1.6&elem=collision
http://sdformat.org/spec?ver=1.6&elem=joint

f:id:nullpo24:20190603222744p:plain

とりあえず表示してみる

ここにロボットの部品が5つあります。
(タイヤはSketchfab - The best 3D viewer on the webから拝借)

f:id:nullpo24:20190525200716p:plain とりあえず、これらをblenderCOLLADA(.dae)形式でエクスポートしました。 f:id:nullpo24:20190603223539p:plain

1.それぞれの部品について記述

f:id:nullpo24:20190604001511p:plain

ファイル作成と編集

$ touch test.world
$ gedit test.world

世界の構成を書く

太陽と平面インクルードする

<?xml version="1.0"?>
<sdf version="1.4">
  <world name="default">
    <include>
      <uri>model://ground_plane</uri>
    </include>
    <include>
      <uri>model://sun</uri>
    </include>

   ここにmodelを記述する

  </world>
</sdf>

1-1.modelを記述

<model name="my_mesh1">

</model>

1-2.linkを記述

<link name="body">

</link>

1-3.visual要素を記述

        <visual name="visual">
          <geometry>
            <mesh><uri>file://Body.dae</uri></mesh>
          </geometry>
        </visual>

※Body.daeはtest.worldと同一ディレクトリを想定しています。

記述結果

pose要素(モデルの位置)とstatic要素を付加して合体

<?xml version="1.0"?>
<sdf version="1.4">
  <world name="default">
    <include>
      <uri>model://ground_plane</uri>
    </include>
    <include>
      <uri>model://sun</uri>
    </include>

    <model name="my_mesh1">
      <pose>0 0 0  0 0 0</pose>
      <static>true</static>
      <link name="body">
        <visual name="visual">
          <geometry>
            <mesh><uri>file://Body.dae</uri></mesh>
          </geometry>
        </visual>
      </link>
    </model>

  </world>
</sdf>

※URDFで記述する場合はさらにRootを決めて、Joint作成しないとエラーになります(私はここでめんどくさくなったからURDFやめた)。

2.実行

他のモデルも位置をずらして表示して見た。

$ gazebo test.world

実行結果

f:id:nullpo24:20190604001450p:plain ...VR内で別個に作成したので大きさがやっぱりおかしい。
拝借したタイヤは表示しきれてないし。