自動運転の実現には大きな課題がある。それは自動運転システム(AI)が膨大な量の運転を経験しなければ自律した運転ができるようにならないことだ。人間は仮免を取得して公道実習(路上練習)を行って運転の経験を積むが、人間ほど応用力が優れていないAIは、様々なパターンの公道実習を重ねなければ十分な学習ができない。トヨタのAI研究所(TRI)の見立てによれば、AIが自律運転できるようになるために学習が必要な距離は実にトリリオン・マイル(1兆マイル)以上だと語っている。
自律運転にシミュレーションが必要な理由
例え複数台の訓練車を走らせたとしても、それだけの距離の公道を走破するのは簡単ではない。そこでトヨタとNVIDIAが目を付けたのが、シミュレータだ。某「グランツーリスモ」などのゲーム画面がリアルなことに感動したユーザーも多いと思うが、AIをシミュレータの中で走行させることで経験を積ませよう、というわけだ。
シミュレーション環境ならでの利点もたくさんある。ひとつは朝や夕方、夜、雨、霧など、同じ街を走るのにもボタンひとつで切り替えられる点だ。実際の走行でこれを行うなら、時間や天候の違うときを選んで、何度も同じところを走る必要がある。これはあまりに非効率だ。また、接触事故や幅寄せ、歩行者や自転車の急な飛び出しなどもシミュレーション内なら実現できるが、実際の公道では危険が伴うためにそうはいかない。
【GTC2019】NVIDIAが描く自動運転技術の現状と未来 〜報道向け説明会レポート「Constellation」シミュレータの実演デモも披露
【GTC 2018現地レポート】トヨタAI研究所「Toyota Research Institute」が開発する2モードの自動運転ソフトウェア!AWSや開発環境も公開
こうしたことを背景に、NVIDIAはクラウドベースの「NVIDIA DRIVE Constellation」プラットフォームを用いて仮想環境に仮想車両を送り出し、自動運転技術を進歩させ続けている。GTC 2020基調講演の中で、NVIDIAの創業者/CEOであるジェンスン フアン(Jensen Huang)氏は、NVIDIA DRIVEの技術がシミュレーションを活用し、開発され、テストされている事を紹介した。また、NVIDIAは自社ブログの中で、自動運転とシミュレータの取り組みについての解説を公開した。
2台のサーバーで構成されるシミュレーションプラットフォーム
自動運転車の開発と検証を支援するために一から設計された「NVIDIA DRIVE Constellation」は、2台のサーバーで構成され、異なるサーバーの計算処理能力を利用する。
1台目のサーバーは DRIVE Simソフトウェアで自動運転車に必要なカメラ、ライダーやレーダーなどのセンサーをシミュレートする。パワフルなGPUが写真のようにリアルなデータストリームを生成することで、さまざまなテスト環境とテストシナリオを作成できる。これにより、暴風雨や吹雪、強烈にまぶしい日差しなど、まれにしか発生しない悪条件も簡単にテストできる。また、時間帯、路面、周囲の条件も変更が可能。
2台目のサーバーは実際の車載コンピューターを搭載し、シミュレートされたセンサーデータを処理して、本物の車に配備されているのと全く同じ「DRIVE AV」および「DRIVE IX」ソフトウェアを実行する。2台目のサーバーによる走行判断が1台目にフィードバックされると、ビットレベルの精度を持ち、リアルタイム実行が可能なHardware-in-the-Loopを用いた開発と検証が実現できる。
■デモ動画:NVIDIA DRIVE AVソフトウェアが、歩行者や交通車両を避けて走行
このシステムは、スケーラブルな仮想フリートとしてデータセンターで展開できるように設計されている。これによって開発エンジニアは必要に応じて車両を使えるようになり、大規模なテストを実施できるようになる。また、暴風雨や吹雪なども簡単に生成できることにより、現実世界ではめったに起こらない、あり得ないような稀で危険なシナリオも一貫してテストできる。
エンドツーエンドの開発とテストをシミュレーション内で実現
自動運転車の開発ではサブシステムから始まり、車両全体の結合テストに至るまで、あらゆる段階でのテストが必要になる。DRIVE Constellationは、このようなエンドツーエンドの開発とテストをシミュレーション内で実現し、物理的な車両を用いた場合と同じように開発を行う事ができる。
エンドツーエンドのテストでは、タイミングと動作を正確に合わせるだけでなく、自動運転車ソフトウェア内で複雑に依存しあう個別のシステムを正確にモデル化することができる。
このレベルの忠実度を大規模に実現するのは大変な作業。例えば、周辺環境や周辺車両の動き、センサー入力、車両力学が必要で、車載コンピューターへのフィードバックは、現実世界と同じようにならなければいけない。そのためには、多数のGPUが正確なタイミングに合わせて合成データを生成する必要がある。さらに車両のソフトウェア、ハードウェアの信号、インターフェースをシミュレーションの中で再現しなければならず、しかもすべてリアルタイムで実行することが求められる。
3DMappingでスキャンして環境を生成
包括的なシミュレーションは環境から始まる。シリコンバレーの環状道路を正確に再現するために、NVIDIA DRIVEエコシステムのメンバーである3DMappingは、車道を5センチメートル単位の精度でスキャン。スキャンデータは次に、OpenDRIVEと呼ばれるデータセットフォーマットに処理される。
それを受けて、NVIDIAはコンテンツ作成パイプラインを開発し、NVIDIA Omniverseコラボレーションプラットフォームを使ってきわめて正確な3D環境を生成。この環境には道路網や路面標示も正確に表現されており、物理世界の本物のセンサーと同様に光線、電波、ライダーの光との相互作用が起こるように、マテリアルのプロパティも適用されている。
現実の車両の構造に合わせてセンサーを配置
正確な環境が整ったところで忠実度の高い開発とテストで次に求められるのは、正確に生成されたセンサーデータ。センサーモデルには典型的な自動運転テスト車両に備えられている「カメラ」「ライダー」「レーダー」「慣性計測装置」などが含まれる。DRIVE Simは柔軟なセンサーパイプラインとAPIを提供しているため、現実の車両の構造に合わせてセンサーを配置できるようになっている。
カメラデータのイメージパイプラインはまず、車両で使われているカメラのレンズ特性に応じて歪められているHDRイメージをレンダリングするところから始める。センサーのプロファイルと一致するようにイメージには、露出制御、黒レベルと白レベルの調整、カラーグレーディングが行われる。最後にセンサー固有のエンコーダーを使って、ピクセルデータをネイティブの出力フォーマットに変換する。
カメラモデルに加え、DRIVE Simはレイトレーシングを使って、物理に則したライダーとレーダーのセンサーも提供している。NVIDIA RTX GPUによって、DRIVE Simは非常に計算負荷の高いレーダーとライダーのモデルをリアルタイムで実行できる。
車両の挙動をモデル化する
正確なシミュレーションにとっては車両モデルがきわめて重要。車載コンピュータに送信される制御信号(ステアリング、加速、減速) に基づき、車両モデルは物理世界の場合と同じように反応しなければならない。
そのために、シミュレーション プラットフォームは、道路の表面との相互作用などの細部を含め、動きを正確に再現する必要がある。DRIVE Simの車両モデルは、プラグインシステムを使って処理されており、組み込みのPhysXモデル、または NVIDIA DRIVEエコシステムパートナーであるMechanicalSimulationやIPGなどのサード パーティ製車両力学モデルが利用できる。
車両力学は正確なセンサーデータの生成にも重要な役割を果たしている。車両の動作中、車両の位置や姿勢は著しく変わり、センサーの視点に影響を与える。たとえば、車が減速しているとき、前方カメラは下に傾く。センサーデータを適切に生成するには、車両力学の正確なモデル化が重要。
これらの各要素(環境、センサー、車両力学)を、エンドツーエンドの単一プラットフォームで正確にシミュレートすることによって、NVIDIA DRIVE ConstellationとDRIVE Sim は、包括的な開発およびテストのパイプラインにとって欠かせない一部となっている。それにより、NVIDIAとそのパートナーは、物理的なテスト車両がガレージにとどまっている間も、より安全で効率的な自動運転車の開発に取り組むことができる。
NVIDIA 関連記事