Skip to content

VirtualDriver設定をGUIに露出(ManualDrive設定画面と同等)+ 今後のVDは設定可能項目を全てGUI化する恒久要件 #33

Description

@GT-karny

概要

Virtual Driver (VD) のランタイム設定を Web GUI から編集可能にする。現状 VD の設定はコード同梱の GT_esmini/config/virtual_driver.json を直接編集するか、シナリオ xosc に <Property name="policies" value="lead,..."/> を埋め込む経路しか無く、GUI からは触れない。ManualDrive / AutoLight (F6) には既に GUI 設定パネルがあるのに VD だけ欠落しているため、これを ManualDrive 設定画面と同等のUX で揃える。

関連KG-ID: policy:lead policy:traffic_light policy:stop_yield policy:conflict policy:crosswalk commit:293613ec

現状(調査結果)

  • VD設定は完全に非GUI:
    • policy_lead_enabled 等のPhase3ポリシーフラグ・IDMパラメータ (idm_time_headway 等)・planner/driver ゲインはすべて config/virtual_driver.json にのみ存在。フロント(React)はこれらのキーを一切参照していない。
    • 唯一のGUI経由の有効化は、バックエンド simulation_runner.py がシナリオ xosc の <Property name="policies" value="..."> を読み per-run config へ畳み込む経路(_write_virtual_driver_config / _VD_POLICY_FLAG)。ユーザーがGUIフォームからトグルする手段は無い。
    • commit:293613ec で入った "policy GUI" は 表示専用PolicyTimelinePanel / ActivePolicyPanel = 実行中にどのポリシー制約が効いているかの可視化)であり、設定UIではない。
  • 踏襲すべき既存パターン(2件):
    • ManualDrive: api/manual_drive_api.pyGET/PUT /api/manual-drive/config + presets)↔ components/simulation/ManualDrivePanel.tsxSlidePanel + 歯車アイコン、React Query の useQuery/useMutation で読み書き)。
    • AutoLight (F6): api/auto_light_api.pyGET/PUT /api/auto-light/config + /defaults。docstring に "Mirrors manual_drive_api" と明記)。
  • 欠落: virtual_driver_api.py が無く、client.tsVirtualDriverConfig 型も無い。

要求(このIssueのスコープ)

  1. バックエンド: api/virtual_driver_api.py を新設し、manual_drive_api / auto_light_api と同じ規約で GET/PUT /api/virtual-driver/config(+ /defaults)を提供する。config/virtual_driver.json を単一真実源とし、GET フォールバック/defaults リセットも既存2 APIに揃える。
  2. フロント: ManualDrive 設定画面と同等の設定パネル(SlidePanel + 歯車起動、React Query で読み書き、defaults リセット)を VD 用に追加。最低限、5つのPhase3ポリシー(policy:lead / policy:traffic_light / policy:stop_yield / policy:conflict / policy:crosswalk)の On/Off トグルと、各ポリシーのパラメータ(IDM: time_headway / min_gap / max_accel / comfort_decel / lookahead / lateral_tol 等)を編集可能にする。
  3. 実行への反映: GUI で設定した内容が per-run config(_write_virtual_driver_config)に反映される経路を通す。既存のシナリオ Property 経路とは矛盾なく共存させる(GUI設定 vs シナリオ埋め込みの優先順位を定義)。
  4. client.ts: VirtualDriverConfig 型と API ラッパー(getVirtualDriverConfig / updateVirtualDriverConfig / defaults)を追加。

追加要求(今後のVD開発の恒久要件)

VD-GUI-PARITY: 今後 Virtual Driver に追加する「設定で On/Off できる項目・調整可能なパラメータ」は、すべて GUI(Web UI)から設定できることを実装完了の要件とする。config JSON にキーを足すだけで GUI 露出が無い状態を新たに作らない(既存の未露出項目は本Issueで解消する)。

この恒久要件は VD ロードマップの受け入れ基準に組み込む(PolicyやPlannerをJSON追加する際、対応するGUIフォーム項目とAPIスキーマ更新をセットで行う)。

受け入れ基準

  • GET/PUT /api/virtual-driver/config(+ defaults)が manual-drive / auto-light と同規約で動作
  • VD設定パネル(歯車→SlidePanel)から5ポリシーのOn/Off + 主要IDMパラメータを編集・保存でき、再読込で永続化されている
  • GUIで有効化したポリシーが実シミュレーション実行に反映される(テレメトリの active policy に現れる)
  • GUI設定とシナリオ <Property name="policies"> の優先順位がドキュメント化されている
  • 恒久要件 VD-GUI-PARITY が VD ロードマップ/受け入れ基準の文書に追記されている

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions