Image courtesy of WMG University of Warwick

自動運転車のテスト用のハイブリッド リアルタイム シミュレーター

2020年9月23日
現在道路を走っている自動車の 80% 以上は、いまだに自動運転のレベル 0 に該当します。これは、運転手が自動車を完全に操縦する必要がある状態です。ほとんどの専門家が、完全自動運転車の実現にはまだ数十年かかると同意するでしょう。

自動運転のレベル 5 を目指す研究者にとっては、人間の安全性が最も重要な考慮すべき要素です。自動運転のレベル 5 は、移動中に運転手がまったく操縦する必要がない状態です。自動運転車の AI システムが安全なものであると認められるには、数十億マイルの距離、ほぼ無限の状況下でロード テストを行う必要があります。

理想的には、現実世界でテストを行うことができれば最も正確な結果が得られるのですが、これは極めて危険なことにも成り得ます。一方で、インタラクティブな 3D テクノロジーを使ってシミュレーション内でテストを行えば、制御が可能で、再現性があり、安全になりますし、費用と時間の面で効率が良くなります。では、その両者の良いところを組み合わせることができるとしたらどうでしょうか。ウォーリック大学の WMG がまさにそれを成し遂げました。 

仮想環境と物理的な自動車の組み合わせ

WMG はウォーリック大学の学際的な研究機関です。産業界と協力して応用研究を引き受けるほか、エンジニアリング、マネジメント、製造、テクノロジーの教育を提供しています。

最先端の研究グループで構成されており、その 1 つが Intelligent Vehicles Group です。これは 80 人以上からなるチームで、自動運転車、センサー、人的要因、コミュニケーションのテストと開発に取り組んでいます。

4 年前、Intelligent Vehicles Group は、3xD Simulator を開発しました。これは最先端のシステムであり、研究者が実際の自動車を運転し、シミュレーションされる環境とリンクできるようにします。シミュレーション環境は、8 台のプロジェクターによって 360 度の画面に表示されます。WMG のプロジェクト エンジニア、Juan Pablo Espineira 氏は、「どの自動車でも、乗り込んで運転し、システムにつなげて、ロード テストと開発を行うことができます」と述べています。

3xD Simulator は、現実の世界を再現した人工環境で、通常の状況での自動運転システムによる運転をテストするために使用されています。現実の世界では、天候や交通量などの条件に制約されるため、複雑な状況を確実かつ安全に再現することはできません。 
ドライバーが走行中のジャンクションの信号を赤に変えたり、霧や雨を発生させたり、センサーの動作不良を起こさせたりすることは、現実のテストでは極めて難しく、危険です。しかし、シミュレーションであれば、何百回でも簡単にテストできます。

3xD Simulator のハイブリッド アプローチでは、ドライバー、テスト ドライバー、乗員として人間を参加させることができます。これによって、人間による状況への反応、人間とテクノロジーとの関わり方、人間のテクノロジーに対する信頼度を判断できます。

たとえば、非常時用の自動運転システムをテストするなら、物理的な自動車の内部に人間を 1 人乗せて、運転しているように操縦してもらうことができます。自動車はそれが現実のことであると考えて、緊急時のシナリオや事故が発生すると、ブレーキを適用します。そのとき、人間と自動車、双方がどのように反応するかをテストできます。

カスタマイズ可能な自動運転シミュレーター 

当初このシミュレーターで使われていたビジュアライゼーション ソフトウェアは、外部委託した企業によってカスタムで開発されたものでした。このアプローチには、2 つの欠点がありました。まず、一部のテスト ケースについて、グラフィックスの忠実度が十分でありませんでした。そしてもう 1 つ、チームによる修正や拡張が簡単でなく、時間がかかるという問題がありました。「研究においては、新しいソリューションを提供したり、以前のソリューションを適応させたりする必要が生じることがよくあります。以前のシステムではそれができませんでした」と Espineira 氏は述べています。

チームはこうした問題に対処するために Unreal Engine に切り替えることを決めました。Unreal Engine を使うと、エンジンのソース コードにアクセスできるため、必要に応じてシミュレーターをいくらでも柔軟に適応させることができます。たとえば、特定のセンサーやノイズのモデルを実装したり、仮想環境内の物体を特定の形でインタラクションさせたりすることができます。Espineira 氏は次のように述べています。「Unreal は、そういったことを可能にするほか、エンジンにない機能を C++ で実装することもできます。具体的には、私は自動車と通信するためのライブラリを実装しました。これはとても役に立っています」
チームでは、Unreal Engine のビジュアル スクリプティング システム、ブループリントも活用しています。これによって、研究者がプロジェクトに直接的に関わることができるようになりました。「ブループリントはとても便利なツールです。研究者の多くは、専門の領域、たとえばセンサー、電子工学、機械学については詳しくても、シミュレーターやシミュレーション ソフトウェアについてはそれほど経験がないからです」と Espineira 氏は述べています。

