feat(crane_web_debugger): session injection UIを追加#1348
Merged
Conversation
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することで、 複数クライアント間でのリアルタイム同期を実現
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.
概要
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.cppcrane_session_coordinator/config/unified_session_config.yamlをyaml-cppでパース、situation名一覧をキャッシュ/session_injectionトピックを自身でsubscribeし、受信のたびに全WSクライアントへ現在状態・履歴をbroadcastlist_situations/session_inject/session_clearの3種を新規対応crane_web_debugger/web/index.htmlcrane_web_debugger/web/viewer/main.jssituations_list/session_injection_currentのWSメッセージハンドラを追加session-inject-select/session-inject-custom/session-clearの3種のdata-actionを追加crane_web_debugger/CMakeLists.txt/package.xml動作