Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
jazzy

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro lyrical showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

mapoi_rviz_plugins package from mapoi repo

mapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui

ROS Distro
humble

Package Summary

Version 0.6.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/shimz-robotics/mapoi.git
VCS Type git
VCS Version main
Last Updated 2026-07-15
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Rviz2 plugins for mapoi

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_rviz_plugins

English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。

mapoi 用の RViz2 プラグインパッケージです。GUI から地図切替・POI 選択・自律走行の操作、および POI の編集ができます。

プラグイン

MapoiPanel(パネルプラグイン)

RViz2 のパネルとして追加できるナビゲーション操作パネルです。

  • 地図の切替をドロップダウンから選択
  • 地図に応じた目的地(waypoint タグ付きの POI。landmark タグ併用の POI は除外)をリストから選択
  • ルートをリストから選択して走行開始
  • 選択した POI の位置に自己位置を修正(Initial Pose の設定)
  • 選択した POI への自律走行を開始
  • 自律走行の一時停止・再開・停止
  • ナビゲーション状態の表示(navigating, succeeded, aborted, canceled, paused, map_switching, map_switch_succeeded, map_switch_failed, backend_unavailable, rejected。各値の意味は mapoi_server READMEmapoi/nav/status 項を参照)
  • 選択中の POI/ルートを RViz2 上でハイライト表示

パブリッシャー

トピック名 説明
mapoi/nav/goal_pose_poi std_msgs/String ゴール POI 名の配信。実際の Nav2 action 起動は navigation bridge (mapoi_nav2_bridge ほか) が担当
mapoi/nav/pause std_msgs/String ナビゲーションの一時停止
mapoi/nav/resume std_msgs/String ナビゲーションの再開
mapoi/nav/cancel std_msgs/String ナビゲーションのキャンセル
mapoi/nav/route std_msgs/String ルート走行の開始
mapoi/nav/switch_map std_msgs/String 選択した地図への切替要求。実際の地図切替は navigation bridge が担当
mapoi/highlight/goal std_msgs/String ゴールマーカーのハイライト
mapoi/highlight/route std_msgs/String ルートマーカーのハイライト

サービスクライアント

