自動車業界では、テストにシミュレーション・シナリオを使用することが定着している。しかし、例えばABSブレーキシステムの訓練にこれまで使われてきたシナリオでは、自律走行車の訓練には不十分である。基本的に、自律走行車は人間のように振る舞うように訓練される必要があり、そのためには非常に複雑なシミュレーションが必要となる。
自律走行車のトレーニングシミュレーションで重要なのは、シミュレーション環境だ。リアルタイム3DレンダリングプラットフォームであるUnityは、エンジニアリングチームが、感覚的・物理的に複雑で、説得力のある認知的課題を提供し、動的なマルチエージェントインタラクションをサポートする、自律走行車トレーニング用のシミュレーション環境を効率的に作成するために使用されています。
この記事では、シミュレーション環境を構成するものと、自律走行車のトレーニング環境制作におけるUnityの使用方法について有益な概要を説明する。
人間と同じように、自律走行車にも "頭脳 "が必要だ。これが自律走行システムで、4つの主要分野から構成される:
コントロールこの部分は、ブレーキ、アクセル、ステアリングなど、クルマが必要とする動作を引き受ける。
計画プランニング・パートは、車両がどのようにナビゲートし、追い越し、障害物を回避するかを管理する。
Perception:これは、クルマが現実世界の情報を得る方法をカバーするものだ。情報は、以下のようなセンサーの組み合わせで集めることができる:
- カメラを使用する場合はコンピュータ・ビジョン
- LiDAR(光検出と測距)センサー
- レーダー
最後に、センサー・フュージョンと呼ばれるプロセスを経て、上記の方法で収集された情報が照合され、車が実際に理解できるものとしてまとめられる。
調整:この部分はプランニングの部分と関連しており、遭遇する他のスマートカーとの関係においてクルマがどのように振る舞うかを扱うからだ。他の車両やインフラとの通信が必要で、その例としては以下のようなものがある:
- プラトゥーニング:高速道路で、空気抵抗を減らすなどして燃料を最適化する一種の「列車」を形成するために、自動車が互いに密接に追従する方法。
- 合流と交差点:自動車が交通の流れに集団で適応する方法。
- スウォーミング:上記の連携を促進する概念。
必要なデータをどうやって集めるのか?機械学習は自律走行車の心臓部であり、非常にデータを必要とするシステムだ。自律走行車の訓練には膨大な量のデータが必要だ。費用対効果が高く、正確な方法を教えてください。
クルマはどうやってデータの意味を理解するのか?単にデータを収集するだけでは不十分で、車がそのデータの意味を理解できるようにしなければならない。
どのようにデータを分類し、構造化するのか?データのひとつひとつを自律走行車が理解しなければならないが、このプロセスは人間が行うとコストがかかり、ミスを犯しやすい。それが自動的にできれば、必要なアルゴリズムにより早く、より安全に到達できるだろう。
避けられない不測の事態に備えて、どのように車両を準備するのか?実世界からのみ収集されたデータは、自律走行車がすでに目にしたものに対してのみ準備することができる。
リッチで複雑なシミュレーション環境は、エンジニアリングチームにデータ生成をコントロールさせ、最終的には自律走行車システムを、予測できないものやエッジケースを含むあらゆるシナリオに対応できるように訓練する。
自律走行車のシステムを訓練するためには、実際の車が道路上で目にするものにできるだけ近い環境を作り出す必要がある。シミュレーション環境の主要な部分は以下の通りである:
ビークルダイナミクス:アスファルトとの摩擦など、車が物理的にどのように振る舞うか。
環境このパートは3つのサブカテゴリーで構成されている:
- 道路、樹木、信号標識などの静的要素。
- 歩行者や他の車などの動的要素により、シナリオ内のバリエーションを提供し、車両の検証やデータ収集に使用できるシナリオを作成できます。
- 時間帯や天候などのパラメータを指定したシナリオに適用することで、さまざまな状況を再現することができます。
こうしたさまざまな環境要因が組み合わさることで、現実には稀なエッジケースを生み出すことができるのだ。
センサーモデル:シミュレーションシナリオは、LiDARセンサー、カメラ、レーダーなどのセンサーモデルを介して自律システムに取り込まれる必要がある。この情報に依存するアルゴリズムが、合成環境でも現実と同じように振る舞うことができるほど、物理的に正確でなければならない。
シミュレーション環境を構築するには、ライティングや物理演算、パーティクルや気象システム、アニメーション、機械学習など、その他の種類のインタラクティブコンテンツを作成するのに使用される同じ機能とツールセットが必要です。
Unityは、ゲームやその他のインタラクティブコンテンツ開発のための、世界をリードするリアルタイム3Dレンダリングプラットフォームです。何百万ものマルチプラットフォームのゲームやアプリケーションを支える、試行錯誤を重ねたフル機能のプラットフォームです。また、アセットストア(詳細は下記参照)や、業界を超えた開発者やクリエイターの巨大なコミュニティというユニークな利点もある。
スクリプトの柔軟性:チームは、強力なC#スクリプトシステムと包括的なAPIを使用して、Unityをワークフローに適応させることができます。ソースコードへのアクセス権を購入すれば、C++ でシステム内部の開発も可能です。
スピードUnityエディターの直感的なUIは、素早くプロトタイプを作成できる。エディターの "Play "モードでは、アプリケーションの最終的なビルドをプレビューすることができます。シーンを一時停止して、値、アセット、スクリプト、その他のプロパティを変更し、その結果を即座に確認することができます。また、デバッグしやすいように、プロジェクトをフレームごとにステップスルーすることもできる。
高度な双方向性Unityは、物理、レンダリング、アニメーション、通信を含むUnityのシステム全体にアクセスできる、堅牢で文書化されたAPIを提供し、豊富なインタラクションモデルや他のシステムとの統合を可能にします。
ハイエンドのグラフィック:スクリプタブルレンダリングパイプライン(SRP)は、レンダリングループのコアをC#でコーディングすることを可能にし、それによってシーンの描画方法をより柔軟にカスタマイズし、コンテンツに特化させることができます。
高解像度レンダーパイプライン(HDRP)は、高性能ハードウェア上で世界クラスのビジュアルクオリティを提供し、ユニバーサルレンダーパイプライン(URP)は、モバイル向けにスケーリングしても応答性の高いパフォーマンスを維持します。
VRと ARのサポート(その他25のプラットフォームへの展開)。Unityは幅広いプラットフォームに対応しているため、AAAゲームスタジオ、トップクラスのクリエイティブエージェンシー、映画スタジオ、自動車、宇宙、その他の業界の研究チームが、没入型のアプリケーションを作成するために使用しています。
高度なアーティストおよびデザイナーツール:Unityには、3Dシーンデザインツール、ストーリーテリングとシネマティクス、ライティングと特殊効果、オーディオシステム、そして強力なドープシート・アニメーションシステムが含まれている。
機械学習とAIの能力:UnityML-Agentsツールキットは、機械学習研究者がUnityを使用して複雑な行動を研究することを可能にし、インテリジェントエージェントを開発するための最新の機械学習技術をインタラクティブコンテンツ開発者に提供します。
アセットストアアセットストアでは、開発時間を節約するために、環境作成用の膨大なセレクションを含む、既製のアセットと生産性ツールの最大のマーケットプレイスにアクセスできます。
BMWグループはUnityを使ってグラフィカルなシナリオ・エディターを開発し、開発中の自動運転(AD)機能のテストと検証のプロセスを大幅に簡素化した。このインターフェースにより、AD開発者は、機能の成熟度と即応性を高める何千ものシミュレーション・シナリオを簡単に視覚化し、設定することができる。
BMWの自律走行テスト走行距離の95%近くは、仮想世界での仮想車両によるものだ。
詳しくはブログシリーズをお読みください。
世界をリードする自動車メーカーが、Unityを活用してどのように自律走行車の開発を加速し、設計からマーケティング、メンテナンスに至るまで、製品ライフサイクル全体を加速しているか、その詳細をご覧ください。