九州工業大学 CIR-KIT Blog

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

No.3-5:環境をつくろう ! (建築エディタ 編)

gazebo_logo

検証日時

02/06/2015 (Tue)

概要

Gazeboのチュートリアル第三弾「Build a World」。 このチュートリアルでは、シミュレーション中の環境をどのように構築するかについて説明します。
今回はその「Building Edito」編です。
公式サイトを適当に翻訳しただけですので、あしからず。

レベル

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 World

はじめに

このチュートリアルでは、建築エディタを使って建築物を作る過程を説明します。

建築エディタを開く。

  1. Gazeboがインストールされていることを確認してください。インストールしていない場合には、Gazeboのインストールをご覧ください。

  2. Gazeboを立ち上げてください。

1
gazebo
  1. Editメニューより、Building Editorを選ぶか、Ctrl+Bを押して、エディタを立ち上げてください。すると、以下のような画面が立ち上がるはずです。 empty_editor

GUIについて

エディタは、3つのエリアからできています。

  1. Palette : 建築物の素材や特徴を選べます。

  2. 2DView : トレースするフロアイメージをインポートできます。また、それに沿って、壁、窓、ドア、階段を追加することができます。

  3. 3DView : 建築物のプレビューを確認できます。色やテクスチャを他の建築物の部品に適用することもできます。

フロアをインポートする

スクラッチでシーンを作るか、すでにあるイメージをトレーするイメージとしてとして使います。このイメージは、例えば、2Dのレーザースキャンイメージ出会ったりもします。
ここをクリックしてフロアイメージの例をダウンロードしてください。手順は以下のとおりです。

  1. 以下のように、先ほどの建築エディタを開いたまま、エディタウィンドウの左側にある、Importボタンを押してください。すると、インポートするイメージのダイアログが出てきます。 building_editor-import

  2. 先ほど手に入れたイメージを選んでください。選んだら、Nextを押してください。 building_editor-next

  3. トレースする壁が、正しい大きさで出力できているか確かめるために、メートルピクセル比[px/m]を設定しなければなりません。比を知っているなら、ダイアログに直接入力して、クリックすればOKです。今回の例では、比がわかっていないとします。しかし、トレースイメージ中の実世界での二点間の距離がわかっているとすると、(例えば。一番長い壁が7.5 [m]であるとか)比を計算することで、使用できるようになります。:

  4. 壁の一端をクリックしてください。すると、以下のように、オリジナルのラインが現れます。

  5. 壁の一端をクリックしてください。すると、ラインが定義されます。

  6. 個々で、ダイアログに距離を単位[m]で入力してください(今回は7.5 [m]です)。すると、ピクセルメートル比は先ほど指定したラインに沿って自動で計算されます。

  7. 完了したら、OKをクリックしてください。 import_step_2

  8. うまく行けば、2DViewの部分に、イメージが表示されます。
    コツ : レベルあ上がれば、それぞれのフロアを同じプロセスでインポートすることができます。

特徴を加える

壁を追加する

以下の手順にしたがって、すべての壁をフロアイメージに沿ってトレースしてください。後でドアや窓を付け加えることを覚えておいてください。一旦は、それらを無視して壁を作ることができます。壁を完璧に作れなくても慌てないでください。後でまた編集することができます。

  1. Palleteの、壁の上でクリックしてください。

  2. 2DViewの上で、壁の端点からクリックをしてください。マウスを動かしたら、壁の長さが表示されます。

  3. 同じ壁のもう一方の端点でクリックし、微調整を行ってください。

  4. 新しい壁を作り始めることなく、ダブルクリックして終了します。
    コツ : 右クリックもしくはEscを押すと、現在の壁の編集をキャンセルできます。
    コツ : デフォルトでは、壁は15°ごと、0.25[m]ごとに増減します。また、存在する壁の端点も同じです。Shiftを押しながら操作すると、これらの制限が解除できます。 add_walls

窓とドアを追加する