サービス名 説明
mapoi/get_maps_info GetMapsInfo 地図ドロップダウン用の現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 目的地ドロップダウン用の POI リストの取得
mapoi/get_routes_info GetRoutesInfo ルートドロップダウン用のルートリストの取得
mapoi/get_route_pois GetRoutePois ハイライト表示用に選択ルートの POI を取得
mapoi/request_initial_pose RequestInitialPose Initial Pose 設定時に mapoi_server へ publish を依頼 (#211)。panel は直接 mapoi/initialpose_poi を publish しない

サブスクライバー

トピック名 説明
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知
mapoi/nav/status std_msgs/String ナビゲーション状態の表示("status" / "status:target" 形式、transient_local QoS)。target が含まれていれば後起動 panel でも “Navigating: target” / “Arrived: target” 等を復元可能
mapoi/nav/backend_status mapoi_interfaces/NavigationBackendStatus navigation backend の readiness と liveliness に応じて走行操作 UI(Run Goal / Run Route / Pause / Resume / Stop ボタンと地図ドロップダウン)を enable/disable (#198, #209)。QoS は msg contract (#208) に従う。docs/backend-status.ja.md 参照
mapoi/localization/backend_status mapoi_interfaces/LocalizationBackendStatus localization backend の readiness と liveliness に応じて Initial Pose ボタンを enable/disable (#209)

PoiEditor(パネルプラグイン)

POI の情報を表形式で表示・編集・保存できるパネルです。

  • 現在の設定ファイルから POI 情報を読み込み
  • 編集対象の地図をドロップダウンから切替(mapoi/select_mapmapoi_server の編集 context を切替。稼働中ロボットの地図は切替えない)
  • 表形式での POI 情報の確認・編集(name, pose, tolerance, tags, description の 5 column 構成、#158)
    • pose column は x, y, yaw 形式(例: 1.00, 2.00, 0.79、x/y は m、yaw は rad、表示は小数点以下 2 桁)
    • tolerance column は xy, yaw 形式の 1 column 統合表記(例: 0.50, 0.79、xy は m、yaw は rad、表示は小数点以下 2 桁)
      • validation 制約: xy >= 0.001 m / 0.001 rad <= yaw <= 2π rad
      • max 2π rad (= 360°) は、deg → rad 単位変更 (#158) 後の旧 deg 入力 (例: 45) を誤って rad として入れたケースを弾くガード
    • description は末尾 column(長文 OK、横幅圧迫を回避)
  • POI の追加・コピー・削除
  • 編集の undo/redo(行の追加・コピー・削除、セル編集、行並べ替え)を Undo/Redo ボタンまたは Ctrl+Z / Ctrl+Shift+Z で実行可能 (#407, #435)
    • ボタンは focus の有無に関わらず動作する。キーボードショートカットはパネル内に focus がある時のみ有効(先に表のセルをクリックして focus を入れる)
    • 履歴は保存成功時・タグフィルタ変更時・表の全再構築時(地図切替や保存後の自動リロードなど)にクリアされる
  • タグによるフィルタリング表示
  • TagHelperComboBox によるタグ入力補助(システムタグは [S] 表記)
  • バリデーション付き保存(名前重複・座標形式・tolerance.xy チェック、未定義タグの警告)
  • MapoiPoseTool と連携した位置入力
  • 保存後に mapoi_server の設定を自動リロード

サービスクライアント

サービス名 説明
mapoi/select_map SelectMap mapoi_server の編集 context を選択した地図へ切替(稼働中ロボットの Nav2 地図は切替えない)
mapoi/get_maps_info GetMapsInfo 現在地図名・地図リストの取得
mapoi/get_pois_info GetPoisInfo 表に表示する POI リストの取得
mapoi/get_tag_definitions GetTagDefinitions TagHelperComboBox と保存時 validation 用の system/user タグ定義の取得
mapoi/reload_map_info std_srvs/Trigger 保存後に mapoi_server へ設定のリロードを依頼

サブスクライバー

トピック名 説明
mapoi_rviz_pose geometry_msgs/PoseStamped MapoiPoseTool からの位置入力
mapoi/config_path std_msgs/String 設定ファイルパスの変更検知

MapoiPoseTool(ツールプラグイン)

RViz2 のツールバーに追加できるポーズ指定ツールです。ショートカットキー: i

  • RViz2 上でクリック&ドラッグして位置・姿勢を指定
  • PoiEditor の選択行に位置を反映

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package mapoi_rviz_plugins

This per-package file lists only the changes affecting mapoi_rviz_plugins (the MapoiPanel / PoiEditorPanel panels and the RViz PoseTool). The mapoi_rviz2_publisher node lives in mapoi_server, so its rendering changes are recorded there. Full project-level narrative: root CHANGELOG.rst / the GitHub Releases page.

Forthcoming

0.6.0 (2026-07-15)

  • Add Undo/Redo to PoiEditorPanel via QUndoStack, covering row add/copy/delete, cell edits, and row reordering (Ctrl+Z / Ctrl+Shift+Z, shortcuts scoped to panel focus) (#407).
  • Add Undo/Redo buttons to the PoiEditor toolbar, enabled via canUndoChanged / canRedoChanged, since the Ctrl+Z-only shortcut from #407 gave no visible affordance (#435).
  • Add an unsaved-edit guard to PoiEditorPanel: track a dirty flag from cell edits/row add/delete/reorder, confirm before an external mapoi/config_path update discards them, and warn before Save overwrites content that changed on disk since load (#399).
  • Add a POI name search filter to the PoiEditor table (case-insensitive substring match via setRowHidden, combinable with the existing tag filter) (#405).
  • Add Nav/Loc backend connection status badges to MapoiPanel, derived from NavigationBackendStatus / LocalizationBackendStatus liveliness and reason (#400).
  • Surface operation failures and successful initial-pose requests as a transient UI notice instead of RCLCPP-log-only feedback, covering request_initial_pose reject/timeout and get_route_pois failure (#401).
  • Show route-driving progress in MapoiPanel by subscribing to mapoi/events and displaying the passed POI name with an n/total count (#406).
  • Show a transient notice for commands rejected while navigating by subscribing to the existing mapoi/nav/command_rejected topic, auto-clearing after 5 s (#398).
  • Keep the Route progress: — / Notice: — / Nav status: — idle placeholders permanently visible instead of blank labels, via new SetRouteProgressIdle / SetNoticeIdle / SetNavStatusIdle helpers (#451).
  • Translate the MapoiPanel UI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (two ValidatePois messages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431).
  • Fix an uninitialized is_table_color_ bool in PoiEditorPanel that could read as true when the mapoi service is unavailable, and add a bounds check on the shadow_ write in TableChanged to prevent an out-of-bounds vector write (#432).
  • Guard YAML::LoadFile in SaveButton against an unreadable or malformed map file, which previously threw uncaught and crashed RViz (#429).
  • Validate the RViz Fixed Frame in PoiPoseCallback (Set Mapoi Pose) and reject the pose with a warning dialog unless the frame is map, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430).
  • Fix PoiPoseCallback writing the Set Mapoi Pose result into the hardcoded column index 2 instead of kColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427).
  • Add a timeout to eight spin_until_future_complete service calls in the panel and editor that could previously hang the UI thread indefinitely (#404).
  • Extend the unsaved-edit confirmation guard to tag filter changes, which previously discarded edits (and cleared the undo stack) on any filter change, even reselecting the same tag (#428).
  • Clear a cell's green edited-mark once Undo restores its value to the clean_texts_ baseline (last full rebuild / save), instead of leaving it marked as changed (#445).
  • Fix New/Copy inserting rows at the logical index instead of the visually selected position after a drag reorder, using visualIndex / moveSection to insert under the selected row (#434).
  • Remove the PoiTable header's sort indicator, which implied an active ascending sort that was never actually enabled (#433).
  • Add a bottom vertical spacer to mapoi_panel.ui to absorb excess dock height instead of stretching the gaps between status labels (#446).
  • Add a path+mtime content-diff guard to ConfigPathCallback in both panels (mirroring mapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-published mapoi/config_path is unchanged (#403).
  • Split mapoi_panel.cpp and poi_editor.cpp into per-responsibility translation units (mapoi_panel_nav_control.cpp / mapoi_panel_backend_status.cpp / mapoi_panel_config.cpp / mapoi_panel_nav_status.cpp / poi_editor_tags.cpp / poi_editor_save.cpp / poi_editor_display_settings.cpp) and convert calcYaw / join / SplitSentence into free functions in poi_editor_helpers.hpp; internal refactor, no behavior change (#397).

0.5.0 (2026-07-10)

  • Render a yaw-agnostic POI tolerance (tolerance.yaw >= pi) as a filled disc in the RViz view instead of omitting the sector (#267, #268, #271).
  • Update MapoiPanel to check response.success on GetRoutePois (now returning success / error_message) instead of assuming a completed call succeeded (#342).
  • Route the RViz panel's initial-pose publishing through the new

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange