九州工業大学 CIR-KIT Blog

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

No.2-2:ロボットを作ってみよう ! (モデルの作り方 編)

gazebo_logo

検証日時

01/25/2015 (Sun)

概要

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

レベル

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


このチュートリアルでは、すでにBitbucketのアカウントとMercurialのクライアントを取得している前提で進みます。

osrf/gazebo_modelsレポジトリをForkし、Cloneする

https://bitbucket.org/osrf/gazebo_modelsに行き、画面左側のメニューより、Forkを選んでください。オプションはデフォルトをおすすめします。レポジトリをForkした後、Cloneしてください。レポジトリの名前をデフォルト名で選択すると、以下のコマンドでcloneできます:

1
code$ hg clone https://yourname@bitbucket.org/yourname/gazebo_models

ただし、yournameの部分は、あなたのBitbucketのユーザーネームです。

モデルを作る

gazebo_modelsディレクトリの下にあなたのmodelディレクトリを作ってください。このチュートリアルでは、新たに生成するディレクトリの名前をmymodelとします。生成したディレクトリには、必ず、“model.config“`必要です。他のファイル(plugins, makefiles, README, etc…)も必要になってきます。

model.configの中身

ファイルmodel.configは使用するのに必要なSDFファイル(モデルの著作情報、原文情報)の詳細情報を提供します。
単純なmodel.configは以下のようになっています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0"?>
<model>
  <name>Wedge juggler</name>
  <version>1.0</version>
  <sdf version="1.5">model.sdf</sdf>

  <author>
    <name>Evan Drumwright</name>
    <email>drum@gwu.edu</email>
  </author>

  <description>
    A ball-in-wedge juggler.
  </description>
</model>

このodel.configファイルはmodel.sdfに記述され、SDF standard 1.5に準拠したモデルのシミュレート定義(例えば、外観、慣性、キネマティクス、幾何学特性など)を記述しています。様々なバージョンのモデルを定義することが可能であり、異なるバージョンのGazeboで定義したモデルを使用するときに便利です。
例えば、前述のファイルを変更して、異なる3つのバージョンのSDFをサポートするには、以下のように記述します。:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0"?>
<model>
  <name>Wedge juggler</name>
  <version>1.0</version>
  <sdf version="1.5">model.sdf</sdf>
  <sdf version="1.4">model-1.4.sdf</sdf>

  <author>
    <name>Evan Drumwright</name>
    <email>drum@gwu.edu</email>
  </author>

  <description>
    A ball-in-wedge juggler.
  </description>
</model>

レポジトリにディレクトリ(ファイルも)を追加する

レポジトリにファイルを追加するときは、以下のように入力します。:

1
gazebo_modules$ hg add mymodel

または、もしトラックしたくないファイルがある場合は、以下のようにして、ファイルを別々に追加することができます。:

1
2
3
gazebo_models$ hg add mymodel/model.config
gazebo_models$ hg add mymodel/model.sdf
etc...

CommitとPublish

Bitbucketに変更をCommitし、Pushするには、以下のように行います。

1
2
gazebo_models$ hg commit
gazebo_models$ hg push

最終ステップ: Pullリクエストを作る

あなたのBitbucketレポジトリhttps://bitbucket.org/yourname/gazebo_models(yournameの部分はあなたのBicbucketのユーザーネームとし、forkにはデフォルト設定を使用しているとします。これは、あなたがforkしたレポジトリにあります)がpullリクエストを生成します。ウェブページの左側にあるCreate pull requestをクリックしてください。ただし、osrf/gazebo_modelsが矢印の右側に選択されていることを確認してください。他のオプションなども記入し終わったら、Create pull requestをクリックしてください。OSRFがあなたのリクエストを評価し、モデルデータベースにあなたの変更を適用し始めるはずです。