iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

自動運転シミュレータ 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 の導入

Windows 環境


Windows 環境で AirSim を使用する場合、ビルド済のバイナリが利用出来ます。*2
GitHub の AirSim サイトより Releases ページに進むと、 Windows 向けのバイナリが入手可能です。
バイナリは走行環境別に zip ファイルとして提供されています。必要な環境の zip ファイルをダウンロード&展開してください*3
展開後は Rub,bat ファイルを実行することで AirSim 環境が起動します。(特にインストール作業等は必要ありません)

Linux (Ubuntu 16.04 LTS) 環境

Linux 環境で AirSim を使用する場合、現時点( 3/26 現在)ではソースコードよりビルドする必要があります。
こちらの手順については次回の記事にて紹介させていただく予定です。

AirSim を起動してマニュアル操作する

※以降、 Windows 環境を前提に紹介しています。


展開したファイル内の Run.bat を実行すると AirSim が起動します。
起動直後に自動車と Drone のどちらのシミュレータを利用するか聞かれますので、利用したい種別に沿って Yes / No を選択してください。

シミュレータ種別 確認ダイアログの選択値
自動車 (car) はい (Yes)
Drone (quadrotor) いいえ (No)



あとは各種 Remote Controller で任意に自動車 / Drone を操作することが出来ます。

※一部(カメラやシステムコントロール等)の操作はキーボードで行う事も可能です。

AirSim を API で操作する

AirSim の APITCP/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 等の展開ツールが必要になります。