九州工業大学 CIR-KIT Blog

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

No.2-6:ロボットを作ってみよう ! (メッシュをつける 編)

gazebo_logo

検証日時

01/25/2015 (Sun)

概要

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

レベル

BEGINNER

環境
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

はじめに

メッシュをモデルに追加すると、外観だけでなく、センサにとってもよりリアルなシミュレーションができます。このチュートリアルでは、カスタムメッシュの定義と、シミュレーションではそれがどのように見えるかを説明します。

メッシュを外観要素として追加する

メッシュを使う主な例は見た目のリアルさを高めるためです。

  1. まずは、my_robotディレクトリまで移動しましょう。
1
cd ~/.gazebo/models/my_robot
  1. model.sdfファイルを好きなエディタで開きましょう。(ここではgeditを使用します。)
1
gedit ~/.gazebo/models/my_robot/model.sdf
  1. 台車の見た目にメッシュを取り付けます。以下のようなビジュアルについての定義を探してください。:
1
2
3
4
5
6
7
    <visual name='visual'>
      <geometry>
        <box>
          <size>.4 .2 .1</size>
        </box>
      </geometry>
    </visual>
  1. メッシュはパソコン上のファイルもしくは他のモデルから引用することができます。今回は、pioneer2dxのメッシュを使用します。以下のようにして、メッシュを変更してください。(ただし、残りはそのままにして編集してください。)
1
2
3
4
5
6
7
    <visual name='visual'>
      <geometry>
        <mesh>
          <uri>model://pioneer2dx/meshes/chassis.dae</uri>
        </mesh>
      </geometry>
    </visual>
  1. 上記の<mesh>によって定義されたpioneer2dxのモデルがあるなら、ローカルの台車モデルを見るために以下のコマンドで確認しましょう。:
1
ls -l ~/.gazebo/models/pioneer2dx/meshes/chassis.dae

もし、meshファイルが存在しないなら、Gazeboの中(Insertタブの下->http://gazebosim.org/models) で少なくとも一回、Pioneer 2DXをスポーンさせて、モデルデータベースからGazeboにモデルを引っ張ってこさせましょう。
もしくは、ローカルフォルダに直接ダウンロードしましょう。

1
2
cd ~/.gazebo/models
wget -R *index.html*,*.tar.gz --cut-dirs=1 --no-parent -r -x -nH http://gazebosim.org/models/pioneer2dx/
  1. Gazeboで、My_Robotモデルをドラッグしましょう。すると、さっきまでの台車が下図のようにpioneer2dxの様な見た目になります。

Mobile_robot_chassis_1

  • 台車は、私達のロボットにほ明らかに大きすぎるので、見た目の大きさを作りなおす必要があります。

  • 見た目の大きさを変更する必要があります。以下のようにmodel.sdfを編集しましょう。
    コピーはしないでください。手書きで追加していくことが、今回のチュートリアルです。

1
2
3
4
5
6
7
8
    <visual name='visual'>
      <geometry>
        <mesh>
          <uri>model://pioneer2dx/meshes/chassis.dae</uri>
          <scale>0.9 0.5 0.5</scale>
        </mesh>
      </geometry>
    </visual>

すると、以下の様になります。

Mobile_robot_chassis_2

  • 今度は、小さくなりすぎました。(z軸方向に)見た目を改善するために、少し上に上げてるよう、以下のようにしてposeを変更しましょう。
    コピーはしないでください。手書きで追加していくことが、今回のチュートリアルです。
1
2
3
4
5
6
7
8
9
<visual name='visual'>
  <pose>0 0 0.05 0 0 0</pose>
  <geometry>
    <mesh>
      <uri>model://pioneer2dx/meshes/chassis.dae</uri>
      <scale>0.9 0.5 0.5</scale>
    </mesh>
  </geometry>
</visual>

すると、以下のようになります。

Mobile_robot_chassis_3

ここまでで、ロボットの<visual>要素をシンプルに変更しました。なので、GUIや、カメラ、深度カメラ、GPUレーザーの様なセンサに基づくGPUやGUIがPioneer 2DXのようになっているはずです。また、私達は、<collision>要素も変更していませんし、外観の幾何学形状は、衝突ダイナミクスエンジンや距離センサなどに使われます。

もっとよく知る

新しいロボットを作るとき、自分のオリジナルのメッシュを追加したくなるでしょう。メッシュをインポートするというチュートリアルでは、Gazeboに最適なフォーマットでメッシュをインポートする方法について取り上げています。

試してみる

  1. 3D Warehouseからメッシュをダウンロードしてください。ただし、メッシュデータはCollada(.dae)フォーマットにすることに注意してください。

  2. メッシュを~/.gazebo/models/my_robot/meshesに配置してください。もしmeshディレクトリが存在しないなら、作成して、その下にメッシュを配置してください。

  3. 台車を置き換えるか、追加するなどして、ロボットにメッシュを使ってみてください。

  4. 注意 : マテリアル(.pngや.jpgの様な拡張子を持つテクスチャファイル)は~/.gazebo/models/my_robot/materials/texturesに配置する必要があります。

Next >> ロボットにセンサを取り付ける