Skip to content

feat(crane_web_debugger): session injection UIを追加#1348

Merged
HansRobo merged 1 commit intodevelopfrom
feature/crane-viewer-session-injection-ui
Apr 22, 2026
Merged

feat(crane_web_debugger): session injection UIを追加#1348
HansRobo merged 1 commit intodevelopfrom
feature/crane-viewer-session-injection-ui

Conversation

@HansRobo
Copy link
Copy Markdown
Member

概要

Crane Viewerの左ドックにSession Controlパネルを新設し、ROSトピック /session_injection を通じて任意のsituation名をインタラクティブに注入できるようにした。

背景・根本原因

開発・デバッグ中にセッション(戦術)を手動で切り替えたい場面で、これまでは ros2 topic pub --once /session_injection std_msgs/String '{data: "..."}' をターミナルから叩く必要があった。session injectionの受信基盤(crane_session_coordinator)とROS publisher(websocket_server.cpp)は既に実装済みだったが、Viewer UI側に任意のsituation名を送る手段がなかった。

変更内容

crane_web_debugger/src/websocket_server.cpp

  • 起動時に crane_session_coordinator/config/unified_session_config.yaml をyaml-cppでパース、situation名一覧をキャッシュ
  • /session_injection トピックを自身でsubscribeし、受信のたびに全WSクライアントへ現在状態・履歴をbroadcast
  • WSメッセージ list_situations / session_inject / session_clear の3種を新規対応
  • 接続確立時にsituation一覧と現在のinjection状態を即送信

crane_web_debugger/web/index.html

  • 左ドックの「Sim Control」の下に「Session Control」アコーディオンを追加

crane_web_debugger/web/viewer/main.js

  • situations_list / session_injection_current のWSメッセージハンドラを追加
  • session-inject-select / session-inject-custom / session-clear の3種のdata-actionを追加

crane_web_debugger/CMakeLists.txt / package.xml

  • yaml-cpp・ament_index_cpp依存を追加

動作

  • ドロップダウンからYAML定義済みのsituation名(HALT/INPLAY/OUR_FREE_KICK等)を選んでInject
  • 自由入力フィールドから任意の名前を送信
  • 「Clear Injection (HALT)」でリセット
  • 現在のINJECTION値と直近5件の履歴をリアルタイム表示
  • 複数ブラウザタブ間でも同期

Crane ViewerからROSトピック `/session_injection` を通じて任意のsituation名を
注入できるUIパネルをcrane_web_debuggerに追加した。

- 左ドックに「Session Control」アコーディオンを新設
- YAML設定ファイル(unified_session_config.yaml)から自動取得したsituation名の
  ドロップダウンと、任意名を入力できる自由入力フィールドの両方を提供
- 現在アクティブなINJECTION値と直近5件の履歴を表示
- 「Clear Injection (HALT)」ボタンでHALTを即座にinject可能
- websocket_server.cppが/session_injectionを自身でsubscribeすることで、
  複数クライアント間でのリアルタイム同期を実現
@HansRobo HansRobo merged commit 486dad4 into develop Apr 22, 2026
7 of 8 checks passed
@HansRobo HansRobo deleted the feature/crane-viewer-session-injection-ui branch April 22, 2026 21:59
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.

1 participant