|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged mapoi_interfaces at Robotics Stack Exchange
|
mapoi_interfaces 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_interfaces
English version (primary): README.md 本ファイルは日本語スナップショットです。最新の内容は英語版を参照してください。
mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。
メッセージ (msg)
Tolerance.msg
POI の到達判定 tolerance(Nav2 SimpleGoalChecker の xy_goal_tolerance / yaw_goal_tolerance と align)。
| フィールド | 型 | 説明 |
|---|---|---|
xy |
float64 |
Euclidean tolerance (m)。POI 進入判定半径としても使われる |
yaw |
float64 |
Angular tolerance (rad)。0 = 未指定として Nav2 default にフォールバック |
PointOfInterest.msg
POI(Point of Interest)を表すメッセージです。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
POI の名前。実質的な一意キー |
pose |
geometry_msgs/Pose |
POI の位置・姿勢 |
tolerance |
mapoi_interfaces/Tolerance |
xy / yaw tolerance(v0.3.0 で旧 radius から置換) |
tags |
string[] |
POI に紐づくタグ(例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
POI の説明 |
PoiEvent.msg
route 走行中に route 登録 POI への侵入 / 退出、および pause タグ付き POI で navigation 停止が発生した時に publish されるイベントメッセージです (#220 で 4 種別 → 3 種別に簡素化)。
| フィールド | 型 | 説明 |
|---|---|---|
EVENT_ENTER |
uint8 (定数=1) |
route 走行中に route 登録 POI の tolerance.xy 半径へ侵入 (nav_mode == ROUTE かつ current_route_poi_names_ 該当 POI のみ、route 走行外 (IDLE / GOAL mode) では publish しない) |
EVENT_PAUSED |
uint8 (定数=2) |
pause タグ付き POI の tolerance.xy 内で navigation 停止 (cmd_vel dwell で検知)。pause 自動 trigger 後に Nav2 が停止状態に入った瞬間 |
EVENT_EXIT |
uint8 (定数=3) |
route 登録 POI から tolerance.xy * hysteresis_exit_multiplier を超えて退出 |
event_type |
uint8 |
イベント種別 (上記 3 種のいずれか) |
poi |
mapoi_interfaces/PointOfInterest |
対象 POI の情報 |
stamp |
builtin_interfaces/Time |
イベント発生時刻 |
ライフサイクル:
EVENT_ENTER -> [EVENT_PAUSED (only if pause-tagged + nav stops)] -> EVENT_EXIT
EVENT_PAUSED の前提:
- 採用 controller が navigation 停止中も cmd_vel = 0 を継続 publish する こと (Nav2 default の挙動)。controller が静止時に cmd_vel publish を止める実装の場合、
EVENT_PAUSEDは発火しません。 - pause 自動 trigger (と
EVENT_PAUSEDの publish) はmapoi_nav2_bridge側で実施し、resume は client 側mapoi/nav/resumerequest で発動するため、RESUMED相当の event は本仕様に含めません (resume は status topic で観測可能)。
TagDefinition.msg
POI 分類タグ (system tag / user tag) の単一定義を表すメッセージです。GetTagDefinitions.srv のレスポンス成分としても使えるよう PR #193 で導入されました。
| フィールド | 型 | 説明 |
|---|---|---|
name |
string |
タグ名 (例: system tag waypoint / landmark / pause、user 定義 tag なら audio_info 等) |
description |
string |
タグ用途の human-readable 説明 |
is_system |
bool |
true = システムタグ、false = ユーザー定義タグ |
InitialPoseRequest.msg
operator の map switch / reload に伴う「初期姿勢候補 POI」通知メッセージ (#149 round 8 で文字列ペアから型化)。唯一の writer である mapoi_server が mapoi/request_initial_pose service 経由の依頼を受けて publish するほか (#211。例: mapoi_nav2_bridge が Nav2 LoadMap 成功後に依頼)、起動時の default POI 採用・reload 時の stale clear でも自発 publish し、localization bridge 群が subscribe します。詳細・stale 排除戦略は msg/InitialPoseRequest.msg の冒頭コメント参照。
| フィールド | 型 | 説明 |
|---|---|---|
map_name |
string |
通知対象の map 名 (世代識別用)。非空なら publish 時点の現在 map と一致 (#299)。map 不明の requester が service に空を渡した場合のみ空文字がありうる |
poi_name |
string |
採用する POI 名 (空文字 = 「候補なし」、subscriber は無視) |
QoS は transient_local (depth=1) で後起動 subscriber も latched 値を受信できます。
NavigationBackendStatus.msg
Navigation bridge (Nav2 bridge / 自前 bridge) が 1 Hz で mapoi/nav/backend_status に publish する readiness メッセージです。UI 側 (mapoi_webui, mapoi_rviz_plugins) は backend_ready を見て navigation 操作を gate します。
| フィールド | 型 | 説明 |
|---|---|---|
backend_type |
string |
bridge 識別子 (例: nav2, custom_lidar_planner)。tooltip 表示用 |
backend_ready |
bool |
bridge が navigation コマンドを受け付け実行できる状態か |
reason |
string |
backend_ready=false 時の human-readable 理由 (任意、機微情報は含めない — 下記参照) |
QoS contract (issue #208)
publisher / subscriber 双方で以下を必ず指定:
-
durability:TRANSIENT_LOCAL(late-joiner UI が最新 status を受信できる) -
reliability:RELIABLE -
liveliness(publisher):MANUAL_BY_TOPIC(publish() ごとに liveliness assert) -
liveliness(subscriber):AUTOMATIC(pubMANUAL_BY_TOPIC× subAUTOMATICのみ互換) -
liveliness_lease_duration: 5 s (両側、pub.lease <= sub.leaseを満たす)
詳細・違反パターンは msg/NavigationBackendStatus.msg の冒頭コメント参照。
Custom bridge 実装者向けガイダンス (issue #207)
backend_ready の算出は bridge ごとに「実際に expose する capability の AND」とすること。mapoi_nav2_bridge (Nav2 bridge) の goal_ready && route_ready && switch_map_ready は 3 capability 全部を expose する bridge にのみ正しい。片機能 bridge (例: NavigateToPose のみ) でこれを真似ると、expose していない capability が常に false → backend_ready も常に false → UI が常に “Navigation unavailable” になる。
具体例とフィールド populate 方針 (reason の慣習表記含む) は msg/NavigationBackendStatus.msg の冒頭コメントに記載。
File truncated at 100 lines see the full file
Changelog for package mapoi_interfaces
This per-package file lists only the changes affecting
mapoi_interfaces, in the flat format expected by bloom / buildfarm.
Full project-level narrative: root CHANGELOG.rst / the GitHub Releases
page.
Forthcoming
0.6.0 (2026-07-15)
- No changes for this package in this release.
0.5.0 (2026-07-10)
- Add service
RequestInitialPose({map_name, poi_name} -> {success, error_message}) for the newmapoi_serverinitial-pose request flow (#211). -
GetRoutePoisresponse gainsbool success/string error_messageahead of thepois_list/landmark_poisfields; recompile all clients (#342). -
PointOfInterestdrops the always-zeroint32 idfield; key onnameinstead (#338). -
SelectMapresponse fieldinitial_poi_namerenamed toresolved_initial_poi_name(request field unchanged) (#343). -
PoiEventsimplified from four event types to three: removeEVENT_STOPPED/EVENT_RESUMED, addEVENT_PAUSED(value2), shiftingEVENT_EXITfrom2to3(#220, #227). Note the numeric values2and3are both reused (2: oldEVENT_EXIT-> newEVENT_PAUSED;3: oldEVENT_STOPPED-> newEVENT_EXIT): rosbags recorded before 0.5.0 and clients comparing hardcoded numbers will silently misinterpret events; always compare against the named constants after recompiling.
0.4.0 (2026-05-08)
- Add
NavigationBackendStatusmessage (backend_type/backend_ready/reason) for the navigation backend readiness contract (#198). - Add
LocalizationBackendStatusmessage for the localization readiness contract, published by the new AMCL localization bridge (#209). - Document
backend_readycomputation guidance andreason-string privacy rules in the.msgheaders andREADME.md(#207). - Add a docs-vs-implementation consistency lint that verifies every
generated msg/srv has a matching
README.mdsection (#216).
0.3.0 (2026-05-02)
- Add
Tolerance.msg(xy/yaw) and migratePointOfInterestfromfloat64 radiusto theTolerance tolerancestruct (#87). -
Tolerancesemantics: bothxyandyaware required to be>= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138). - Add
EVENT_STOPPED=3/EVENT_RESUMED=4constants toPoiEvent.msg(publish logic deferred) (#87). -
GetRoutePois.srvresponse gains alandmark_poisfield for radius-monitoring / route-scoped pause POIs (#143). -
mapoi/initialpose_poipayload type changed fromstd_msgs/StringtoInitialPoseRequest({map_name, poi_name}) as part of theinitial_posesystem tag removal (#89, #144).
0.2.0 (2026-04-29)
- No changes for this package in this release.
Package Dependencies
| Deps | Name |
|---|---|
| rosidl_default_generators | |
| ament_cmake | |
| rosidl_default_runtime | |
| geometry_msgs | |
| builtin_interfaces |