自動運転シミュレータ AirSim のご紹介
お久しぶりとなります。最近は Ubuntu + Python での作業が増えてきて Visual Studio がちょっと恋しいコクブンです。
さて、先日開催されました Automotive World 2018 では自動運転シミュレーション環境として Unity を使用して簡易的な走行環境を構築しました*1が、自動運転のシミュレーション環境については、 Unity 以外にも、車両運動シミュレーションソフトである CarSim (株式会社バーチャルメカニクス)や Unreal Engine (Epic Games) 等、様々なソフトウェアが利用されています。
今回は、その中のひとつとして Microsoft AI & Research Group が公開しているオープンソースソフトウェアである AirSim をご紹介したいと思います。
AirSim とは
AirSim は、 Microsoft AI & Research Group が公開した Drone 向けの自動運転シミュレータです。
現在は Drone に加えて自動車のシミュレーションも行うことが出来る様になっています。
Unreal Engine 向けのプラグインとして提供されているため、 Unreal 環境に容易に取り込んで利用することが出来ます。
AirSim は、最近の Microsoft の傾向よろしくオープンソースプロジェクトであるため、誰でもソースコードを入手して最新の機能を試すことが可能です。
AirSim で出来ること
AirSim はマニュアルシミュレータとして( PX4 や Xbox One GamePad 、ステアリングコントローラ等を使用して)リモートコントロールを行うことも可能ですし、 API 経由でのプログラム可能なシミュレータとして利用することも可能になっています。
AirSim の導入
AirSim を起動してマニュアル操作する
※以降、 Windows 環境を前提に紹介しています。
展開したファイル内の Run.bat を実行すると AirSim が起動します。
起動直後に自動車と Drone のどちらのシミュレータを利用するか聞かれますので、利用したい種別に沿って Yes / No を選択してください。
シミュレータ種別 | 確認ダイアログの選択値 |
---|---|
自動車 (car) | はい (Yes) |
Drone (quadrotor) | いいえ (No) |
あとは各種 Remote Controller で任意に自動車 / Drone を操作することが出来ます。
※一部(カメラやシステムコントロール等)の操作はキーボードで行う事も可能です。
AirSim を API で操作する
AirSim の API は TCP/IP 上で MessagePack-RPC プロトコルを利用しているため、 MessagePack-RPC を利用可能なさまざまな言語から操作することが可能です。
特に Python での実装に関してはラッパーが提供されていますので、プロトコルをあまり意識せずに利用することが出来ます。
AirSim の利用条件
AirSim は MIT License で公開されているため、企業に於ける開発研究でも比較的自由に利用することが出来ます。
また、 Python (その他の言語)からの制御が容易なこともあり、今後の自動運転シミュレーション環境として AirSim は非常に期待出来る環境ではないでしょうか。
*1:Automotive World 2018 での出展内容につきましては弊社公式サイトで紹介しております。
*2:本バイナリには Unreal Engine のライブラリも含まれているため、ビルド済バイナリを利用する場合は別途 Unreal Engine をインストールする必要はありません。
*3:一部のバイナリはサイズが大きいため分割されています( "001", "002", .. )。こちらの展開には 7-Zip 等の展開ツールが必要になります。