本競技は、自動走行車両によるサーキット走行タイムをオンライン上のシミュレータで競うものです。
- サーキット場のコース外周(全長約4km)を1周します。
- 自動走行を行う車両にはレーシングカーを使用します。
- 最大で約160km/hの速度での走行が可能です。
- LGSVL(自動運転向けシミュレータ)上でのシナリオを走破できるソースコードをAutowareを活用して作成いただきます。
- シナリオは、サーキット場のコース1周を走行する時間を競うタイムアタック競技とします。
- 参加者は、与えられたシナリオをクリアできるようソースコードを作成して、まずはローカル環境で検証をします。
- オンライン環境にソースコードをアップロードすることで、オンライン上でシミュレーションが実施されて、タイムが出ます。最後にアップロードされたソースコードのシミュレーション結果のタイムに基づいて順位を決定します。
- NPC車両5台、自車両1台の計6台でコースを一周します。
- スタート位置では前列3台、後列2台+自車両の配置です。自車両は後列外側の最後尾の位置から始まります。
- NPC車両の動きは固定されていて、それぞれコース内側、中央、外側のどれかのみを沿って走行するように設定されています。
- より早くゴールするため、他車両の追い抜きなどを行いながら走行してください。
- コースには上画像①~③のチェックポイントが設置されています。①から③まで順番に全てのチェックポイントを車両が通過したとき、ゴールしたと判定されます。
- 上画像のようにチェックポイントはCube状に定義されています。
- チェックポイントと車両が少しでも重なった時、チェックポイントを通過したと判定されます。
- シミュレーションの開始タイミングが計測開始のタイミングです。
- ゴール判定されたタイミングで計測終了となります。
- 制限時間は5分です。5分を超えた場合には失格となります。
- コース外に出た場合はコース外にいた時間分最終的なタイムにペナルティが加算されます。
- Laneletの範囲内をコースと定義します。
/aichallenge/vehicle_pose
(車両のbase_link位置)がLaneletからはみ出しているとき、コース外と判定されます。- 以下のコマンドで走行途中でのペナルティ値の確認ができます。
# ADEコンテナ内で
source ~/aichallenge_ws/install/setup.bash
ros2 topic echo /aichallenge/track_limit_penalty
- 他車両と衝突した場合、1回の衝突ごとに5秒のペナルティが加算されます。
- 順位決めに使用される最終タイムは、計測時間にペナルティを加算されることで算出されます。
- 以下のコマンドで確認できます。
# ADEコンテナ内で
source ~/aichallenge_ws/install/setup.bash
ros2 topic echo /aichallenge/score
# ゴール判定または失格時に以下のように表示されます。
# `time`の値が最終タイムです。
# 計測時間(rawTime)、接触ペナルティ(contactPenalty)、コース外ペナルティ(trackLimitPenalty)についてもこのメッセージ内で確認できます。
# time: 161.35218811035156
# rawTime: 156.35218811035156
# hasFinished: 1
# contactPenalty: 5.0
# trackLimitPenalty: 0.0
- NPC車両は予め定義された経路、速度に従って走行します。
- NPC車両は衝突時にはその状況に応じて以下のような挙動をします。
- 車両前方がぶつかった(他車両に後ろから衝突した)場合、その場で停止します。
- 車両後方がぶつかった(他車両に後ろから衝突された)場合、そのまま走行を続けます。
- ローカルシミュレーションとオンラインシミュレーションでは、異なる経路・速度が設定されています。