ブループリントによって、プログラマーでない人も、コードを記述するのではなくノードを接続するという視覚的な形で、スクリプティングを行うことができます。Espineira 氏は次のように述べています。「もし、オープン ソースのシミュレーターを使っていて、研究者たちがセンサーやノイズのモデルを変更するためにソース コードに触れる必要があるのだとしたら、とても難しいでしょう。ブループリントを使えばシンプルにそういったことができます」

Unreal Engine でリアルタイム シミュレーターを作成

3xD Simulator を作成するにあたって、チームは Unreal Engine のビークル テンプレートを出発点としました。このテンプレートには自動車が含まれていて、ビークル ダイナミクスが組み込まれており、必要に応じて変更できます。次に、道路ネットワークと周辺環境を構築しました。WMG は一部で LIDAR スキャンを利用した 3D モデルを使用していますが、マーケットプレイスのアセットを使うこともできます。

Espineira 氏は、テスト対象の物理的な自動車を取り囲む 360 度の画面に環境を投影する手段を必要としていました。「一般的には、Unreal の環境内にカメラを置いて画面の位置を確かめてから、画像をプロジェクターに送ります」

しかし、8 台のプロジェクターを連動させて 1 つのシームレスな画像を作るとなると、事態は複雑になります。「8 つのビデオ ポートが必要で、Unreal のインスタンスが 8 つ必要になります。1 台のコンピューターでは無理なので、複数のコンピューターを使い、それらを同期させる方法を見つける必要があります」

チームは nDisplay でその問題を解決できることを突き止めました。nDisplay は、同一ネットワーク上のコンピューターのアレイで Unreal Engine の複数のインスタンスを展開して起動し、3D コンテンツを複数のディスプレイにリアルタイムで同時にレンダリングします。「インスタンスの 1 つがプライマリーとなります。残りがビジュアライゼーションを担当し、プロジェクターへの出力を行います。各プロジェクターが 1 台のコンピューターから命令を受け取るようになり、パフォーマンスが大幅に改善されました」

シミュレーターの開発における次の段階では、Unreal Engine と物理的な自動車の間で双方向に情報を送る方法を考案する必要がありました。そのために、Espineira 氏は ObjectDeliverer プラグインを使用しました。これによってサーバーへとつながるブループリントが提供され、データの送受信が可能になります。
送受信されるデータには、シミュレーションの自動車のスピードとエンジンの回転数、GPS との関連付けあるいはナビゲーションのための XY 位置、SUMO などの交通シミュレーション ソフトウェアに送信する仮想環境内でのエンティティの位置、MATLAB などの分析ソフトウェアにおけるビジュアライゼーションに使用するレーダーや LIDAR などのセンサー データなどがあります。

WMG のチームは、自動車の物理的なコンポーネントをシミュレーションにつなぐ必要がありました。そのために、現代の自動車のコンポーネントが相互に通信するためのシステムである、Controller Area Network (CAN) バス ネットワークを利用しました。このシステムにアクセスすると、スロットルの位置や、ライトがオンであるかどうかなど、自動車が送るデータをチームが読み取ることができます。また、スピードや回転数のダイヤルがどのような状況であるべきかなど、指示を記述できます。

最後に、Espineira 氏は、自動車のカメラ以外のセンサーから送られるデータを追跡するために、レーダーと LIDAR のセンサーのモデルをブループリントで Unreal Engine 内に作成しました。 

リアルタイム テクノロジーとインテリジェント カーの未来

自動運転車業界の変化のペースはますます速まりつつあり、一人ひとりに好みのソフトウェア ツール チェーンがあります。そこで、調整しやすいカスタム ソリューションをすばやく作り出す能力を持つことが重要になります。これが、WMG が Unreal Engine を使っている主な理由の 1 つです。「これは販売されている商用ソフトウェアではすぐ簡単にできることではありませんし、追加のコストがかかるでしょう」と Espineira 氏は述べています。

研究者が完全自動化のレベル 5 のシステムに近付くなか、ゲーム エンジンは、未来の自動運転車が必要とする重要な安全性テストすべてを助ける中心的な役割を果たすでしょう。 

    お問い合わせください!

    Unreal Engine の力をトレーニングやシミュレーションで活用することにご興味がありますか?是非ご連絡ください。