水彩(仮)

NULLPointerExceptionガッ

Gazebo入門2

さて.前回は起動方法についてを書きましたが,今回はシミュレートする環境を定義するxmlファイルについて少し扱いたいと思います.

おそらく,GUIから作ったファイルを保存することになると思いますが,構成を少し見てみようという感じです.

まずはこんな感じのファイルを記述します.

f:id:syoamakase:20160603171823j:plain

中央に箱がおいてあります.ちなみにこんな感じに記述します.

<?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="box">
      <pose>0 0 0.5 0 0 0</pose>
      <link name="link">
        <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>        
  </world>
</sdf>

正しくモデルがダウンロード出来ていないようで,私のはちょっとエラーを吐きましたが.

さて,これらの意味を把握する必要はあんまりないと思いますが,まずはこれはxmlで記述されています.

そして設定はSDF(Simulation Description Format)という形式で記述します.

これをいい感じに記述できると,ロボットに任意にカメラをつけたりなんかが出来ます.

少し見て行きましょう.

<?xml version="1.0"?>
<sdf version="1.4">

バージョン情報です.SDFには2016年6月現在1.4から1.6まであります.多少記述が変わることがありますので注意してください.

<world name="default">

ここからworldについてを記述していきます.逆にいえばここの範囲外には何も記述はしません.

    <include>
        <uri>model://ground_plane</uri>
    </include>

    <include>
        <uri>model://sun</uri>
    </include>

モデルを取ってきています.基本的に$HOME/.gazebo/modelsの中にそれぞれのモデルを定義したものがあります.

    <model name="box">
      <pose>0 0 0.5 0 0 0</pose>
      <link name="link">
        <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>    

ここは箱についての定義がなされています.

一応注意する点としてロボット系の制御に関しての知識がある方なら,ご存知と思いますが,

<pose>0 0 0.5 0 0 0</pose>

で記述されているのは(x,y,x)と(roll,pitch,yaw)になります.

ロール,ピッチ,ヨー角が採用されています.詳しくはこのページなどを参考にしてみてください.

これ自体をいじるなんてことはあんまりないと思いますが(ちょっとしたものでもこのファイルだけで2000行はすぐいってしまう),知識として知っておくと違うと思います.