|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_rviz_plugins at Robotics Stack Exchange
|
mapoi_rviz_plugins package from mapoi repomapoi mapoi_interfaces mapoi_rviz_plugins mapoi_server mapoi_turtlebot3_example mapoi_webui |
ROS Distro
|
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
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_serverREADME のmapoi/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_mapでmapoi_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 として入れたケースを弾くガード
- validation 制約:
- description は末尾 column(長文 OK、横幅圧迫を回避)
-
pose column は
- 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 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
PoiEditorPanelviaQUndoStack, 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 externalmapoi/config_pathupdate discards them, and warn beforeSaveoverwrites 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 fromNavigationBackendStatus/LocalizationBackendStatusliveliness andreason(#400). - Surface operation failures and successful initial-pose requests as a
transient UI notice instead of RCLCPP-log-only feedback, covering
request_initial_posereject/timeout andget_route_poisfailure (#401). - Show route-driving progress in
MapoiPanelby subscribing tomapoi/eventsand displaying the passed POI name with ann/totalcount (#406). - Show a transient notice for commands rejected while navigating by
subscribing to the existing
mapoi/nav/command_rejectedtopic, auto-clearing after 5 s (#398). - Keep the
Route progress: —/Notice: —/Nav status: —idle placeholders permanently visible instead of blank labels, via newSetRouteProgressIdle/SetNoticeIdle/SetNavStatusIdlehelpers (#451). - Translate the
MapoiPanelUI strings (buttons, labels, status messages) and the few remaining Japanese PoiEditor strings (twoValidatePoismessages, the name-filter placeholder) from Japanese to English, matching the already-English WebUI (#431). - Fix an uninitialized
is_table_color_bool inPoiEditorPanelthat could read as true when the mapoi service is unavailable, and add a bounds check on theshadow_write inTableChangedto prevent an out-of-bounds vector write (#432). - Guard
YAML::LoadFileinSaveButtonagainst 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 ismap, preventing a Fixed-Frame-relative pose from being saved as a map-frame POI (#430). - Fix
PoiPoseCallbackwriting the Set Mapoi Pose result into the hardcoded column index2instead ofkColPose, which corrupted the tolerance cell and left the pose cell unchanged (#427). - Add a timeout to eight
spin_until_future_completeservice 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/moveSectionto insert under the selected row (#434). - Remove the
PoiTableheader's sort indicator, which implied an active ascending sort that was never actually enabled (#433). - Add a bottom vertical spacer to
mapoi_panel.uito absorb excess dock height instead of stretching the gaps between status labels (#446). - Add a path+mtime content-diff guard to
ConfigPathCallbackin both panels (mirroringmapoi_rviz2_publisher's dedup), skipping the blocking service re-fetch and full rebuild when a re-publishedmapoi/config_pathis unchanged (#403). - Split
mapoi_panel.cppandpoi_editor.cppinto 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 convertcalcYaw/join/SplitSentenceinto free functions inpoi_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
MapoiPanelto checkresponse.successonGetRoutePois(now returningsuccess/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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_cmake_gtest | |
| ament_cmake_auto | |
| std_srvs | |
| geometry_msgs | |
| tf2 | |
| rviz_common | |
| rviz_default_plugins | |
| mapoi_interfaces |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| mapoi | |
| mapoi_turtlebot3_example |