Note : 正確には、窓や、ドアは壁にただ穴を開けるだけです。
窓とドアをフロアイメージに沿って追加してみましょう。

  1. PaletteにあるWindowもしくはDoorをクリックしましょう。

  2. 2DViewの上でマウスを動かすと、それらも一緒に動きます。また、それと一緒に、3DViewの上でも動きます。
    コツ : 窓やドアは自動で壁に沿って動きます。壁の端までの距離は動かすごとに、ディスプレイに表示されます。

  3. 気に入ったところでクリックしましょう。 add_windows_doors コツ : 最初に壁を作った後に、フロアプランにある窓やドアの位置を探すのは難しく感じるでしょう。これを簡単にするには、2DViewの上で、フロアプランをもしくは現在までの窓やドアの表示、非表示を選択することができます。 view_floorplan

階段を追加する

このフロアプランには階段はありませんが、階段を一つ追加したいと思います。

  1. PalletのStairsをクリックしてください。

  2. 2DViewの上でマウスを動かすと、階段もそれと一緒に動きます。3DViewに写っているものも同様です。

  3. 気に入ったところでクリックしましょう。 add_stairs

階数を追加する

一階については、だいぶ完成しました。階段の先もないことですし、階数を追加しましょう。
2DViewの上にある、+の上でクリックし、階数を足しましょう。あるいは、2DViewを右クリックし、Add a levelを選びましょう。
新しい階数が追加できたら、フロアは自動で追加されます。すでに下の階に階段が設置されている場合は、建築物がセーブされるときに、フロアに自動で階段用の穴が飽きます。
Note : 現在は、すべてのフロアは矩形です。
コツ : 階数を追加する前に、現在の階数の壁が設置されていることを確認してください。
コツ : 現在は、前の海の壁は、デフォルトの素材で、新しい階の壁としてコピーされます。窓やドアはコピーされません。いらない壁は、手動で削除できます。 add_level

建築物を編集する

Note : 建築物を編集する際は気をつけてください。というのも、現在、エディタにはUndoオプションがありません。
コツ : **すべての長さはメートル単位系です。

階を変更する

階を追加したので、2DViewも新しい階に移動しましょう。2DViewの上にあるリストから選べば、一階にも戻れます。
コツ : 現在2DViewで選択されている階数は3DViewに半島名で表示されています。また、すべての下の階は半透明です。上の階は隠れています。しかし、建築物の一部であるということを覚えておいてください。
階の形状を編集することもできます。

  • 階の形状オプションと一緒にインスペクターを開くために、2DViewをダブルクリックしてください。もしくは、右クリックし、Open level Inspectorを選んでください。

あなたが望まない階を追加したことでしょう。もしくは現在の階をめちゃくちゃにしいてしまい、初めからやり直したいでしょう。

  • 現在の階を削除したいなら、2DViewの上のボタンをオス化、右クリックし、Delete Levelを選んでください。 edit_level

壁を編集する

最初の方に、たくさんの壁を制作しました。しかし、希望通りには作成できていないかもしれません。

  • 2DViewで壁をクリックしてください。
  • ドラッグによって壁を新しい位置に変更してください。
  • 端点をドラッグし、リサイズもしくは回転を行ってください。
    コツ ; デフォルトでは、壁は15°ごと、0.25[m]ごとに増減します。また、存在する壁の端点も同じです。Shiftを押しながら操作すると、これらの制限が解除できます。

  • 階の形状オプションと一緒にインスペクターを開くために、2DViewをダブルクリックしてください。もしくは、右クリックし、Open level Inspectorを選んでください。いくつかのフィールドを編集し、それらの変更を反映するために、Applyを押してください。

  • 2DViewで壁の選択中に、右クリックを押して、Deleteを選ぶか、Deleteを押すと、選択中の壁を削除できます。
    コツ : 壁を編集すると、付属の壁と統合されます。
    コツ : 壁を削除すると、付属の窓と壁も削除します。 edit_walls

窓とドアを編集する

