はじめに
Microsft製OSSのフライトシミュレータAirSimを試してみる。環境は下記のとおり。
項目 | バージョン |
---|---|
OS | Windows10 |
Python | 3.7 |
AirSim | 1.2.2Windows |
インストール
- マップ毎にビルドされたバイナリ版があるのでそちらを使用する。
- 下記リンク先のAssetから任意のzipをダウンロード。今回は
Blocks.zip
とAfrica.zip
を入手。
https://github.com/Microsoft/AirSim/releases - zipを展開して中にある
run.bat
を実行。 - 初回は必要なランタイム(UnrealEngine, VisualStudio)のインストールを促されるので従えばOK。
- GPUなしPCでは表示がかなり厳しい。下記を参考に
run.bat
を編集してクオリティを抑える必要あり。
https://microsoft.github.io/AirSim/docs/use_precompiled/ -
run.bat
修正例。
run.bat
start Blocks -ResX=640 -ResY=480 -windowed
実機プロポで操作
- 実機用プロポ(ラジオ送信機)でマニュアル飛行を試してみる。
- 使用したプロポはこちら。
https://betafpv.com/products/literadio-2-radio-transmitter - AirSim起動後にプロポをUSB接続したらJoyStickとして認識される。
* キーバインドの変更方法がわからないのでまともに使えてないので継続調査要。 * この辺のソースを修正してビルドが必要? https://github.com/microsoft/AirSim/blob/master/Unreal/Plugins/AirSim/Source/SimJoyStick/SimJoyStick.cpp#L50 https://github.com/microsoft/AirSim/blob/master/docs/remote_control.mdMicrosoft製のフライトシミュレーターであるAirSimを試している。LiteRadio2は挿すだけでjoystickとして簡単に認識したけど、キーバインドの変更方法がわからないぞ。要ビルド?
— H.Fujikawa (@hfujikawa77) March 24, 2020
あとMinibookではさすがにカクカク。 pic.twitter.com/ojak3DKPEB
Pythonから操作
- GithubからAirSimのプロジェクトをCloneしてAirSim起動後に下記Pythonスクリプトを実行する。
https://github.com/microsoft/AirSim/blob/master/PythonClient/multirotor/hello_drone.py - 実行手順。
pip install
の個所は実行者の環境によって異なる可能性あり。
$ git clone https://github.com/microsoft/AirSim
$ cd ./AirSim/PythonClient/multirotor
$ pip install opencv-python
$ pip install msgpack-rpc-python
$ python hello_drone.py
- 飛行するところ。
* `hello_drone.py`を見ると離着陸、移動など参考になるコードがある。わかりにくいけど、PythonスクリプトからAirSim上のドローンの離陸を実行。#AirSim pic.twitter.com/dXEMFzm4Pn
— H.Fujikawa (@hfujikawa77) March 24, 2020
用途 | コード例 |
---|---|
機体接続 | client = airsim.MultirotorClient() |
機体状態取得 | state = client.getMultirotorState() |
離陸 | client.takeoffAsync().join() |
移動 | client.moveToPositionAsync(-10, 10, -10, 5).join() |
まとめ
AirSimを使うことでプロポによるマニュアル操作、Pythonをつかったプログラミング操作のシミュレーションができることがわかった。