はじめに
このページは,
Ardupilot系ドローンを,インターネット越しに遠隔操縦するシステムを作ろう!
という企画です.
(追記)
2020年中頃には,携帯電話回線のドローンへの解禁が噂されています.
いよいよ,ネット越し操縦の時代になってきました!
「5G回線でリアルタイム映像を見ながら操縦すること(1人1台操縦ルール)」などという変な方向へルール化されないことを祈ります...
1人で何機も操作しなければ,人材不足の解消にはなりませんよ!
概要
「ドローンてのは空飛ぶ自律移動ロボットだ!」
「目視内なんてただのラジコンで十分だ!目視外飛行こそロボットの活躍の場だ!」
「ラジコンなんかDJIに任せるわ!Ardupilotはロボットのためにあるんや!」
「(DJIの)Manualを飛ばせない? へっ,それじゃ(Ardupilotの)Stabilizeは到底無理だな!!」
というArdupilot愛の溢れる方向けの企画です(違
当面は「ドローン操作システムを作ろう」というタイトルですが,
ゆくゆくは**操作システムじゃなくて管制システム**に,変わると良いな(希望的観測
段階的にページを作っていきますので,ゆっくりお待ち下さい.
準備するもの
各章によって必要な機材は異なりますが.
全体として以下が必要です.
・Ubuntu Linuxの入ったPC(インテル系CPU必須,屋外でも試すのでノートPCを推奨)
・コンパニオンPCを搭載したArdupilot系ドローン(コンパニオンはRaspberry Piを推奨)
・無線LAN,RoLa,LTEなどの無線通信装置と,インターネット接続手段
・インターネットに直結されたLinuxサーバ(できればVPS.クラウドや自宅サーバでも可能)
・Webブラウザ(PC,スマホ,タブレット)
最終的なシステム構成
したがって,
- ドローン(Ardupilot系マルチコプター)
- Linux
- Raspberry Pi
- Python
- dronekit, dronekit-sitl
- paho-mqtt, MQTT over WebSocket
- Leaflet
- HTML, スタイルシート, JavaScript
などの知識が必要になります.
本企画では,それぞれの技術を一応,入門形式で紹介していきますが,
より詳しく学ぶためには,ネット上の様々な記事を読まれる方が良いでしょう.
プログラムに関しては,
・サンプルソースの多少の改変
・ヘタに関数やクラスを多用せず,いわゆる「ベタ書き」
を心がけました.なるべく理解しやすいように.
玄人Pythonistaや玄人JavaScripterの方は,適宜修正して使ってくださいね(^^ゞ
目次
現時点での目次です.たぶんコロコロ変わります...
- dronekit-python を使ってみる SITL編
- 補足:dronekitのサンプルプログラム
- dronekit-python を使ってみる 実機編
- ドローンを動かす SITL編
- ドローン操作システムの概要
- ドローンを動かす 実機・Raspberry Pi編
- MQTTブローカーのセットアップ
- pythonでMQTT送受信
- dronekitの情報をMQTTで送信してみる
- MQTTをWebブラウザで受信してみる
- 地図上にドローンの位置を表示してみる
- Leafletのマーカーを変更する
- MQTTでドローンにコマンドを送る
- Webブラウザからドローンにコマンドを送る
- 地図上のクリックした場所を目標地点にする
- VPSで環境構築する
- インターネット経由で実機ドローンを動かす
###ArduPilot SITL
- ArduPilotのSITLを動かす
- 補足:ArduPilot SITLをラズパイ4で動かそう
- ArduPilot-SITLをdronekitで動かす
- ArduPilot-SITLをドローン操作システムで動かす
- ArduPilot-SITLで固定翼機を飛ばす
追加して書きたい
複数ドローンのオペレート(管制)
Appendix A
- 複数のドローンを操作できるようにする
- 集団行動(swarm)をする
- 衝突回避アルゴリズムでドローン同士で回避する
- 衝突回避アルゴリズムで有人機を回避する
- フライトプラン(ウェイポイントパス)の表示
画面表示の向上
Appendix B
- Leafletに様々な地図を追加する
- 人口密集地域や空港制限表面を表示する(要Leafletのバージョンダウン)
- ドローンの進行方向,速度,目標地点を線で表す
表示するマーカーの種類を増やす
Appendix C
- シミュレータと実機をアイコンで分ける
- ローバーを走らせる
- ADS-Bを受信して,有人機を地図に表示する
- 気象観測装置を作り,地図に表示する
- IoTデバイスも表示する
- DJI A3/N3のドローンも操作する
- 超小型スマホを積んだDJI完成機を表示する
国土交通省の仕様に合わせる
Appendix D
- 情報提供機能(SDSP)の地図で表示する
- 運航統合管理機能(FIMS-UASSP)に情報を投げる