技術情報

Aptiv における記録されたセンサーデータからの運転シナリオの収集

著者 Krishna Koravadi (Aptiv)、Seo-Wook Park (MathWorks)


MATLAB と RoadRunner 製品を使用して完成したこのワークフローでは、Aptiv のエンジニアがシミュレーションによって ADAS/AD の閉ループアルゴリズムを厳密に検証できるように、仮想シナリオを作成するための構造化されたアプローチを提供しています。

次世代の車両を開発するエンジニアにとって、現実的な運転シナリオの下で先進運転支援システム (ADAS) や自動運転 (AD) システムのアルゴリズムをテストする機能は不可欠なものです。新規に開発したアルゴリズムの性能やロバスト性を実際のトラフィックでテストするのは、現実的ではありません。最適な代替案は、実際の走行テストで取得したセンサーデータから仮想シナリオを生成することです。これらのシナリオを使用することで、ADAS/AD アルゴリズムをバーチャル環境で安全かつ反復的にテストして微調整する、費用対効果の高い方法が得られます。

そこで、Aptiv のエンジニアが記録された車両データから運転シナリオを収集するために使用するワークフローを実装しました。このワークフローは、MATLAB® と RoadRunner 製品を使用して、3 ステップで実行します。まず、車両に搭載されたGPS、慣性計測装置 (IMU)、カメラ、地図データからの入力に基づいて、自車両の軌跡を再構築します。2 番目のステップでは、レーダーデータと非因果的統合確率的データ関連付け (JIPDA) 追跡アルゴリズムを使用して、他車両の軌跡を再構築し、周辺交通の動的表現を作成します。最後のステップでは、RoadRunner を使用してシナリオを生成し、必要に応じて編集し、他のシナリオ編集および可視化ツールで使用できる ASAM OpenSCENARIO® 形式にエクスポートします。MATLAB と RoadRunner 製品を使用して実行するこのワークフローは、仮想シナリオを作成する構造化されたアプローチを提供します。この仮想シナリオでは、Aptiv のエンジニアがシミュレーションによって ADAS/AD 閉ループアルゴリズムを厳密に検証できます (図 1)。

仮想シナリオ作成のワークフローを示す図。このワークフローでは、MATLAB と RoadRunner 製品を使用して、センサーデータから運転シナリオを収集する方法を示しています。

図 1. センサーデータからシナリオを収集するワークフロー。

自車両軌道の再構築

ワークフローの最初の段階では、道路の仮想シーンを作成し、記録されたセンサーデータから軌道を再構成した自車両を追加します。

仮想シーンを作成するために、RoadRunner Scene Builder を使用し、GPS で取得した車両位置を中心とする HD マップをインポートして、3D 道路モデルを作成します。地図から不要な道路を削除し、シーンを保存します (図 2)。

3D 道路モデルの作成に GPS の HD マップを使用する RoadRunner Scene Builder のワークフロー。

図 2. RoadRunner Scene Builder を使用した、HD マップからのシーンの生成。

この時点で、GPS データを使って自車両の軌跡をマップ上に重ね合わせることができます。しかし、自車両の追跡を GPS 入力だけに依存することには問題があります。その理由として、GPS には一般的に、車両の走行車線を判断するうえで十分な精度がないこと、GPS 信号は一時的に喪失する可能性があること、サンプル時間 (通常は数百ミリ秒) が比較的遅いことなどが挙げられます。このような欠点を解消するには、Navigation Toolbox™ の insfilterAsync オブジェクトを使用して、GPS データと IMU からの加速度計データとジャイロスコープ データを融合します。10 ミリ秒ごとにサンプリングされる IMU データを融合することで、自車両の軌跡をより正確に推定できます (図 3)。

自車両の GPS 推定データの青線と、GPS と IMU データを融合した赤線を示すグラフ。

図 3. GPS データのみ (青) と、GPS と IMU の融合データ (赤) から推定された自車両の軌跡。

GPS と IMU の融合によって精度が向上しても、自車両の走行車線を確実に識別できる程度には達していません。精度を向上するため、カメラデータを利用して自車両の車線とその隣接車線の車線区分線検出を追跡します。次に、HD マップから計算された車線番号とオフセットが、車線検出から計算された車線番号とオフセットに一致するように、自車両の軌跡を補正します (図 4)。

GPS 位置が表示されたマップ、自車両からのビデオフィード、車線検出による位置推定前後の車両の軌跡をそれぞれ青と赤で示した 2 つのプロットを示すスクリーンショット。

図 4. 車線検出による自己位置推定前 (青) と後 (赤) の軌跡。

これで、車線レベルの精度をもつ自車両の軌跡が得られます。これをコンマ区切り値 (CSV) ファイルにエクスポートします。

次に、この CSV ファイルを RoadRunner Scenario にインポートしてシナリオを作成し、このシナリオを使用して自車両のシミュレーションを実行します (図 5)。

