九州工業大学 CIR-KIT Blog

九工大自律移動ロボット製作プロジェクトCIR-KITの技術系ブログ

No.2-5:ロボットを作ってみよう ! (メッシュをインポートする 編)

gazebo_logo

検証日時

01/31/2015 (Sat)

概要

Gazeboのチュートリアル第二弾「Build a Robot」。
このチュートリアルではロボットを作ったり、修正したりします。また、センサ、アクチュエータを搭載した車輪型ロボットを作り、モデルを描画するなどの実践例も行います。
今回はその「Import Meshes」編です。
公式サイトを適当に翻訳しただけですので、あしからず。

レベル

BEGINNER

環境
PC : Lenovo ThinkPad X240
Prosessor : Intel Core i7-4600U (2.10GHz, 4MB, 1600MHz)
RAM : PC3-12800 DDR3L (8GB)
OS : Ubuntu 14| :—: | :———: | :—:
PC : Lenovo ThinkPad X240
Prosessor : Intel Core i7-4600U (2.10GHz, 4MB, 1600MHz)
RAM : PC3-12800 DDR3L (8GB)
OS : Ubuntu 14.04 LTS 64bit
Kernel : 3.13.0-44-generic
Gazebo : Version 5.0.1
参考

GAZEBO Tutorial-Build a Robot

はじめに

このチュートリアルでは、Gazeboへの3Dメッシュのインポートの仕方を説明します。

メッシュを用意する

Gazeboでは、+Zが上(垂直)、+Xが前(スクリーンの奥に向かう方向)、+Yが左となるような右手系の座標系を使用します。

複雑さを減らす

多くのメッシュはとても複雑になります。大量の三角形で構成されるメッシュはその数を減らすか、効率を良くするために、複数のメッシュに分割する必要があります。メッシュを減らす、もしくはメッシュを分割するということについての情報をあなたの3Dメッシュエディタのドキュメントで確認してみてください。

メッシュを作る

最初のステップはメッシュを(0,0,0)に設置し、前方(他の部位でも良い)をX軸にそうように設置します。

メッシュを計測する

Gazeboではメートル法を使用しています。多くのメッシュ(特に3D warehouseで作成したもの)では英語圏の単位系(インチとか)を使用しています。お気に入りの3Dエディタをメートル法でのものとして作成してください。

メッシュをエクスポートする

メッシュを詳細に作成したなら、Colladaファイルとしてエクスポートしましょう。このフォーマットにはすべての3D情報と材質情報が入っています。

メッシュを試す

メッシュを試す最も簡単な方法はmy_mesh.worldのようなメッシュをロードする、簡単なworldファイルを作成することです。以下に示すmy_mesh.daeの部分は自分の好きなメッシュファイルの名前に置き換えてください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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_mesh">
      <pose>0 0 0  0 0 0</pose>
      <static>true</static>
      <link name="body">
        <visual name="visual">
          <geometry>
            <mesh><uri>file://my_mesh.dae</uri></mesh>
          </geometry>
        </visual>
      </link>
    </model>
  </world>
</sdf>

後は、Gazeboを立ち上げるだけです。先ほど作成したmy_mesh.worldのあるディレクトリで以下のように実行しましょう。

1
gazebo my_mesh.world

メッシュをテストする

duck.daeduck.pngを利用することができます。2つのリンク先を先ほど作成したworldファイルと同じディレクトリに保存することで利用できます。duckのメッシュはY軸を上として定義してあるので、sdfファイルに回転を設置します。なので、モデルは、画面の上をモデルの右として表示しています。:

1
2
3
4
5
6
<visual name="visual">
  <pose>0 0 0 1.5708 0 0</pose>
  <geometry>
    <mesh><uri>file://duck.dae</uri></mesh>
  </geometry>
</visual>

実行すると、以下のように見えるはずです。ちなみに、<uri>に示されているディレクトリは、読み込んだworldファイルのあるディレクトリからの相対ディレクトリです。 TutorialMeshDuck