Skip to content

RoadManager::Route::AddWaypoint がパス解決失敗を静かにフォールバックし検知できない(issue #31 由来) #42

Description

@GT-karny

症状

RoadManager::Route::AddWaypoint はパス解決(route_found)に失敗した Waypoint を、minimal_waypoints_ へ追加せず警告ログ1行のみRoute::AddWaypoint Skip waypoint for scenario routes since path not found)で静かに落とす(EnvironmentSimulator/Modules/RoadManager/RoadManager.cpp Route::AddWaypoint)。

呼び出し側(VirtualDriver 等)はこの欠落を検知するすべを持たず、ルートが途中で truncate されたまま以降の処理(junction 内パス予測 = ConflictPointResolver 等)を続行する。その結果、記述ミス(Waypoint 列の欠落)の症状が、原因から遠く離れた場所(走行中の交差点内パス予測の flicker、不要減速)にしか観測できない形で現れる。

issue #31 の実地調査はこの構造のせいで長期化した: 起票時点では「RoadPath の右折レーン接続失敗」という誤った仮説が立てられ(実際の真因はシナリオ側の Route Waypoint 記述欠落、#31 参照)、ログの WARN 1行に気づくまで真因特定に時間を要した。

提案

以下のいずれか(複数可)で「ルート解決失敗」を呼び出し側が検知できるようにする:

  • Route::AddWaypoint の戻り値または Route の状態フラグで、1件でも route_found == false があったことを呼び出し側(AssignRouteAction 処理系)に伝播する。
  • VirtualDriver 側で、割り当てられたルートの Waypoint 数がシナリオ記述の Waypoint 数より少ない場合に WARN を格上げする(テレメトリ/ログへの明示的な "route truncated" マーカー)。
  • 静的チェック(scripts/check_route_waypoints.py、issue VirtualDriver: 交差点直進ルート設定時にTraj予測が直進/左折を高速交互誤判定し不要な減速が発生 #31 対応で追加)はオーサリング時の再発防止だが、実行時の検知はまだ無い。両輪で塞ぐ。

スコープ外にした理由

issue #31 のスコープは「シナリオ記述側の恒久ルール明文化・既存資産の棚卸し修正」であり、RoadManager 側のランタイム検知強化は別プログラム(C++ コア変更、EnvironmentSimulator/ は R1 Clean Core 対象)。

関連ID

feature:F2 feature:F3 vd-phase:Phase3e openx:Domain#Junction commit:(#31 真因コメント参照)

refs #31

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions