Repository navigation
feat: 車外サイネージ行先表示と回送中表示 - #211
Merged
Merged
Conversation
|
external_signage に行先表示モードを実装: - destination_mode(settings.json, 既存表示と排他)を追加し /signage/destination_mode(SetBool)で切替・永続化。 - /signage/active_schedule(String JSON)を購読(publisherのRELIABLE+VOLATILEに 合わせVOLATILEで購読)、doing[0]->todo[0]->なしの優先順で行先を決定。 - destination_mapping.yaml(destination.id->td5 prefix)を起動時ロードし、 行先td5をfront/back/side 3面へ表示。 - doing/todoなし(スケジュール完了)は回送中(kaiso)td5を表示。 - 未登録id/td5未配置/ロード失敗/空スケジュールは空白(null td5)へフォールバック。 - destination_mode中は既存のtrigger_external/mrm/is_driving_level/change_mode による表示を抑止し、OFF復帰時は既存ロジックで再描画。 実td5はベンダーツール製のため命名規約のみ用意(config雛形・destination/・ setup.py配線)。実配置まではnullフォールバックで安全に継続する。 検証: colcon build成功、行先決定ロジックの単体テスト全パス、 実ノード起動でモード切替・active_schedule受信・行先/回送中/null分岐・ td5未配置フォールバックをエンドツーエンドで確認。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
destination.id -> td5 prefix の紐付けを /opt/autoware/destination_mapping.yaml (signage_settings.json と同じ外部の永続設定置き場) から読み込むようにし、 運用時にリビルド不要で編集できるようにした。外部ファイルが無ければパッケージ同梱 テンプレート(config/destination_mapping.yaml)を起動時に自動コピーして初期化する。 読み込み失敗時は空マッピングで継続(null表示にフォールバック)。 検証: 実ノード起動で外部パス読込・未存在時のseed試行・権限エラー時のgraceful degrade(空マッピング継続)・active_schedule受信〜行先/回送中/null分岐までを確認。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
_resolve_destination の「スケジュール無し/未受信 (not data)」を null 表示から 回送中 (kaiso) 表示へ変更。有効な行先が取れない状態 (スケジュール無し/未受信/ 未登録/doing・todo 全完了) を一貫して回送中とする (SYS-HMI-08)。 未登録 id・td5 未配置/ロード失敗は従来どおり空白 (null)。 行先表示モードでは走行中の自動運行中(auto)表示は行わない方針を明記。 検証: 実ノード起動で 起動直後(未受信)/空スケジュール/全完了 が回送中(kaiso)に、 未登録idが空白(null)になること、行先表示モード中に auto を出さないことを確認。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ベンチ検証用に /signage/destination_mode(SetBool) の on/off/status を まとめて叩けるヘルパー destination_mode.sh を追加。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
実FMS active_schedule の move タスクは destination.id を持たず destination.point_id(整数)
+ destination.name を持つ。従来 destination.get("id") を参照していたため常に
"no destination id" となり null(空白)にフォールバックしていた。
- _resolve_destination: destination.point_id を参照し、mapping は str(point_id) で引く。
ログに name も出す(unmapped 時の切り分け用)。
- _load_destination_mapping: YAML キーの int/str 揺れを吸収するためロード時に str へ正規化。
- destination_mapping.yaml テンプレ / td5 README の例を point_id 整数キーへ更新。
status 語彙(doing/todo/done)は signage_utils.py と一致することを確認済み。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
実FMS active_schedule 照合(web.auto agent 経由)で destination に point_id 以外に stop_point_id(連番) と name があることを確認。stop_point_id は路線間で衝突しうるため マッピングキーには point_id を使う旨をテンプレコメントに明記。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SYS-HMI-03 ベンチ確認用に active_schedule を各パターンで publish、または web.auto agent から実スケジュールを取得して publish/表示するスクリプトを追加。 - doing/todo/done/none/unmapped/no-id: 各分岐を1コマンドで検証 (move_schedule 生成) - real: web.auto agent (localhost:4711 経由) の実スケジュールをそのまま publish - show: 実スケジュールを整形表示 (publish しない) - YAML単一引用符スカラー用に JSON 中の ' を '' へエスケープして ros2 topic pub Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
行先td5の準備が間に合わないため、ベンチ確認用の暫定措置として point_id を既存の automatic/experiment/mrm td5 に紐付ける。 2567 -> auto (automatic td5), 2568 -> experiment, 2569 -> mrm prefix には destination/*.td5 名ではなく既存 td5 の内部キー(auto/experiment/mrm)を 指定する。これらは _load_display_data の step1 でロード済みのため、destination/*.td5 の ロード失敗警告は無害でフォールバックしない。実td5が用意でき次第、正規の prefix へ戻す。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
テスト用td5(miraikan/shinagawa/teleport + 回送kaiso)を128x16のみで用意。 80x24(side)未用意でも front/back に表示できるよう _display_state を 「td5を持つディスプレイだけ表示、無いディスプレイはnull」に改修 (_display_signage_per_display 追加, current_state をディスプレイ毎キーのdictへ)。 mapping は仮 point_id に割当(2567:miraikan/2568:shinagawa/2569:teleport)。 kaisou→kaiso にリネーム、行先td5は destination/ 配下へ移動。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
miraikan/shinagawa/teleport の行先td5と回送(kaiso)td5の 80x24 版を配置し、 side ディスプレイでも行先表示・回送中表示が出るようにする。 これで front/back(128x16) と side(80x24) の両サイズが揃った。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
yabuta
force-pushed
the
feature/external-signage-destination
branch
from
July 30, 2026 02:33
21578da to
7cf9c78
Compare
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




概要
車外サイネージの行先表示機能 と回送中表示を追加します。FMS の
active_scheduleの目的地 (destination.point_id) に応じて、行先を td5 で車外ディスプレイに表示します。主な変更
/signage/destination_modeサービス) を追加。ON 時は FMS のactive_scheduleに連動して行先td5を描画し、走行中の自動運行表示は行わない。/opt/autoware/destination_mapping.yamlから読み込む (リビルド不要で編集反映)。無ければ同梱テンプレートから自動生成。キーはdestination.point_idを採用 (stop_point_idは路線間衝突のため不適)。active_schedulepublish) を追加。確認状況
destination_modeON + テスト用スケジュール publish により miraikan/shinagawa/teleport/kaiso の表示を確認済み (128x16)。備考
/opt/autoware/destination_mapping.yamlは Ansible 配布) は実 prefix に差し替える。🤖 Generated with Claude Code