【ROS2】Mapvizのサンプルを作ってみました

Mapvizは地図タイル上に色々表示できるROS2対応ツールです。あらかじめ準備したうえで、定期的にGPS座標(sensor_msgs/NavSatFix型)をPublishするだけで、サクッと次のような表示ができます。

(Mapvizで地理院タイル(全国最新写真(シームレス))を表示・加工して作成)

準備部分で意外とハマるポイントが複数あったので、ハマりどころを全部潰したサンプルを用意してみました。

サンプルのURL:https://github.com/sato-susumu/mapviz_sample

Mapvizを使う場合のポイント

注意点 内容
AutoSave デフォルトで有効。設定は ~/.mapviz_config に自動保存される
設定優先度 起動時に ~/.mapviz_config が存在すると、その設定が自動的に読み込まれる
地図タイル表示 2025年10月時点では プリセット地図タイルStamen Map が使えないため、他の地図ソースに変更が必要
必須トピック 起動後に/local_xy_origin topic が必須(少し特殊で x, y, z に緯度・経度・高度を設定する)
例:大阪駅x=135.495951, y=34.702485, z=5.0
origin設定補助 initialize_origin.py でも設定可能だが、挙動がややわかりづらい


このサンプルで改善できること

  • AutoSave無効化:設定は ~/.mapviz_config に自動保存されない
  • 起動時の設定リセット:古い ~/.mapviz_config を自動削除
  • 地図タイル設定を追加:
  • 用途別にinitialize_origin.pyを使って/local_xy_originトピックを送信するLaunchファイルを用意
  • 診断ツールによる診断:動作不良時は mapviz_doctor.py で何に問題があるのかチェック可能


サンプルの使い方①:GPS座標をPublishして地図表示

まずGPS座標を定期的にPublishします。 手元にPublishする方法がなければ、次のコマンドで、日本の中心「大阪駅」のGPS座標を定期Publishできます。

bash publish_osaka.sh


GPS座標のPublish後、次のコマンドのみでMapviz地図表示ができます。 (原点はLaunchで起動した後に最初に受信したGPS座標になります。)

ros2 launch mapviz_auto.launch.py


サンプルの使い方②:固定原点版の地図表示

次のコマンドで、日本の中心「大阪駅」を原点とするMapviz地図表示ができます。

ros2 launch mapviz_fixed_origin.launch.py


動作確認環境

項目 バージョン
OS Ubuntu 22.04
ROS ROS 2 Humble
Mapviz 2.5.10
Python 3.10

リンク

Mapvizドキュメント
Mapviz GitHub
地理院タイル一覧
国土地理院コンテンツ利用規約