RoadRunner Scenario で実行される自己位置推定前 (白) と後 (青) の車両シミュレーションのスクリーンショット。

図 5. RoadRunner Scenario で走行する車両を、車線検出による自己位置推定前 (白) と後 (青) でシミュレーション。

周辺車両の軌跡の再構築

ワークフローの 2 番目のステップでは、周辺車両の軌跡をシナリオに追加します。このステップでは、レーダー、LiDAR、レーダーとカメラの組み合わせなど、いくつかの異なるアプローチを評価しました。最終的に、私たちはレーダーベースのアプローチを採用することにしました。これは、記録されるほとんどの車両データにはレーダー測定値が含まれていますが、LiDAR データは特別に計測された車両からしか取得できないためです。

追跡用のレーダーデータを準備するために、一連の信号処理を実行し、静的な検出 (ガードレールなど) と動的な検出 (他の車両など) を区別し、マルチパス反射によるゴーストをフィルタリングします。ノイズを含むアプリケーションの密度ベースの空間クラスタリング (DBSCAN) アルゴリズムを適用して、オブジェクトレベルの検出を生成します。

次に、オブジェクトレベルの検出値を非因果的結合確率的データ関連付け (JIPDA) トラッカーに送ります。この追跡アルゴリズムは "非因果" です。その理由は、各時間ステップにおいて、その時間ステップの前後両方からの検出を、記録されたデータの終わりまで使用するためです。オンラインのマルチオブジェクト追跡アルゴリズム (たとえば、走行中の車両内で動作するアルゴリズム) が、過去と現在の測定値のみに依存しなければならないのに対し、非因果アルゴリズムはオフラインで、シナリオの開始から完了まで、"すべて" のレーダー測定値で動作します。これらの測定値に事前にアクセスすることで、オフライン JIPDA 追跡アルゴリズムは、オンライン追跡アルゴリズムよりも正確にデータ関連付けの曖昧さ (追跡の切り替え、断片化、偽追跡につながる) を解決できます。

この性能改善を達成するため、JIPDA アルゴリズムは反復的なデータ関連付けを実行します (図 6)。各時間ステップで、時間ステップ k-1 までの測定値を用いて前方追跡を行い、次に時間ステップ k+1 から N までの測定値を用いて後方追跡を行います。このアルゴリズムは、これら 2 つの演算の融合予測値を検出値と関連付け、次の時間ステップに進みます。最後に、このアルゴリズムは Rauch-Tung-Striebel 平滑化を行います。アルゴリズム自体は複雑に見えるかもしれませんが、MATLAB での実装で必要なのは、Sensor Fusion and Tracking Toolbox™ の smootherJIPDA オブジェクトを使用した数行のコードのみです。

JIPDA アルゴリズムの反復手順を示す図 (前方追跡と後方追跡、およびこれら 2 つの操作と検出の融合予測を含む)。

図 6. JIPDA アルゴリズムの図解。

JIPDA アルゴリズムを使って各周辺車両の軌跡を計算した後、レーダー軌跡とカメラ映像を比較します (図 7)。

レーダー追跡と自車両のカメラ映像を比較したスクリーンショット。

図 7. カメラ映像と同期したレーダー追跡。

シナリオの生成と妥当性確認

ワークフローの最後となる 3 つ目のステップでは、周辺車両の軌跡と自車両の軌跡を組み合わせてシナリオを完成させます。これを行うには、Automated Driving Toolbox™ の関数 actrops を使用して、周辺車両の軌跡をワールド座標に変換します。

これが終了したら、周辺車両の軌跡を CSV ファイルにエクスポートし、RoadRunner Scenario にインポートしてシナリオに追加します。その後、シミュレーションを実行し、結果を確認します。

RoadRunner Scenario を使用すると、シナリオを編集したり、ASAM OpenSCENARIO 形式にエクスポートしたりできます。このシナリオは、esmini を含む ASAM OpenSCENARIO に準拠したシミュレーターやプレーヤーで使用できます (図 8)。

RoadRunner Scenario と esmini で同期されたシミュレーションのスクリーンショット。

図 8. RoadRunner Scenario (左) と esmini (右) での同期シミュレーション。

妥当性確認の最後のステップとして、収集されたシナリオとフロントガラスカメラの映像を比較し、車線変更、車両の割り込み、その他のイベントが一致していることを確認します (図 9)。

RoadRunner Scenario シミュレーションと自車両のカメラ映像を並べたスクリーンショット。

図 9. RoadRunner Scenario シミュレーション (左) とカメラ映像 (右) の同期。

妥当性を確認した後、このワークフローを適用して、記録されたセンサーデータの追加セットから仮想シナリオを自動生成しました。これらの仮想シナリオは、シミュレーション パイプラインの一部として ADAS/AD アルゴリズムのテストに使用されています。

公開年 2023