fumiLab

fumimakerが作ったもの、やったことについて書いていきます。

UAVの自律飛行について

結構前に書いたメモ書きです.間違っていることもあるかもしれないので指摘してもらえると嬉しいです.書き途中ですがそのうち更新するかもしれません.

UAVを自律飛行させるためには

ドローンを自律飛行させるためにはオンボードで制御する方法と遠隔で制御する方法がある.

オンボード

ドローンの上にRaspiやIntelNUC, Jetsonなどの上位のコンピュータ(コンパニオンコンピューターとも言われる)を置いてFC(Flight Controller, 飛行制御装置)にあっちいけこっち行け,あーだこーだ命令をすることで自律で飛行する方法.FCの種類,FWやコンパニオンコンピューターの種類で通信方法やプロトコルが異なる.

自律で制御するためにはオンボードで制御するのが一般的であるが,自律で飛行するためのSLAM, V-SLAMなど各種演算を,飛行する速度に対して十分な速度で行うためにはある程度のコンピューティングリソースが必要であるため重量がかさむ.このため,ペイロードの関係でドローンが大型化してしまうことがある.

リモート

ドローンの上で自律飛行のために必要な演算を行うのではなく遠隔地で演算を行う方法.ドローンに強いPCを載せる必要はなく,ドローンで取れたデータをGCS(Ground Control Station)へ転送し地上で潤沢なリソースを使って演算できる.ペイロードが大幅に節約できるためMAVといわれるサイズのUAVやTinyドローンでも自律飛行できることが期待されている.

しかしながら,ドローンで取れたデータを常にGCSへ転送する必要がある,広い通信帯域と低いレイテンシが必須である.このため,遠距離で自律飛行する場合,通信環境が良くない場合は適さない.特に日本ではこのような通信がで電波法により制限されており通信の自由度が低いため気軽に実施できない.5G,4Gによってこれを行う研究がなされているが,都市部以外では利用が難しい.また,災害時などインフラが利用不可である際は何もできない.

FCについて

FCはPCと同じようにハードウェアにOS(FW)を書き込むことで動作する.同じハードウェアでも別のSOが動作するものもある.ここでは代表的なOSS物をあげる.

Ardupilot系

Pixhawkハードウェアがある.パチモンがたくさん.粗悪品に気をつけろ.FWはPX4とArdupilotがある.Mavlinkで通信.

PX4はQGS,ArdupilotはMissionPlanner,2がある.2は最新リリースでMac起動不可.Nightlyならいける.MAVlinkなので別の組み合わせでもいけるが微妙に対応していない機能などもあるので渋い,

低速だが,Autopilotメインなので各種機能やセーフティ,EKFなどが充実.最近はリフレッシュレートを高速にしようという計画があり改良がなされているらしい.

BetaFlight系

たくさん種類がある.STM32F1〜7まで,FWはMultiwiiに始まり,CleanFlight,BetaFlight,Inavなどが有名である.それぞれ特徴がある.

高速だがAutoPilotメインではない.iNavはAutopilot機能が充実している.

通信プロトコルについて

Mavlink

V1. V2

便利なラッパーが開発されているが,dronekitは3DRが喧嘩別れした影響で閉鎖になった.

https://qiita.com/Madnyax/items/268c998124e06ad54e7f

https://qiita.com/hsgucci/items/27fa33d7c7de505839da#fn8

2系なのでやめたほうがいいardupilotはどうすればいいんだろうね...とりあえずpymavlinkを使おう.PX4はmavsdkを使おう.ちなみにmavsdkはPX4用に開発されているためArdupilotに対応してないが対応しようとする動きがある.https://discuss.ardupilot.org/t/introducing-mavsdk/45124/3

また,ROS使いはMAVROSがある.

Multiwii serial Protocol

V1,V2

pipyにある.インストールできる.V1はIDが1byteで枯渇してしまっていてiNavではV2を推奨している.V2はMavlinkみたいになってきた.比較的簡単な仕組み.

WIPです,すみません.間違ってたら指摘してください.