Skip to content

メッシュの挿入

このチュートリアルではGazeboにメッシュを挿入する方法について学びます.

このチュートリアルでは,Gazeboのワールド設定ファイルとしてsdfファイルを,メッシュのファイルとしてdaeを利用します.

ファイルの規格 拡張子 説明
sdf(SDF) .world Gazeboのワールドを記述するための設定ファイル
collada(Collada) .dae 3Dモデル(メッシュ)のファイル.色情報付き
slt(STL) .stl 3Dモデル(メッシュ)のファイル.色情報無し

メッシュの準備

Gazeboでは右手系の座標系を使用します.右手系とはz軸が上向き,x軸が前向き(画面の方向),y軸が左向きの座標系です.

複雑さを減らすために

多くのメッシュは過度に複雑になる可能性があります.数千の三角形からなるメッシュは,その三角形の数を減らすか分割することが効率のために望ましいです.三角形を減らしたり,複数のメッシュに分割するために,あなたが使用してる3Dメッシュ編集ソフトの説明を読んでみてください.

メッシュの中心

最初のステップはメッシュを中心(0,0,0)に置き,(これは主観的になりますが)メッシュの正面がx軸に沿うようにしてください.

メッシュのスケール

Gazeboの距離の単位はメートルです.多くの3D編集ソフトではメートルが基準単位になっていないので,3D編集ソフトの設定を変更して,基準単位をメートルにしてください.

メッシュのエクスポート

メッシュが適切に準備できたなら,Collada ファイルとしてエクスポートしてください.このColladaファイルは3次元情報と色情報を含みます.注意点としてColladaファイルの拡張子は.daeです.

メッシュのテスト

エクスポートしたメッシュをテストする最も簡単な方法は,簡単なワールドファイルmy_mesh.worldをつくり,その中で,メッシュを読み込むことです.下記のmy_mesh.daeを実際のファイル名に置き換えてください.また,注意点としてsdfファイルの拡張子は.worldです.

<?xml version="1.0"?>
<sdf version="1.4">
    <world name="default">
        <include>
            <uri>model://ground_plane</uri>
        </include>
        <include>
            <uri>model://sun</uri>
        </include>
        <model name="my_mesh">
            <pose>0 0 0  0 0 0</pose>
            <static>true</static>
            <link name="body">
                <visual name="visual">
                    <geometory>
                        <mesh><uri>file://my_desh.dae</uri></mesh>
                    </geometory>
                </visual>
            </link>
        </model>
    </world>
</sdf>

実行方法

Gazeboにmy_mesh.worldファイルを渡す方法はいくつかありますが,今回は最も簡単な方法を利用します.すなわち,Gazebo起動時の引数としてmy_mesh.worldファイルを渡す方法です.my_mesh.worldがおいてあるディレクトリに移動して下記のコマンドを打ってください.

gazebo my_mesh.world

テスト用のメッシュ

テスト用のメッシュとしてdock.daedock.pngを使ってください.これらをダウンロードしてworldファイルと同じディレクトリにおいてください.このduckメッシュはy軸が上を向くように設定されているので(Gazeboはz軸が上向き),sdfファイル(my_mesh.world)を編集してdockを回転させてください.

<visual name="visual">
    <pose>0 0 0 1.5708 0 0</pose>
    <geometory>
    <mesh><uri>file://dock.dae</uri></mesh>
    </geometory>
</visual>

duck