:tocdepth: 1 Gazebo Pluginを使って地図を作成する ================================================================= Gazebo Pluginを使って地図を作成する ----------------------------------------------------------------- このページではGazebo Pluginを使用する方法について説明します。 Gazebo Pluginを作成するのは発展的な内容を含むため、今回はすでに作成済みのプラグインを使用します。 この章で使われているGazebo Pluginのプログラムは :doc:`gazebo_map_builder` にあります。 まずは、プラグインが含まれているパッケージをダウンロードしてビルドしましょう。 .. code-block:: bash cd ~/catkin_ws/src git clone https://github.com/uenota/dronedoc.git cd .. catkin build 次に、地図出力用のプラグインを使えるようにするために、Worldファイルに以下の内容を追加します。 .. code-block:: xml 以下の例の様になればOKです。 .. code-block:: xml model://ground_plane model://sun model://willowgarage 地図を出力する ----------------------------------------------------------------- マップを作りたいワールドを起動します。 .. code-block:: bash roslaunch gazebo_ros empty_world.launch world_name:=$HOME/catkin_ws/src/px4_sim_pkg/worlds/willow_garage.world Gazeboが起動したら以下のコマンドを実行します。 .. code-block:: bash rosrun dronedoc request_publisher 10 0.01 "(-12,0)" 60 50 map.png 255 このコマンドを実行すると、x,y座標が(-12, 0)の点を原点として、50m x 60mの矩形に囲まれた領域の、高さ10mより下にある障害物のマップがカレントディレクトリに ``map.png`` として作成されます。 グリッドの間隔は0.01mで、グリッドが占有されていると判断するしきい値は255です。 また、同時に地図の設定ファイルも ``~/map.yaml`` として生成されます。 このコマンドの使用方法は以下のとおりです。 .. code-block:: bash Usage: rosrun dronedoc request_publisher a1 a2 a3 a4 a5 [a6 a7] a1: height a2: resolution a3: "(origin.x, origin.y)" Origin is the point on lower left corner of map image a4: map_width a5: map_height a6: filename [default="map"] a7: threshold [default=255] 以下のようなワールドに対して上記のコマンドを実行すれば、 .. image:: imgs/willow_garage.png 次のような地図が生成されます。 画像左下が原点です。 .. image:: imgs/willow_garage_map.png