Perception Reproducerの評価#
rosbagから再現された感知データを用いた閉ループ条件下で、指定されたルートを完走できるか評価する。 perception_reproducerノードは現在の自車位置に基づいてrosbagから感知オブジェクトを再現し、閉ループテストを可能にする。
評価方法#
launch を立ち上げると以下のことが実行され、評価される。
- launch で評価ノード(
perception_reproducer_evaluator_node)とplanning_simulator.launch、perception_reproducerノードを立ち上げる perception_reproducerノードは現在の自車位置に基づいてrosbagから感知オブジェクトを読み取り、パブリッシュする- AutowareがDRIVING状態(ENGAGE)に入ると車両が走行を開始する
- 評価ノードが topic を subscribe して、各基準を満たしているかを判定して結果をファイルに記録する
- すべてのpass条件が満たされるか、いずれかのfail条件がトリガーされると自動で launch が終了して評価が終了する
評価結果#
Pass条件#
pass_conditions内のすべての条件グループが一度満たされると、テストが成功して終了する。
ego_kinematic_trigger#
自車両が指定されたエリアに到達したかを評価する。
- シナリオにarea条件がある場合、自車両のx,y位置がシナリオで指定したx,y座標からrangeの範囲に入っている。
- シナリオにvelocity条件がある場合、自車両の速度がシナリオで指定した範囲に入っている。
- シナリオにacceleration条件がある場合、自車両の加速度がシナリオで指定した範囲に入っている。
time_wait_trigger#
指定された待機時間が経過したかを評価する。
- アクティベーションからの経過時間が
wait_secondsに達すると条件が満たされる。
condition_group#
ネストされた条件グループがサポートされている。グループはstart_atとend_atで設定でき、いつアクティブになるかを制御できる。
Fail条件#
fail_conditions内のいずれかの条件グループが一度満たされないと、テストが失敗し、terminated_after_fail_s秒後に終了する。
metric#
メトリクスを評価する。planning_controlのユースケースと同じ。
diagnostic#
診断ステータスを評価する。diagnosticsのユースケースと同じ。
planning_factor#
計画因子を評価する。planning_controlのユースケースと同じ。
ego_kinematic#
アクティブ期間中、自車両の運動学条件(位置、速度、加速度)を継続的に評価する。
- シナリオにarea条件がある場合、自車両のx,y位置がシナリオで指定したx,y座標からrangeの範囲内/外にある。
- シナリオにvelocity条件がある場合、自車両の速度がシナリオで指定した範囲に入っている。
- シナリオにacceleration条件がある場合、自車両の加速度がシナリオで指定した範囲に入っている。
condition_group#
ネストされた条件グループがサポートされている。グループはstart_atとend_atで設定でき、いつアクティブになるかを制御できる。
評価結果の出力先ファイル#
perception_reproducerにおいては、以下の3つのファイルにそれぞれresult.jsonlが作成される。 result.jsonlは必ず出力されるが、pass_result.jsonlとfail_result.jsonlはシナリオで指定した場合にのみ出力される
result.jsonl#
output_dir/result.jsonlに出力される。 passとfail評価からまとめされた評価結果が記述される。
Evaluatorで実行する場合は、このファイルの最終行が参照されて成否が決定される。 このため、pass_result.jsonlとfail_result.jsonlの結果をマージした最終的な成否の情報がpost_processで書き込まれる。
pass_result.jsonl#
output_dir/result_archive/pass_result.jsonlに出力される。 pass条件の評価結果が記述される。
fail_result.jsonl#
output_dir/result_archive/fail_result.jsonlに出力される。 fail条件の評価結果が記述される。
評価ノードが使用する Topic 名とデータ型#
Subscribed topics:
| Topic name | Data type |
|---|---|
| /localization/kinematic_state | nav_msgs/msg/Odometry |
| /localization/acceleration | geometry_msgs/msg/AccelWithCovarianceStamped |
| /control/control_evaluator/metrics | tier4_metric_msg/msg/MetricArray |
| /planning/planning_evaluator/metrics | tier4_metric_msg/msg/MetricArray |
| /system/processing_time/metrics | tier4_metric_msg/msg/MetricArray |
| /planning/planning_factors/** | autoware_internal_planning_msgs/msg/PlanningFactorArray |
| /diagnostics | diagnostic_msgs/msg/DiagnosticArray |
| /autoware/state | autoware_system_msgs/msg/AutowareState |
Published topics:
| Topic name | Data type |
|---|---|
| /driving_log_replayer/perception_reproducer/results | std_msgs/msg/String |
| /driving_log_replayer/perception_reproducer/pass_results | std_msgs/msg/String |
| /driving_log_replayer/perception_reproducer/fail_results | std_msgs/msg/String |
simulation#
シミュレーション実行に必要な情報を述べる。
入力 rosbag に含まれてはいけない topic#
Planning Simulator#
このユースケースは、車両が実際に走行できる閉ループテストを可能にするため、logging_simulator.launchの代わりにplanning_simulator.launchを使用する。
Perception Reproducerノード#
planning_debug_toolsパッケージのperception_reproducerノードは、現在の自車位置に基づいてrosbagから感知オブジェクトを再現する。
詳細については、perception_reproducerを参照。
設定オプション:
noise: 感知オブジェクトにノイズを適用するreproduce_cool_down: 再パブリッシュのクールダウン時間(デフォルト: 80.0)tracked_object: 追跡オブジェクトをパブリッシュするsearch_radius: rosbagの自車オドメトリメッセージを検索する検索半径(デフォルト: 1.5)pub_route: rosbagから作成されたルートをパブリッシュする(GoalPoseが指定されていない場合に使用)
evaluation#
評価に必要な情報を述べる。
シナリオフォーマット#
サンプル参照
評価結果フォーマット#
サンプル参照