LoginSignup
5
6

More than 3 years have passed since last update.

ROSの勉強 第21弾:地図サーバ

Posted at

#プログラミング ROS< 地図サーバ >

はじめに

1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第21弾として,「地図サーバ」を扱う.

環境

仮想環境
ソフト VMware Workstation 15
実装RAM 2 GB
OS Ubuntu 64 ビット
isoファイル ubuntu-mate-20.04.1-desktop-amd64.iso
コンピュータ
デバイス MSI
プロセッサ Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz
実装RAM 8.00 GB (7.89 GB 使用可能)
OS Windows (Windows 10 Home, バージョン:1909)
ROS
Distribution noetic
プログラミング言語 Python 3.8.5
シミュレーション gazebo

地図サーバ

ここでは,前回(https://qiita.com/Yuya-Shimizu/items/515d76ba83d3ce8b208e )作成した地図データをROSで使えるようにmap_serverパッケージのmap_serverノードを使う.YAMLファイルに適用し,その後rvizでの地図表示についても学習する.

map_server

以下に,画像を適宜示しながら,地図についてのトピックを配信する様子を示す.

map_serverにmap.yamlを適用して実行
キャプチャ.PNG
これにより,2つのトピックが配信される.

トピックの確認
キャプチャ2.PNG
上から2つが先ほどの操作により配信されたトピックである.

mapトピック
キャプチャ3.PNG
mapトピックはnav_msgs/OccupancyGrid型のメッセージで地図そのものに対応する.

map_metaトピック
キャプチャ4.PNG
map_metaトピックはnav_msgs/MapMetaData型のメッセージでYAMLファイルのデータに対応する.
次に示すのは,map_metaトピックが配信している内容である.
キャプチャ5.PNG
確かにYAMLファイルあったデータと一致している部分があることが分かる.

なお,ここでは見にくかったため示していないが,mapトピックが配信している内容をechoにより確認したところ,-1,0,1の数字で構成された画像データであった.地図そのものということで,たくさんの数字の羅列でうまく画像を切り取れなかったが,地図そのものに対応していることが文字通りであったと確認できた.

rvizでの表示

以下では,地図をrvizで表示させる様子を,適宜画像を示しながら説明している.
rvizの準備
キャプチャ6.PNG
ここに,画像トピックを呼び込む.

画像トピックの指定
キャプチャ7.PNG

画像の表示
キャプチャ8.PNG
確かに画像が表示された.rviz空間は観る方向を自在に変えられるので,次に示すような俯瞰的な視点にもできる.
キャプチャ9.PNG

地図の編集

画像編集ファイルを使って,地図を編集することもできる.例えば,ロボットに通ってほしくない場所があった場合,そこを黒で塗りつぶしたり,通路をふさぐようにすると,擬似的な障害物としてロボットは判断してくれる.実際に障害物が無くても地図上ではあるということとできる.ここでは示さないが,本当にお絵かき感覚で黒や白で描けばいいらしい.

感想

地図サーバを構築し,rvizでも表示できるようになり,いよいよロボットに地図を使わせる準備に入っており,これからの学習がますます楽しみである.また,最後に地図の編集について示したが,これもまたやってみたい.

参考文献

プログラミングROS Pythonによるロボットアプリケーション開発
        Morgan Quigley, Brian Gerkey, William D.Smart 著
                       河田 卓志 監訳
            松田 晃一,福地 正樹,由谷 哲夫 訳
                  オイラリー・ジャパン 発行

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6