やりたいこと
ドローンを利用して自動操縦(Autopilot)のロジックを組みたいですが、自宅でドローンを飛ばしたら家が「破壊」されてしまうので、Simulatorを使いたいなと思いました。
色々と調べた結果、DJI Assistant 2というアプリがあるので、それを使って開発PCでデバッグしながら動きを見られるといいです。
それでは、早速作業に入りましょー!
必要なもの
バージョン
- 開発PC
- Android Studio Hedgedog
- Android SDK API Level 31
- Gradle 7.5
- Gradle JDK Correcto-11
- Simulator用PC
- DJI Assistant 2 for Phantom
- Bridge App用携帯
- DJI Bridge App
システム構成
手順
1.(開発PC)DJI Mobile SDK V4をクローン
2.(開発PC)DJI DeveloperでAPIキーを発行
- DJI Developerでログイン
- 「CREATE APP」でアプリケーションを登録する
※Package Nameはサンプルコード内のパッケージ名(各パッケージが存在するパス:Sample Code/app/src/main/java)。その他の項目は適当に記載
3.(開発PC)サンプリコード内にAPIキーを入力
AndroidManifest.xml(パス:Sample Code/app/src/main/main)
4.(開発PC)Sample Codeフォルダーを開いてビルドする
- gradle-wrapper.properties(パス:Sample Code/gradle/wrapper)で一度「Sync」OR「build」
※まず最初からSyncするといいと思うが、大抵の場合ビルドエラーが起こる。こんな感じ
- 「Change Gradle version in Gradle wrapper to 7.5....」を押すと、自動的にgradle-wrapper.propertiesの中身を書き換えてくれて、ビルドする
5.(開発PC)エミュレータを起動
- 起動後に「Register App」を押すと、DJI SDK利用が可能になる
6.(BridgeApp用携帯)携帯にBridgeAppをインストール
- iOSはApp Storeからダウンロードする
- Andriodはdji-sdk/Android-Bridge-Appからapk経由でインストール
7.(BridgeApp用携帯)Bridge AppでRCに接続
- 携帯は開発者モードをONにし、USB DebuggingをONにする
- RCの電源をON、Phantom 4の電源をONにする
- Bridge Appを立ち上げて、USBでRCに繋ぐ
- 画面のIPアドレスをメモる(こちらの端末では192.168.1.35)
8.(開発PC)IPアドレスをエミュレータ画面に入力
9.(Simulator用PC)DJI Assistant 2でPhantom 4に接続
- DJI Assistant 2 for Phantomを立ち上げて、USBでPhantom 4に繋ぐ
- このアプリを使うには、以下の制限と設定が必要(めんどい、、、
※新し目のMACで使えない
※USBドライブにアクセス制限あるPCはそれを解除する必要 - 検知できると、こんな画面が出てくる
- 「Simulator」>「Start Simulating」を押すと、Simulatorが立ち上がる
※ファイアウォールを無効化にする必要!そうしないとRCからの信号が到達できない
10.🍷🍷🍷操作できました🍷🍷🍷
結論
ドローン本体がないとなにもできないです(泣)
ドローンにUSBで繋ぐところはなぜファイアウォールを無効化する必要があるのか今後調査課題とします。