Skip to content

feat: v5.0.0 統合 (立席警告表示刷新・MRM値域判定・ドアAPI移行・起動時誤発話修正) - #213

Merged
yabuta merged 19 commits into
developfrom
integration/v5.0.0
Sep 9, 2026
Merged

yabuta merged 19 commits into
developfrom
integration/v5.0.0

Conversation

@yabuta

@yabuta yabuta commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Related Issue(required)

なし (ベンチ確認 2026-07-30 のフォローアップと実機動作調整の統合)

Description(required)

v5.0.0 向けの統合ブランチです。個別ブランチ 5 本をレビュー済みのうえで統合しています。

1. 起動直後の誤発話修正 (fix/startup-departure-announcement)

FMS スケジュール未設定時や plan_start_time のパース失敗時に depart_time が無効値のままとなり、現在時刻との差が大きな負値になって停車中の発話条件 (remain_minute <= 2) を満たし、起動直後に「まもなく出発します」と発話していた不具合を修正。

  • 無効値を 0 から -1 に変更し、有効な Unix タイムスタンプとの混同を防止
  • calculate_time_callback に早期リターンを追加
  • 無言で発話・表示が止まると原因を追えないため、警告ログ (throttle 5s) を追加

2. ベンチ確認のフォローアップ (fix/bench-followup-signage)

  • arrive_caution.wav を -16 LUFS へ正規化 (実測 -25.3 → -16.4 LUFS / TP -1.5 dBTP)。他アナウンスより約 9dB 小さく実機で聞こえづらかったため
  • 走行中の停止案内 (temporary_stop) をデフォルト OFF (yaml / declare_parameter / dataclass の既定値を統一)
  • 行先マッピングをベンチ登録スケジュールの実 point_id (91737 / 118489) へ更新

3. 立席警告の表示刷新と急制動アナウンスの統一 (feat/change_standing_warning_view)

  • StandingWarningView を「手すりにおつかまりください」を主役にした 3 段構成へ刷新 (急制動系)。発車時は従来どおりの 2 段レイアウトを維持
  • 急減速・急操舵・複合で別々だった音声を standing_sudden.wav 1 本へ統一 (実測 -16.0 LUFS / TP -4.0 dBTP / 48kHz 16bit mono / 2.34s)。事象別の出し分けは表示 (standing_warning_type) のみで継続

4. MRM 値域逸脱判定と遠隔緊急表示の統一 (feat/mrm-state-value-range-config)

  • /api/fail_safe/mrm_state の state / behavior が有効値域外なら MRM を不明扱いでリセット。従来は未定義値が comfortable stop 扱いへ流入し、初回受信前 (behavior=0) にも停止後表示が出得た
  • 緊急 / NONE / 有効値域の判定値を signage_param.yaml で config 化し、route_handler のマジックナンバー (12 / [1,12]) を撤廃。behavior の値体系は pilot-auto のバージョンで変わるため
  • 値域外ログの throttle 化と、mrm.* 設定不整合 (緊急値が有効値域に含まれない) の起動時検出を追加。そのままだと緊急停止表示が永久に出ないため、不足分を有効値へ補いログに残す
  • CVM 遠隔緊急表示を EmergencyStopping の再利用に変更し、MRM 停止後表示とデザインを一元化 (CVM 側の変更は不要)

5. ドア API 移行と heartbeat ログ改善 (feat/door-api-and-heartbeat-log)

  • 廃止予定の /api/external/get/door (tier4_external_api_msgs/DoorStatus) を AD API の /api/vehicle/doors/status (DoorStatusArray) へ移行。仕様どおり RELIABLE + TRANSIENT_LOCAL で購読し、複数ドアは OPENING/CLOSING 優先で代表状態へ集約
  • Autoware 切断 (/api/system/heartbeat 途絶) のログを、切断遷移時と復帰時に 1 回ずつ出すエッジ検出方式へ変更
  • 直接利用しているのに未宣言だった autoware_adapi_v1_msgs を package.xml に追加