続いては、窓とドアについて編集しましょう。壁で行ったように、多少の違いはありますが、窓やドアを正確に編集することができます。

  • 2DViewで、窓やドアをクリックしてください。
  • 新しいポジションまでドラッグして運んでください。窓やドアは自動で壁に沿って動きますし、壁から話してsってすることはできませんし、窓やドアは壁に穴を開けるだけであると言ったことを忘れないようにしてください。
  • 回転ハンドルを使って回転させてください。現在は、できるだけ、壁に沿おうとしますし、回転原点を変更することはできません。
  • 窓やドアの幅を端点をドラッグすることでリサイズしてください。

  • 階の形状オプションと一緒にインスペクターを開くために、2DViewをダブルクリックしてください。もしくは、右クリックし、Window/Dooeを選んでください。

  • 2DViewで壁の選択中に、右クリックを押して、Deleteを選ぶか、Deleteを押すと、選択中の窓やドアを削除できます。
    edit_windows_doors

階段を編集する

最後に、最初の方に追加した階段を編集しましょう。フロアプランにはないので、好きなように編集しましょう。

  • 2DViewで、階段をクリックしてください。
  • 新しいポジションまでドラッグして運んでください
  • 回転ハンドルを使って90°回転させてください。現在は、できるだけ、壁に沿おうとしますし、回転原点を変更することはできません。
  • 端点をドラッグすることでリサイズしてください。

  • 階の形状オプションと一緒にインスペクターを開くために、2DViewをダブルクリックしてください。もしくは、右クリックし、Window/Dooeを選んでください。

  • 2DViewで壁の選択中に、右クリックを押して、Deleteを選ぶか、Deleteを押すと、選択中の階段を削除できます。
    コツ : 2DViewでは、階段の始まりも終わりも見ることができます。 edit_stairs

色とテクスチャを追加する

さて、すべての物が設置され、リサイズされました。今度は、壁や床、そして階段の色やテクスチャを決定していきます。窓やドアはただ壁に穴を開けているだけなので、物質要素がないということを覚えておいてください。
コツ : デフォルトは、色は白で、テクスチャはありません。
建築物に色やテクスチャを追加する方法は2つあります。

インスペクタから変更する

壁、床、階段に色やテクスチャを追加するには、壁インスペクタ、床インスペクタ、階段インスペクタのそれぞれから追加することができます。まずは、インスペクタを開、物質を選んだら、Applyを押してください。インスペクタを表示するには、それぞれの物体の上でダブルクリックするか、右クリックから選択してください。 color_texture_inspector

パレットから変更する

3DViewで物体をクリックすることで、建築物のアイテムの色やテクスチャをパレットから選ぶことができます。

  1. Paletteから色とテクスチャを選んでください。

  2. 3DViewでマウスを動かすと、選択された物体のpレビューが表示され、選択された要素がハイライトされます。

  3. 選択した用をに適用する、もしくは、3DViewを右クリックする、もしくは、マテリアルモードを終了するために、物体の外をクリックすると、操作が完了します。

color_texture_palette Gazebo5.1の新機能 : カスタムカラーを選ぶには、paletteのMoreをクリックします。すると、カスタムカラーを決定するためのダイアログが開きます。
私の環境は、Ver.5.0.1なので、確認できません。
下図は、公式チュートリアル掲載のものです。 custom_color コツ : それぞれの物体には、一つの色とテクスチャしか適用できません。同じ物体はすべて同じ見た目になります。
Note : 現在は、カスタムテクスチャをこのエディタで使用することはできません。

建築物を保存する

セーブをすると、SDFとConfigファイルを直接生成します。
セーブする前に、Paletteで建築物の名前を決定してください。
edit_name
トップメニューでファイルを選び、Save Asもしくは、Ctrl+Sでセーブしてください。モデルを保存する場所を聞くダイアログが出現します。
コツ : アドバンスオプションでは、メタデータを設定することもできます。
save_dialog

終了する

Note : 一度、建築エディタを終了すると、建築物を編集することはできません。
建築物を製作し、保存したら、ファイルのところへ行き、建築エディタを終了させてください。
あなたの建築物がメインウィンドウに表示されます。将来的には、建築物をInsertタブで見つけることができます。 saved_building final_model_angles

最後に

私も、学校の施設を作って遊んでみました。元にした見取り図は、案内板にあったので、スマホで写真をとって作りました。シミュレーションなら、PR2も遊びに来てくれますw
奥に見えるのはWillowGarageのモデルです。 control-1st-2D capture