九州工業大学 CIR-KIT Blog

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

No.2-7:ロボットを作ってみよう ! (ロボットにセンサを取り付ける 編)

gazebo_logo

検証日時

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 Tutorial-Build a Robot

はじめに

このチュートリアルでは、他の複雑なモデルで構成されたコンポーネントに接続し、タグを使用することによって、Gazeboのモデルデータベースにあるモデルを直接使用した複雑なモデルを作るやり方を説明します。

レーザーを取り付ける

ロボットなどにレーザーを取り付けるには、モデルにセンサを含む物体を取り付けるだけです。

  1. 前のチュートリアルで、すでにmodelディレクトリにいるはずです。:
1
cd ~/.gazebo/models/my_robot
  1. 好きなエディタでmodel.sdfを開いてください。

  2. ファイルの最後の方にある</model>タグの前に、以下の要素を追加してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    <include>
      <uri>model://hokuyo</uri>
      <pose>0.2 0 0.2 0 0 0</pose>
    </include>
    <joint name="hokuyo_joint" type="revolute">
      <child>hokuyo::link</child>
      <parent>chassis</parent>
      <axis>
        <xyz>0 0 1</xyz>
        <limit>
          <upper>0</upper>
          <lower>0</lower>
        </limit>
      </axis>
    </joint>

上記のような<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
    <?xml version="1.0" ?>
    <sdf version="1.4">
      <model name="hokuyo">
        <link name="link">

さて、hokuyoモデルが代入できたら、hokuyoのリンクにはそれぞれのモデル名と共に名前空間が生成されます。今回は、モデル名はhokuyoです。なので、hokuyoモデルのリンクはそれぞれhokuyo::で始まる名前空間で表現されます。

  1. 以下のコマンドで、~/.gazebo/models/の下にhokuyoモデルを追加してください。尚、ダウンロードするhokuyoモデルは、 gazebo_models/hokuyoにあります。
1
2
cd ~/.gazebo/models/
hg clone https://bitbucket.org/osrf/gazebo_models

今回は、hokuyoモデルを~/gazebo/models/に追加しました。なので、model.sdf<include>ブロックにある<uri>の内容を以下の様にしました。

1
<uri>model://hokuyo</uri>

もし、他のディレクトリに置きたい場合には、~/.gazebo/models/ディレクトリからの相対パスを記す必要があります。例えば、~/.gazebo/models/gazebo_models/hokuyo/hokuyoモデルの本体を配置したのであれば、<include>フロックの<uri>は以下のように記述します。

1
<uri>model://gazebo_models/hokuyo</uri>

この指定方法ではうまくいかない例がありましたので、その場合はhokuyoモデルを一つ上のフォルダにコピーするため、以下のコマンドを入力してください。

1
2
cd ~/gazebo/models/gazebo_models
copy -rf hokuyo ../
  1. では、Gazeboを起動してGUIに表示されるInsertという項目を利用してシミュレーションにロボットを追加しましょう。すると、下図のようにロボットにレーザーが付いていると思います。 Add_laser_pioneer

  2. (オプション)ロボットにカメラを取り付けてみましょう。カメラモデルのURIはmodel://cameraです。このURIは以下のフォルダに収められています。

1
ls ~/.gazebo/models/camera/

SDFについてのレファレンスはここにあります。

Next >> 簡単なグリッパをつくる