概要
resources/xosc/acc-test.xosc を Virtual Driver + Lead vehicle follow(policy:lead / LeadVehicleAware, IDM) で走らせると、カットインしてくる先行車に追突する 。VD には「ぶつからないための緊急ブレーキ(AEB相当の衝突回避)」が無く、快適減速の範囲でしか減速しないため、高い接近速度では物理的に止まりきれない。
関連KG-ID: policy:lead proposal:P11(TTC/必要減速度メトリクス)proposal:P12(衝突ゼロ不変条件+衝突検出)
再現手順
GT_Sim 起動 → Controller = Virtual Driver を選択
歯車 → Lead vehicle follow (IDM) を ON(VirtualDriver設定をGUIに露出(ManualDrive設定画面と同等)+ 今後のVDは設定可能項目を全てGUI化する恒久要件 #33 で追加したGUI)
resources/xosc/acc-test.xosc を実行
Ego(car_white) 120 km/h、s=20、lane -1
Target(car_red) 30 km/h、s=100、lane -1 → t=5 で隣接レーンへ退避 → t=7 でEgoレーンへカットイン(RelativeTargetLane value=0) → t=11 で急制動(rate -4 m/s² → 0)
結果 : Ego がTargetに追突(衝突回避できない)
根本原因(コードレベル)
現状の policy:lead = LeadVehicleAware.cpp と mid/long プランナ ManeuverAwareSpeedPlanner.cpp に、以下3つの穴が重なっている:
カットイン検知が遅い : LeadVehicleAware は先行車を「同一レーン(diff.dLaneId == 0)かつ横偏差 |diff.dt| <= lateral_tol(=2.0m)」でしか拾わない。カットイン中(レーン変更途中で横にまたがっている間)は検知対象外で、完全に自レーンに入り2m以内になって初めて 先行車として認識する。その時点で車間は既に危険域。横方向の割り込み予測(lateral encroachment / lane-change 予測)が無い。
緊急停止が発火しない : LeadVehicleAware が STOP_AT_S を出すのは「先行車がほぼ停止(v_lead <= stop_speed_eps=0.3)かつ gap <= min_gap+1」の時のみ。減速中だがまだ動いているカットイン車 はこの条件に該当せず、緩い MAX_SPEED = v_ego + a_idm*τ(τ=0.5s)追従レジームに留まる。
プランナに緊急減速の経路が無い : ManeuverAwareSpeedPlanner は減速をすべて comfort_decel(=2.0 m/s²)で頭打ち にする — STOP_AT_S のランプ(sqrt(2*comfort_decel*dist) 前方)も、後退パスの到達可能速度も、ジャーク制限も comfort_decel ベース。快適減速を超える緊急減速の経路が存在しない ため、たとえ STOP_AT_S が出ても高接近速度では止まりきれない(実AEBは 6〜9 m/s² 級を要求する)。
要求(このIssueのスコープ)
VD に衝突回避(AEB相当)の緊急ブレーキ層 を追加する:
緊急減速の経路をプランナ/制約に追加 : comfort_decel とは別に emergency_decel(例 8.0 m/s²)を持ち、TTC もしくは必要減速度 a_req が閾値を超えたら快適減速の頭打ちを外して緊急減速を許可する(新しい PolicyConstraint 種別、例 EMERGENCY_STOP / HARD_DECEL、または STOP_AT_S に緊急フラグ)。
カットイン/割り込みの早期検知 : 横方向に接近中の車(レーン変更中の車、dt が縮小方向、TTCが小さい)を先行車候補に含める。同一レーン確定を待たずに、割り込み予測で早めに反応する。
判定は TTC / 必要減速度ベース : 車間だけでなく閉じ速度を考慮した TTC(time-to-collision)と a_req(衝突回避に必要な減速度)で緊急介入を決める。proposal:P11(TTC/PET/必要減速度のサロゲート指標)と算出コードを共有できる。
設定は VirtualDriver設定をGUIに露出(ManualDrive設定画面と同等)+ 今後のVDは設定可能項目を全てGUI化する恒久要件 #33 の GUI 方針に従う : 追加する emergency_decel / TTC 閾値等は config/virtual_driver.json + VirtualDriverPanel(GUI)にセットで露出する(VD-GUI-PARITY)。
検証
衝突検出が検証経路に無い のが現状(proposal:P12 が指摘)。本Issueの回帰固化には、まず ego-他車 OBB 交差による collision-free 不変条件(P12)と、必要減速度メトリクス(P11)が前提になる。
acc-test.xosc(+カットイン派生)を VD 検証バッチに追加し、「カットイン+急制動でも衝突ゼロ・要求減速度内」を matcher 化して回帰ゲートに載せる。
受け入れ基準
スコープ外 / 依存
完全な ISO ALKS/AEB 認証相当の緻密なモデルは対象外(まずは「ぶつからない」緊急ブレーキ)。
検証固化は P11(必要減速度)/ P12(衝突検出)の着手状況に依存。単体の緊急ブレーキ挙動実装は先行して着手可能。
概要
resources/xosc/acc-test.xoscを Virtual Driver + Lead vehicle follow(policy:lead/ LeadVehicleAware, IDM) で走らせると、カットインしてくる先行車に追突する。VD には「ぶつからないための緊急ブレーキ(AEB相当の衝突回避)」が無く、快適減速の範囲でしか減速しないため、高い接近速度では物理的に止まりきれない。関連KG-ID:
policy:leadproposal:P11(TTC/必要減速度メトリクス)proposal:P12(衝突ゼロ不変条件+衝突検出)再現手順
GT_Sim起動 → Controller = Virtual Driver を選択resources/xosc/acc-test.xoscを実行RelativeTargetLane value=0) → t=11 で急制動(rate -4 m/s² → 0)根本原因(コードレベル)
現状の
policy:lead= LeadVehicleAware.cpp と mid/long プランナ ManeuverAwareSpeedPlanner.cpp に、以下3つの穴が重なっている:カットイン検知が遅い: LeadVehicleAware は先行車を「同一レーン(
diff.dLaneId == 0)かつ横偏差|diff.dt| <= lateral_tol(=2.0m)」でしか拾わない。カットイン中(レーン変更途中で横にまたがっている間)は検知対象外で、完全に自レーンに入り2m以内になって初めて先行車として認識する。その時点で車間は既に危険域。横方向の割り込み予測(lateral encroachment / lane-change 予測)が無い。緊急停止が発火しない: LeadVehicleAware が
STOP_AT_Sを出すのは「先行車がほぼ停止(v_lead <= stop_speed_eps=0.3)かつ gap <= min_gap+1」の時のみ。減速中だがまだ動いているカットイン車はこの条件に該当せず、緩いMAX_SPEED = v_ego + a_idm*τ(τ=0.5s)追従レジームに留まる。プランナに緊急減速の経路が無い: ManeuverAwareSpeedPlanner は減速をすべて
comfort_decel(=2.0 m/s²)で頭打ちにする — STOP_AT_S のランプ(sqrt(2*comfort_decel*dist)前方)も、後退パスの到達可能速度も、ジャーク制限も comfort_decel ベース。快適減速を超える緊急減速の経路が存在しないため、たとえ STOP_AT_S が出ても高接近速度では止まりきれない(実AEBは 6〜9 m/s² 級を要求する)。要求(このIssueのスコープ)
VD に衝突回避(AEB相当)の緊急ブレーキ層を追加する:
comfort_decelとは別にemergency_decel(例 8.0 m/s²)を持ち、TTC もしくは必要減速度 a_req が閾値を超えたら快適減速の頭打ちを外して緊急減速を許可する(新しい PolicyConstraint 種別、例EMERGENCY_STOP/HARD_DECEL、または STOP_AT_S に緊急フラグ)。dtが縮小方向、TTCが小さい)を先行車候補に含める。同一レーン確定を待たずに、割り込み予測で早めに反応する。proposal:P11(TTC/PET/必要減速度のサロゲート指標)と算出コードを共有できる。emergency_decel/ TTC 閾値等はconfig/virtual_driver.json+ VirtualDriverPanel(GUI)にセットで露出する(VD-GUI-PARITY)。検証
proposal:P12が指摘)。本Issueの回帰固化には、まず ego-他車 OBB 交差による collision-free 不変条件(P12)と、必要減速度メトリクス(P11)が前提になる。acc-test.xosc(+カットイン派生)を VD 検証バッチに追加し、「カットイン+急制動でも衝突ゼロ・要求減速度内」を matcher 化して回帰ゲートに載せる。受け入れ基準
acc-test.xoscを Virtual Driver + lead follow で走らせて Egoがカットイン車に衝突しないスコープ外 / 依存