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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange

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

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

msg and srv files used by mapoi packages

Additional Links

Maintainers

  • Shunsuke Kimura

Authors

  • Shunsuke Kimura

mapoi_interfaces

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

mapoi パッケージ群で使用するメッセージとサービスの定義パッケージです。

メッセージ (msg)

Tolerance.msg

POI の到達判定 tolerance(Nav2 SimpleGoalCheckerxy_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/resume request で発動するため、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_servermapoi/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 値を受信できます。

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 (pub MANUAL_BY_TOPIC × sub AUTOMATIC のみ互換)
  • 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_ready3 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

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 new mapoi_server initial-pose request flow (#211).
  • GetRoutePois response gains bool success / string error_message ahead of the pois_list / landmark_pois fields; recompile all clients (#342).
  • PointOfInterest drops the always-zero int32 id field; key on name instead (#338).
  • SelectMap response field initial_poi_name renamed to resolved_initial_poi_name (request field unchanged) (#343).
  • PoiEvent simplified from four event types to three: remove EVENT_STOPPED / EVENT_RESUMED, add EVENT_PAUSED (value 2), shifting EVENT_EXIT from 2 to 3 (#220, #227). Note the numeric values 2 and 3 are both reused (2: old EVENT_EXIT -> new EVENT_PAUSED; 3: old EVENT_STOPPED -> new EVENT_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 NavigationBackendStatus message (backend_type / backend_ready / reason) for the navigation backend readiness contract (#198).
  • Add LocalizationBackendStatus message for the localization readiness contract, published by the new AMCL localization bridge (#209).
  • Document backend_ready computation guidance and reason-string privacy rules in the .msg headers and README.md (#207).
  • Add a docs-vs-implementation consistency lint that verifies every generated msg/srv has a matching README.md section (#216).

0.3.0 (2026-05-02)

  • Add Tolerance.msg (xy / yaw) and migrate PointOfInterest from float64 radius to the Tolerance tolerance struct (#87).
  • Tolerance semantics: both xy and yaw are required to be >= 0.001; zero/negative disallowed, out-of-range clamped at YAML load (#138).
  • Add EVENT_STOPPED=3 / EVENT_RESUMED=4 constants to PoiEvent.msg (publish logic deferred) (#87).
  • GetRoutePois.srv response gains a landmark_pois field for radius-monitoring / route-scoped pause POIs (#143).
  • mapoi/initialpose_poi payload type changed from std_msgs/String to InitialPoseRequest ({map_name, poi_name}) as part of the initial_pose system tag removal (#89, #144).

0.2.0 (2026-04-29)

  • No changes for this package in this release.

Recent questions tagged mapoi_interfaces at Robotics Stack Exchange