検証日時
01/25/2015 (Sun)
概要
Gazeboのチュートリアル第二弾「Build a Robot」。
このチュートリアルではロボットを作ったり、修正したりします。また、センサ、アクチュエータを搭載した車輪型ロボットを作り、モデルを描画するなどの実践例も行います。
今回はその「Add a Sensor to a Robot」編です。
公式サイトを適当に翻訳しただけですので、あしからず。
レベル
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のモデルデータベースにあるモデルを直接使用した複雑なモデルを作るやり方を説明します。
レーザーを取り付ける
ロボットなどにレーザーを取り付けるには、モデルにセンサを含む物体を取り付けるだけです。
- 前のチュートリアルで、すでに
model
ディレクトリにいるはずです。:
1
|
|
好きなエディタで
model.sdf
を開いてください。ファイルの最後の方にある
</model>
タグの前に、以下の要素を追加してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上記のような<include>
ブロックでは、Gazeboにモデルを探させ、<pose>
で親モデルとの関係を挿入します。今回は、ロボットの前方上方にhokuyo(北陽)
のレーザーモデルを追加します。<uri>
ブロックでは、モデルデータベースのどこを探せばいいのかGazeboに知らせます。(チュートリアルで使用するモデルデータのuriリストをここに示します。これは、mercurial repositoryと同じです。)
新しい<joint>
は、台車ロボットとhokuyo
レーザーをつなげます。<joint>
には<upper>
と<lower>
があり、勝手に動かないように0に設定されています。
また、<joint>
の中にある<child>
というのは、以下のソースから始まるhokuyo model’s SDFから提供されています。
1 2 3 4 |
|
さて、hokuyo
モデルが代入できたら、hokuyo
のリンクにはそれぞれのモデル名と共に名前空間が生成されます。今回は、モデル名はhokuyo
です。なので、hokuyo
モデルのリンクはそれぞれhokuyo::
で始まる名前空間で表現されます。
- 以下のコマンドで、
~/.gazebo/models/
の下にhokuyo
モデルを追加してください。尚、ダウンロードするhokuyo
モデルは、 gazebo_models/hokuyoにあります。
1 2 |
|
今回は、hokuyo
モデルを~/gazebo/models/
に追加しました。なので、model.sdf
の<include>
ブロックにある<uri>
の内容を以下の様にしました。
1
|
|
もし、他のディレクトリに置きたい場合には、~/.gazebo/models/
ディレクトリからの相対パスを記す必要があります。例えば、~/.gazebo/models/gazebo_models/hokuyo/
にhokuyo
モデルの本体を配置したのであれば、<include>
フロックの<uri>
は以下のように記述します。
1
|
|
この指定方法ではうまくいかない例がありましたので、その場合はhokuyo
モデルを一つ上のフォルダにコピーするため、以下のコマンドを入力してください。
1 2 |
|
では、Gazeboを起動してGUIに表示されるInsertという項目を利用してシミュレーションにロボットを追加しましょう。すると、下図のようにロボットにレーザーが付いていると思います。
(オプション)ロボットにカメラを取り付けてみましょう。カメラモデルのURIは
model://camera
です。このURIは以下のフォルダに収められています。
1
|
|
SDFについてのレファレンスはここにあります。