Review Procedure(required)

コミットは統合単位 (マージコミット #1〜#5) にまとまっているため、コミット単位で追うのが読みやすいです。

  • 表示: 1920x540 (size_ratio 1.20) で StandingWarningView の 3 状態 (depart / sudden_stop / sudden_turn) を offscreen 描画し、画面内に収まること・時刻表示と重ならないことを確認済み
  • 音声: arrive_caution.wav / standing_sudden.wav はいずれも -16 LUFS 前後へ正規化済み (クリップなし)
  • ドア API: adapi_specs/vehicle.hpp の QoS 定義、ad_api_adaptor の deprecated 表記 (2025/12)、j6_interface の publish 実装 (1 ドア・変化時のみ) を裏取り済み。DoorStatus の定数値は tier4 系 (OPENING=3/CLOSING=4) と adapi 系 (4/5) で異なりますが、door_status を読む箇所は route_handler のみで import も切り替えています

申し送り (マージ後に対応が必要)

  • mrm.emergency_behaviors の既定 [12] は adapi 標準 (EMERGENCY_STOP=2) と異なる実車由来の値です。ベンチで実際の publish 値を確認して確定してください
  • ベンチ既存の /opt/autoware/destination_mapping.yaml はファイルが無い場合のみ seed されるため、行先マッピングの更新は実行時へ自動反映されません (今回はそのままとする方針)
  • 品川 (shinagawa) は当該スケジュールに含まれず実 point_id が未判明のため未登録です。品川を含むスケジュール登録後に active_schedule から採取して追記が必要です
  • announce_controller の in_interval / set_timeout 二重定義の解消は本 PR の範囲外です

Related PR(optional)

Pre-Review Checklist for the PR Author

Checklist for the PR Reviewer

  • Commits are properly organized and messages are according to the guideline
  • PR title describes the changes

Post-Review Checklist for the PR Author

  • All open points are addressed and tracked via issues or tickets
  • Write release notes

🤖 Generated with Claude Code

yabuta and others added 18 commits April 8, 2026 17:44
FMSスケジュール未設定時やplan_start_timeのパース失敗時にdepart_timeが
無効値(0)のままとなり、現在時刻との差分が大きな負の値になることで
停車中の発話条件(remain_minute <= 2)を満たしてしまう問題を修正。

- calculate_time_callbackにdepart_time <= 0の早期リターンを追加
- init_CurrentTaskとprocess_current_taskの無効値を0から-1に変更し、
  有効なUnixタイムスタンプとの混同を防ぐ

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
到着接近アナウンス(arrive_caution)が他アナウンス(約-16 LUFS)より
約9dB小さく聞こえづらかったため、-16 LUFS へ正規化する
(48kHz/16bit/mono 維持、ピーク -1.5dB でクリップなし)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
走行中の停止案内アナウンス(temporary_stop)は不要との判断により、
デフォルトを無効化する。yaml・declare_parameter・dataclass の
既定値をいずれも false に統一。パラメータ上書きで有効化は可能。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ベンチの登録スケジュール (FMS active_schedule) から採取した実 point_id へ
更新する: 91737=日本科学未来館(miraikan), 118489=東京テレポート駅(teleport)。
暫定の仮値(2567/2568/2569)を置き換え。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CVM 遠隔緊急指示 (remote_emergency_display) の表示を、autoware MRM の
停止後表示 EmergencyStopping と完全に同一にする。CvmEmergencyStop は独自
レイアウト (橙背景・⚠・「オペレーター停止指示」) をやめ、EmergencyStopping
コンポーネントを再利用してデザインを一元化する。CVM 側の変更は不要。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/api/fail_safe/mrm_state の state・behavior が想定値域外の場合に MRM 発生有無を
不明として扱い MRM 状態をリセットする (SYS2-ERR-01 値域逸脱)。従来は未定義値が
comfortable stop 扱いに流入していた。

緊急/通常(NONE)/有効値の判定は pilot-auto のバージョンで behavior 値体系が変わる
ため config (mrm.*) で可変化し、route_handler のマジックナンバー(12/[1,12])を撤廃。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 廃止された /api/external/get/door (tier4_external_api_msgs/DoorStatus) を
  AD API の /api/vehicle/doors/status (autoware_adapi_v1_msgs/DoorStatusArray) へ移行。
  複数ドアは開扉/閉扉の遷移状態を優先して単一の door_status へ集約する
  (route_handler 側の重複抑制と合わせ、同時開閉でも案内は1回に集約)。
- route_handler の DoorStatus 参照を autoware_adapi_v1_msgs へ変更。
- 直接利用しているのに未宣言だった autoware_adapi_v1_msgs を package.xml に追加。
- Autoware切断 (/api/system/heartbeat 途絶) のログを、切断遷移時と復帰時に
  1回ずつ出すエッジ検出方式へ変更 (事後診断向け)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
急減速・急操舵・複合の3種で別々だった音声を standing_sudden.wav の1本に
統一する。音量は他の収録音声に合わせて -16 LUFS へ正規化済み。
事象別の出し分けは表示 (standing_warning_type) のみで継続する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
arrive_caution.wav が -25.3 LUFS と他アナウンス (約 -15〜-17 LUFS) より
約9dB 小さく、実機で聞こえづらい。既に fix/bench-followup-signage で
正規化済み (a500b7e, -16.4 LUFS/TP -1.5dBTP) の音声を取り込む。
当該ブランチは develop 未マージのため、本ブランチにも反映する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
depart_time が無効値(-1)のまま早期リターンすると、FMSの plan_start_time が
壊れていても無言で発話・表示が止まり原因を追えないため、5秒throttleの
警告ログを追加する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
起動直後にFMSスケジュール未設定/plan_start_timeのパース失敗でdepart_timeが
無効値のまま「まもなく出発します」を発話する不具合の修正を統合。
レビュー指摘を受け、無効値検出時の警告ログ (throttle 5s) を追加済み。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ベンチ確認 (2026-07-30) のフォローアップを統合。
- arrive_caution.wav を -16 LUFS へ正規化 (実測 -25.3 -> -16.4 LUFS, TP -1.5 dBTP)
- UC-04 停止案内 (temporary_stop) をデフォルトOFF
- 行先マッピングをベンチ登録スケジュールの実 point_id (91737/118489) へ更新

レビュー時の申し送り: ベンチ既存の /opt/autoware/destination_mapping.yaml は
ファイルが無い場合のみ seed されるため、この更新は実行時へ自動反映されない
(今回はそのままとする方針)。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
立席警告の表示刷新と急制動アナウンスの統一を統合。
- StandingWarningView を「手すりにおつかまりください」を主役にした3段構成へ (UC-03)
  発車時 (UC-02) は従来どおりの2段レイアウトを維持
- UC-03 の音声を事象別3本から standing_sudden.wav 1本へ統一
  (実測 -16.0 LUFS / TP -4.0 dBTP / 48kHz 16bit mono / 2.34s)
  事象別の出し分けは表示 (standing_warning_type) のみで継続
- arrive_caution.wav は #2 と同一内容のため実質 no-op

レビュー時の確認: 1920x540 (size_ratio 1.20) で3状態を offscreen 描画し、
画面内に収まること・時刻表示と重ならないことを確認済み。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
レビュー指摘への対応。
- 値域外ログを throttle (5s) 付きにする。UNKNOWN(0) は adapi の正規値であり、
  待機中に周期 publish される構成ではトピックレートでエラーログが流れるため。
- mrm.none_behavior / mrm.emergency_behaviors が mrm.valid_behaviors に
  含まれない設定を起動時に検出する。そのままだと当該値が値域逸脱として
  リセットされ緊急停止表示が永久に出ないため、不足分を有効値へ補いログに残す。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
MRM 値域逸脱判定と遠隔緊急表示の統一を統合 (feat/cvm-emergency-design-unify を内包)。
- /api/fail_safe/mrm_state の state/behavior が有効値域外なら MRM を不明扱いで
  リセットする (SYS2-ERR-01)。従来は未定義値が comfortable stop 扱いへ流入し、
  初回受信前 (behavior=0) にも停止後表示が出得た
- 緊急/NONE/有効値域の判定値を signage_param.yaml で config 化し、
  route_handler のマジックナンバー (12 / [1,12]) を撤廃
- CVM 遠隔緊急表示を EmergencyStopping 再利用に変更し MRM 停止後表示と統一

レビュー指摘への対応をブランチ側で実施済み (b11e9ef):
値域外ログの throttle 化と、mrm.* 設定不整合 (緊急値が有効値域に無い) の起動時検出。

申し送り: emergency_behaviors の既定 12 は adapi 標準 (EMERGENCY_STOP=2) と異なる
実車由来の値。ベンチで実際の publish 値を確認して確定すること。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 廃止予定の /api/external/get/door (tier4_external_api_msgs/DoorStatus) を
  AD API の /api/vehicle/doors/status (DoorStatusArray) へ移行。
  仕様どおり RELIABLE + TRANSIENT_LOCAL で購読し、複数ドアは
  OPENING/CLOSING 優先で代表状態へ集約する
- heartbeat 途絶ログを切断/復帰の遷移時のみ1回出力に変更
- package.xml に autoware_adapi_v1_msgs の依存を明示

レビュー時の裏取り: adapi_specs/vehicle.hpp の QoS 定義、ad_api_adaptor の
deprecated 表記 (2025/12)、j6_interface の publish 実装 (1ドア・変化時のみ) を確認。
DoorStatus の定数値は tier4 系 (OPENING=3/CLOSING=4) と adapi 系 (4/5) で異なるが、
door_status を読む箇所は route_handler のみで import も切り替わっている。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yabuta
yabuta requested a review from muraki-t4 September 9, 2026 01:37
@yabuta yabuta self-assigned this Sep 9, 2026
@muraki-t4

Copy link
Copy Markdown

Code review

Found 1 issue:

  1. publish_test_schedule.sh のデフォルト MOVE_POINT_ID=2567 が更新されていない。本 PR で destination_mapping.yaml から 2567/2568/2569 が削除され 91737/118489 に置き換わったため、./publish_test_schedule.sh doing|todo|done を POINT_ID 省略で実行すると未登録扱いになり空白(null)表示になる。スクリプト自身の使い方コメント (L21「POINT_ID 省略時: doing/todo/done は 2567」) が実挙動と食い違う。

TOPIC="/signage/active_schedule"
MOVE_POINT_ID=2567
UNMAPPED_POINT_ID=999999

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

destination_mapping.yaml から仮値 2567/2568/2569 を削除し 91737/118489 へ
置き換えた際、publish_test_schedule.sh の既定値 2567 が取り残されていた。
POINT_ID 省略で doing/todo を実行すると未登録扱いとなり、行先td5ではなく
空白(null)が表示され、使い方コメントの記述とも食い違っていた。

- 既定値を doing=91737 (miraikan) / todo=118489 (teleport) へ更新。
  doing/todo で別の行先にすることで、_resolve_destination の
  doing[0] -> todo[0] フォールバックがどちらで解決したかをログで見分けられる。
- done は doing/todo の move タスクが無くなり回送中(kaiso)となるため
  point_id は表示に影響しない旨をコメントで明示。
- 使い方コメントを実挙動に合わせ、マッピング更新時に本スクリプトも
  併せて更新する旨の注意を追記。
- ヘッダコメント行数の変化に合わせて usage() の sed 範囲を追随。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@yabuta

yabuta commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor Author

@muraki-t4 ありがとうございます。修正しました

@muraki-t4 muraki-t4 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@yabuta
yabuta merged commit 7db82ab into develop Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants