九州工業大学 CIR-KIT Blog

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

No.2-1:ロボットを作ってみよう ! (モデルの構成と必要条件 編)

gazebo_logo

検証日時

01/31/2015 (Sat)

概要

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

レベル

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

はじめに

GazeboはプログラムもしくはGUIを通して直接シミュレーションを読み込むことができます。あなたがダウンロードしたり、創造したりすれば、モデルはあなたのコンピュータ上に生成されます。このチュートリアルでは、Gazeboのモデルディレクトリ構成とモデルディレクトリに必要なファイルを説明します。
Gazeboのモデルはダイナミック、キネマティック、ビジュアルプロパティなどにより物理的実体を定義します。さらに、モデルは一つ以上のモデルの挙動に影響を及ぼすようなプラグインを持っています。モデルは単純な形状から複雑なロボット(地面もまたモデルです)のような形状までどんなものでも描画することができます。
Gazeboはシミュレーションに使用するモデルについて記述したり、記録したりするデータベースに依存しています。モデルデータベースはコミュニティーによって供給される資源です。なので、あなたが作ったモデルを是非アップロードしてください。

モデルデータベースレポジトリ

モデルデータベースはここのbitbucketレポジトリにあります。
このレポジトリは以下のコマンドでcloneすることができます。

1
hg clone https://bitbucket.org/osrf/gazebo_models

モデルデータベースの構成

モデルデータベースは特定のディレクトリとファイル構成でなければなりません。各モデルデータベースのルートディレクトリには一つのディレクトリと、モデルについての情報と共にメタデータdatabase.cmfigファイルがあります。それぞれのモデルディレクトリはモデルについてのメタデータを含むmodel.configファイルもあります。更に、モデルディレクトリには、モデルや物質、メッシュ、そしてプラグインのSDFもあります。
この構成は以下のようになっています。(この例では、データベースはmodel_1と呼ばれるモデルだけです。):

1
2
3
4
5
6
7
8
9
10
Database
    ├── database.config:データベースについてのメタデータ。CMakeLists.txtから自動的に生成されます。
    └── model_1:model_1のためのディレクトリ
        ├── materials:texturesとscriptsというサブディレクトリのみで構成されるディレクトリ
        │   ├── scripts:OGREマテリアルスクリプトのディレクトリ
        │   └── textures:イメージファイル(jpg, png, etc...)のディレクトリ
        ├── meshes:COLLADAとSTLファイルのディレクトリ
        ├── model.config:model_1のメタデータ
        ├── model.sdf:model_1のSDFディスクリプション
        └── plugins

pluginsディレクトリ

モデルのすべてのプラグインを含むオプションディレクトリです。

meshesディレクトリ

モデルのCOLLADAやSTLファイルを含むオプションディレクトリです。

materialsディレクトリ

モデルのすべてのテクスチャ、イメージそしてOGREスクリプトを含むサブディレクトリです。テクスチャイメージはtexturesサブディレクトリに、OGREスクリプトファイルはscriptsディレクトリに配置しなければなりません。

Database Config

モデルデータベースのルートディレクトリにあるdatabase.configです.このファイルには、モデルのライセンス情報、データベースの名前、有効なモデルのリストが書かれています。
NOTE : database.configファイルはオンラインレポジトリを利用するときのみ必要です。ローカル(オフライン)コンピュータにすべてのモデルがアルバイは、database.configは必要ありません。
ファイルdatabase.config のフォーマットは以下のようになっています。:

1
2
3
4
5
6
7
8
<?xml version='1.0'?>
<database>
  <name>name_of_this_database</name>
  <license>Creative Commons Attribution 3.0 Unported</license>
  <models>
    <uri>file://model_directory</uri>
  </models>
</database>
  • name データベースの名前です。GUIや他のツールで使用されます。

  • license データベースにあるモデルのライセンスです。Creative Commons Attribution 3.0 Unportedライセンスを強く推奨します。

  • models データベースにあるすべてのモデルのURIリストです。

  • uri モデルのURIです。これは、file://model_directory_nameのように記述しなければなりません。

Model Config

それぞれのモデルにはメタデータがおいてあるルートディレクトリにmodel.configファイルが必ず配置されています。
また、model.configは以下のようなフォーマットで記述されます。:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0"?>

<model>
  <name>My Model Name</name>
  <version>1.0</version>
  <sdf version='1.5'>model.sdf</sdf>

  <author>
    <name>My name</name>
    <email>name@email.address</email>
  </author>

  <description>
    A description of the model
  </description>
</model>
  • name(必須) モデルの名前です。

  • version(必須) モデルのバージョンです。 Note : これは、モデルが使用しているSDFのバージョンではありません。SDFの情報は、model.sdfファイルに記述されています。

  • sdf(必須) モデルをのSDFもしくはURDFファイルの名前です。ファイルが使用するSDFのバージョン情報を定義します。ただし、URDFを使用する場合は、必須ではありません。様々なのsdf要素は、様々なSDFバージョンをサポートするために使用されます。

  • author(必須)

    • name(必須) モデルの編集者の名前です。

    • email(必須) 編集者のEmailアドレスです。

  • description(必須) モデルのdescriptionには以下の要素が必要です。

    • モデルが何であるか(例えば、robot、table、cup、etc…)

    • プラグインが何をするのか(モデルの機能)

  • depend(任意) モデルのすべての依存関係です。これは他のモデルであることが多いです。

  • model(任意)

    • uri(必須) モデルの依存関係のURIです。

    • version(必須) モデルのバージョンです。

Model SDF

すべてのモデルにはモデルのシミュレータを記述するフォーマット情報(Simulator Description Format)が記述されている、model.sdfが必要です。このSDFについてもっと知りたい場合には、SDFのウェブサイトを参照してください。