(備忘録 出典 https://ardupilot.org/dev/docs/companion-computers.html その他)
フライト コントローラーとコンパニオン コンピューターは、アプリケーションレベルにおいてはMAVLinkプロトコルを使用します。
フライトコントローラーの通信機能は限られています。テレメトリーを拡張した専用の通信機を接続しても、現実は数百メートルくらいしか届きません。コンパニオンコンピューターに通信機能をもたせてフライトコントローラーにデータを送受できます。たとえばLTE接続すれば飛距離はとてつもなく伸びます。
フライトコントローラーによって生成されたすべての MAVLink データを取得し、それをコンパニオンコンピューターで処理して飛行中にインテリジェントな決定を下すこともできます。
たとえば、「車両がこれらの GPS 座標にあるときに写真を撮る」、高度なセンサーからの情報を収集して前処理する、ライト、補助サーボ、またはその他のインターフェイスを作動させるなどです。
このようにフライトする機能と追加機能をフィライトコントローラーとコンパニオンコンピューターに分けることで、柔軟な構成を取れるのです。
コンパニオン コンピュータには、ハードウェアとソフトウェアという 2 つの主要部分があります。コンパニオン コンピュータ ハードウェアは、軽いシングル ボード コンピュータが使われることが普通です。
コンパニオン コンピュータ ソフトウェアとは、コンパニオン コンピュータで実行されるプログラムとツールを指します。「フライト コントローラーから MAVLink テレメトリを介してテレメトリ データをルーティングする」という基本的な処理はどのようなアプリケーションでも必要です。
そのためいくつかのライブラリーが開発されています。一般的なコンパニオンコンピューター ソフトウェア ツールのリストを以下に示します。
- PyMavlink
- APSync
- MAVProxy
- DroneKit
- FlyOS
- Maverick
- ROS
- Rpanion-server
以下、私のコンパニオンコンピュータパッケージを調べた独断的感想です。
PyMavlink
Ardupilotのツールが作られているPythonインターフェースです。
MAVProxyやDronekitもこれにより作られています。
ライブラリーに二段階あることが混乱を招きます。
pip install pymavlink
で簡単にインストールできるものが標準で、Mavgenで生成するライブラリーも別にあります。
あいにく丁寧に書かれた入門文書は発見できておらず、サンプルを見るしかありません。
APSync
APSyncはArdupilotと会話したり、インターネットサービスとの統合ができます。
コンパニオンコンピューター(Raspberry PIなど)のパッケージもあるのですが、中身はMavproxy, APWebなどをまとめたものです。
使いやすくするということは、環境を決めています。
MAVProxyだけを動かしたいという時には他のプログラムは不要だし、Raspiのパッケージは3年も前のものでした。これ、upgradeかけていいのかな?
それと、Raspberry PIのWIFI出力はとても弱いです。10メートル届きません。
改造はいずれにしろ、必要でしょう。
APSyncと目的が合致した人にはぴったりですが、コンポーネントをそれぞれ導入したい人には避けたほうがよいと思われます。
APSynceをインストールしました、MAVProxyをインストールしましたということをやると、将来、なにが起きるかわかりません。
MAVProxy
MAVProxyはコンパニオンコンピューターからフライトコントローラーにコマンドラインからコマンドを送るために使われます。
テレメトリーのルーティングもできます。
ただAPIはないようです。残念!
コンパニオンコンピューターに様々な通信方式をまかせてフライトコントローラーにルーティングしてもらえる方法は有益です。
Drone Kit
DroneKitはPythonでフライトコントローラーを操作できます。
Mavlinkのめんどくさい処理をやらなくていいです。
3DRが作ったものですが、いまだに使われています。
PythonでArdupilotのアプリを作りたい時には、必須にならざるを得ません。
FlyOS
かなり大掛かりです。コンパニオンコンピューターにより、ロボット化を目指しているようです。
Maverick
オールインワンな感じです。Githubを見つけました。Vision_landingというようです。3年前からアップデートがないので、使うのは心配です。
Rpanion-Server
node.jsなのでjavascriptベースです。
-
フライト コントローラのテレメトリ転送
-
ネットワーク制御 – 設定可能な Wi-Fi とイーサネット
-
ビデオストリーミング
-
テレメトリ ログ管理
-
フライト コントローラへの NTRIP ストリーミング
通信方法
一般的にフライトコントローラーとグランドステーション(Mission Plannerとか)の到達距離を伸ばそうとすると、テレメトリー機器という名の装置を購入することが普通です。
しかし、コンパニオンコンピュータを使う最大のメリットはTCP/IPを使えることです。
なぜならばいったんTCP/IPで接続できれば、ソケットという概念(実装レベルではポート)を使い、さまざまなアプリケーションを一本の接続でまかなえるからです。
TCP/IPならば長距離接続も考えられます。
2023年時点で無免許で行うためには携帯電話会社が提供しているLTE/5G、ソラコム、さくらインターネットなどが提供しているIOT用のサービスしかないでしょう。
免許を取得していたとしても、それぞれのドローンは移動局として詳細を届け出ないといけません。利便性が極端に悪いのです。