APM:ArduPilot Mega ドローン開発

APM:ArduPilot Mega-ドローン・RC飛行機用オートパイロット [Drondecode]

APM:ArduPilot Mega

ドローンの目覚ましい発展が注目されているこの頃ですが、これだけドローンやマルチコプターが一般に広く普及した理由の一つには、高度なオートパイロット(Autopilot:自動操縦)システムが手軽に利用可能になったこともあると言えます。一般の人でも簡単に手を出せるオートパイロットシステムはいくつかありますが、その中でも完成度が高く、その上オープンソースであるため手を加えやすいという特徴を持っているのが、「APM/ArduPilot Mega」です。

このサイトを運営しているK-ki(K-ki@Ailerocket)も、自作ドローンのオートパイロットシステムとして、APMのプラットフォームを利用しています。国内ではまだ利用者が多いとはいえませんが、APMはオープンソースのドローン開発プラットフォームを作る国際的なプロジェクト「ドローンコード(Dronecode)」の一部でもあるため、今後ユーザーが増えていくことが予想されます。

このページでは、ドローン・マルチコプターやラジコン飛行機向けのオートパイロットプラットフォームとして、今後さらに重要な役割を担っていくことが期待されるAPMを解説します。

APM:ArduPilot Megaとは

APMはマルチコプターやラジコン飛行機で、オートパイロットを実現するためのプラットフォームです。このプラットフォームは、航空機の機体に設置するフライトコントローラー(フラコン)に搭載するための「ファームウェア」、パソコンやタブレットなど地上側の端末から機体を操作するグラウンドコントロールステーション(Ground Control Station : GCS)の役割を果たす「ソフトウェア」、そして機体に搭載するフライトコントローラーである「ハードウェア」から構成されています。

APMはさらに上位の開発プロジェクト「ドローンコード(Dronecode)」の一部でもあります。Dronecodeはオープンソースのドローン開発向けプラットフォームであり、世界中の企業が協力して、ドローン開発のデファクトスタンダードを作ろうとしています。以下でその内容を詳しく説明しています。

Dronecodeプロジェクト
Dronecodeとは何か―オープンソースドローン開発プラットフォーム

ドローンの統合的な開発プラットフォームとしてDronecodeが注目されています。日本語での情報が少ないDronecodeの背景とプロジェクト構成を紹介します。フライトコントローラ・シミュレータ・アプリ用APIなどハード・ソフト両面にまたがるプロジェクトです。

Dronecodeの目的が達成されれば、ドローン開発においてかなり大きな影響力を持つことになると思われます。個人的には、今後もDronecodeには注目しておくべきだと考えています。

補足説明

APMは2016年8月にDronecodeのメイン飛行制御プログラムから外れ、Dronecodeから離脱しました。バージョン管理が不明確であり、Dronecodeを活用している企業にとって負担が大きくなっていること、およびArduPilotの使用許諾条件であるGPLv3が、機能拡張しているドローンテクノロジーの中でそぐわなくなってきていることが理由とされています。

Dronecodeからは離脱したものの、現在は他のパートナーの支援を得て開発が継続されています。依然としてAPMを利用している開発者は多く、その影響力は健在です。

以下で、APMを構成する「ファームウェア」「ソフトウェア」「ハードウェア」それぞれについて説明していきます。

ファームウェア

APMの核をなすのがこのファームウェアです。ファームウェアは機体に搭載されるフライトコントローラーを制御するためのソフトウェアで、ドローンが姿勢を保って安定した飛行を実現することを可能にしています。

APMのファームウェアは、搭載する機体の種類によって以下のように分類されます。

  • APM:Plane – 固定翼機(飛行機)用
  • APM:Copter – 回転翼機(ヘリコプター・マルチコプター)用
  • APM:Rover – 地上車両及びボート用
  • APM:Sub – 潜水機用
  • AntennaTracker – 機体との通信用アンテナの方位制御用

APM:Planeは固定翼航空機、APM:Copterは回転翼航空機、APM:Roverはラジコンカーやラジコンボートで利用されます。ドローンやマルチコプターで利用されるAPM:Copterは、メインローター+テールローターで構成される通常のヘリコプターから、トライコプタークアッドコプターヘキサコプターオクトコプターなど、多種のフレームに対応しています。

ファームウェアをフライトコントローラーにインストールする際に、機体やフレームの種類を選ぶことで、用途に応じた利用ができるようになります。

ソフトウェア(GCS)

無線を介してファームウェアが搭載されたフライトコントローラーと通信し、機体を操作するのがAPMのソフトウェア(=GCS)の役割です。また、地上で機体の設定を行う際にもこのソフトウェアが必要となります。APMでここに分類されるのは、以下の2つです。

機能的にはかなり似ていますが、Mission Plannerの方がより普及しており情報量も多いです。APM Planner 2の最大の特徴は「クロスプラットフォーム」であることで、Mission PlannerがWindowsでしか使えないのに対し、APM Planner 2はWindowsに加えてMacやLinuxでも利用可能です。

ハードウェア

APMには上述のファームウェアを搭載するフライトコントローラー「APM 1.x」および「APM 2.x」の開発プロジェクトも存在しました。過去形なのは、既に開発が終了しているからです。

現在では、APMのファームウェアを搭載するハードウェアとしては、同じくドローンコード(Dronecode)内のプロジェクトである「PX4」が開発する「Pixhawk」が推奨されています。Pixhawkの他にも、以下のようなフライトコントローラーに対応しています(以下は一例であり対応するフライトコントローラーの全てではありません)。

また、フライトコントローラー単体ではありませんが、ドローンブームの先駆けとなった「AR.Drone」を開発したパロット社が販売している、空撮用の人気ドローン「Parrot Bebop Drone」も、ファームウェアをAPMに書き換えることが可能です。

これらのAPM対応フライトコントローラーの中でも、特に推奨されているPixhawkについては、以下のページで詳細を解説しています。このページと併せて読んでみて下さい。

3DR Pixhawk-APM推奨の高性能ドローン用フライトコントローラー

APM(ArduPilot Mega)の推奨ドローン用フライトコントローラー「Pixhawk」を紹介します。日本ではユーザー・情報が少ないですが、上手く活用するためのスペックやコネクタなどのインターフェース仕様、必要な関連モジュール・周辺機器の情報などをまとめます。

APM:Copter

APM:Copter

APM:Copterは、APMのファームウェアの中でも回転翼航空機向けのものになります。もう少し詳しく言えば、ラジコンのような無人航空機のうち、マルチコプターとヘリコプターを対象としています。

APM:Copterは高い汎用性を持っており、FPVドローンレースから空撮まで幅広い用途に対応しています。また、事前に飛行するコースを指定しておけば、完全な自律飛行も可能です。マルチコプター用の他のフライトコードと比べても、非常に高い性能を持っていると言えます。

以下に、APM:Copterの持つ数多くの機能の中でも、特に重宝されるものを紹介します。もちろんここで紹介するもの以外にも様々な機能があるので、詳細が気になる人はAPM:Copterのウェブサイトを確認してください。

参考Copter Home — Copter documentation

RTL(Return To Launch:自動帰還機能)

高機能なマルチコプターには高確率で搭載されているのがこのRTL機能(自動帰還機能)です。ゴーホーム(Go-Home)機能と呼ばれることもあります。この機能を使用すると、機体が自動的に飛び立った地点まで戻ってきてくれるため、操縦に慣れていない初心者も安心してドローンを飛ばすことが出来ます(ただし上手く働かない場合もあるので過信は禁物)。

APMではGPMモジュールを追加することでこのRTL機能が利用可能になります。GPS信号を上手く受信できない、入り組んだ地形の場所や屋内では利用できない点には注意が必要です。

フェイルセーフ機能

プロポとの通信が切断されたときや、バッテリーの残りが少なくなったときなど、状況に応じて機体がどのような挙動を行うか設定することが出来ます。フェイルセーフ機能で、プロポとの通信が切断されたときにRTLが有効になるよう設定しておけば、もしもの事があっても機体が手元に戻ってきてくれます。

ウェイポイント飛行機能

Mission PlannerのようなGCSソフトウェアを利用してウェイポイントを指定することにより、機体が指定されたウェイポイントを順番に辿って飛行するように設定出来ます。空撮用途などで非常に有効な機能です。

ドローン空撮 APM:Copter AUTOモード ウェイポイント飛行
【ドローン空撮】APM:CopterのAUTOモード・ウェイポイント飛行の設定・実施法

オープンソースのオートパイロットプラットフォーム「APM:ArduPilot Mega」を利用して、指定航路を飛行するウェイポイント飛行(ミッション飛行)を実施する方法を解説します。ファームウェアにAPM:Copter/ APM:Plane、フラコンにPixhawk等を使用します。

こちらのページで詳しく紹介しているので、興味のある人は読んでみてください。

シンプルモード

シンプルモードを有効にすると、機体の向きを気にせずに操縦することが出来ます。プロポのスティックを前に倒すと、操縦者から見て前方に進み、後ろに倒すと自分の方に戻ってくる、右に倒すと右進、左に倒すと左進、といった具合です。

ラジコンを操縦する難しさの一つは、機体の向きが自分の向きと違うため、左右が分からなくなってしまうことです。シンプルモードを使用すれば、自分の左右と機体の左右が常に一致するため、比較的簡単に操縦することが出来ます。

自動離着陸機能

APM:Copterでは、飛行中だけでなく離陸や着陸時も自動操縦機能(オートパイロット)に操縦を任せることが出来ます。この機能はウェイポイント飛行時にも有効であるため、離陸から着陸までプロポによる操作を全くしなくても、指定通りのルートを飛行して着陸する、ということも可能です。

APM:Plane

APM:Plane

APM:PlaneはAPMのファームウェアの中でも固定翼航空機(飛行機)向けのものです。基本的な機能はAPM:Copterとほとんど同じですが、マルチコプターと飛行機の特性の違いを考慮し、少し制御方法が異なる部分などがあります。

例えば、APM:Copterの場合は、機体の位置と高度を保持する「Loiterモード」では、機体はホバリング状態になり指定された位置と高度を保持するように飛行します。一方でAPM:Planeの対象となる飛行機はホバリングが出来ないため、機体は指定されたポイントの周りを旋回するように飛行します。

他にも、マルチコプターを対象とするAPM:Copterには、機体が操縦者の後をついてくる「Follow Meモード」が存在するが、飛行機用のAPM:Planeでは機体があまりにも遅いスピードで飛行することは出来ないためこのモードが存在しないなど、いくつかの違いがあります。

APM:Rover

APM:Rover

APM:Roverは航空機ではなく、ラジコンカーやラジコンボート用のAPMファームウェアです。機能的にはAPM:CopterやAPM:Planeに似ていますが、APM:Roverの対象とするグラウンドビークルは飛行していないため、高度保持などが不要となり、APM:Copter/Planeのフライトモードに相当する機能が多少簡略化されています。

利用するハードウェアはAPM:Copter/Planeとかなりの部分が共通化されているため、ドローン・マルチコプターやラジコン飛行機を楽しんでいた人は、軽い気持ちでラジコンカーも試してみることができるでしょう。この点もAPMという大きなプラットフォームを利用する利点と言えます。

Mission Planner

Mission Planner

Mission Planner(ミッションプランナー)は、APMで標準的に利用されるグラウンドコントロールステーション(GCS)ソフトウェアです。パソコンやタブレットにインストールして利用し、直接設定変更をしたりするのが難しいAPMと、ユーザーの橋渡しのような役割を果たします。

機体とは独立して動作するソフトウェアなので、マルチコプターやRCプレーンの飛行中にMission Plannerが稼働している必要はありませんが、機体とMission Plannerの通信が確立していると、機体の姿勢や高度などの情報(テレメトリー情報)をパソコンやタブレット上で確認することが出来て便利です。

Mission Plannerで実現できる機能の例を以下で紹介します。もちろんこれ以外の機能もあるので、興味のある人はMission Plannerのウェブサイトも見てみると良いでしょう。

参考Mission Planner Home — Mission Planner documentation

また、Mission Plannerを使ってみようと思う人は、以下のページも参考にしてください。ミッションプランナーのインストール方法や、ミッションプランナーを使ってフライトコントローラーにAPMファームウェアをインストールする方法を紹介しています。

Mission Planner(ミッションプランナー)
Mission Plannerの使い方・インストール・設定方法 【APM:ArduPilot Mega】

APM(ArduPilot Mega)代表的なグラウンドコントロールステーション(GCS)であるMission Planner(ミッションプランナー)を解説します。インストール方法や、フライトコントローラーへのファームウェアアップロード方法、ミッションフライトの設定方法が中心です。

ウェイポイント・ミッションコマンドの指定

Mission Plannerでは、ドローン・マルチコプターなどが飛行するときの、航路上の経由地点や目標地点(ウェイポイント)を定めることが出来ます。機体は、AUTOモードやGUIDEDモードがオンになると、指定されたウェイポイントを順番にたどるように飛行します。

ウェイポイントの指定は、GoogleマップやBing Mapsなどの地図サービスを利用して読み込まれた地図上で行うため、どこをどんな順序で飛行するか確認しながら経路を設定することができます。

Mission Planner フライトプランスクリーン

また、ウェイポイントの指定だけでなく、上昇・降下やカメラアングルの操作、離陸・着陸などのミッションコマンドも指定することが出来ます。ウェイポイントとミッションコマンドを合わせて設定することにより、ほとんど完全な自律飛行を行うことも可能です。

APMの設定・キャリブレーション

フライトコントローラーにAPMファームウェアをインストールする、またはその設定を行う場合、そしてセンサーや無線通信のキャリブレーションを行う場合にもMission Plannerを利用します。フライトコントローラーとしてPixhawkを使っている場合、micro USBケーブル(Androidスマートフォンの充電ケーブルと同じ規格のUSBケーブル)でパソコン・タブレットとPixhawkを接続、Mission Plannerを起動してフラコンとPCの通信を確立することで、APMファームウェアの設定変更が可能になります。

ファームウェアのインストール・初期設定や、プロポとフラコンの通信確認、センサーのキャリブレーションなどは、ドローンやRCプレーンを飛行させる上で必ず必要な作業です。つまり、Mission Plannerを利用せずにAPMプラットフォームで機体を飛行させることは出来ないということです。

フライトデータの取得および解析

さらに、Mission Plannerを使ってフライトコントローラー内部に蓄積されたフライトデータをパソコンに取り込んだり、取得したデータを解析することも可能です。

例えばこの解析機能は、ジャイロセンサーを搭載しているフライトコントローラーが過度に振動していないか確認し、不適切な振動レベルだった場合は防振対策を取る、というように活用をすることができます。

APMとの通信・テレメトリー情報の確認

機体が飛行中に、無線通信によってMission Plannerとフライトコントローラー上のAPMファームウェアのリンクを確立していると、機体の高度や姿勢、速度などの情報(テレメトリー情報)をMission Plannerのフライトデータスクリーンで確認することが出来ます。

Mission Planner フライトデータスクリーン

プロポにもスクリーンが付いているものはありますが、Mission Plannerを利用すればPCやタブレットの大画面に表示できるため、非常に見やすくなります。

ただし、機体とMission Plannerの通信を確立する機器(テレメトリーラジオなどと呼ばれるもの)が利用する電波は、日本では電波法で制限されている周波数帯であるため利用できません。勝手に通信を行うと電波法違反になり罰せられてしまいます。

ドローン関連の法律を解説!電波法編
【電波法編】ドローン関連の法律解説!技適マークと周波数に要注意!

ドローンを規制する法律は数が多く内容も様々なためわかりにくいです。そこでドローン関連の法律から電波法を取り上げ、その規制内容や違反事例を紹介します。ドローンパイロットに限らずエンジニア・開発者も理解が必要な法律です。

これを回避するためにはXBeeなどを使い、電波法で許可されている周波数帯で通信を行うようにする工夫が必要です。

APM Planner 2

APM Planner 2

APM Planner 2は、Mission Plannerと同じくAPMのGCSソフトウェアです。基本的にはMission Plannerと同様の機能を持ってます。以下にMission Plannerとの相違点やAPM Planner 2の特徴を簡単に紹介しておきます。

クロスプラットフォーム対応

Mission PlannerがWindowsのみをサポートしているのに対し、APM Planner 2はクロスプラットフォーム仕様で、Mac OS XやLinuxにも対応しています。MacやLinuxでAPMを使おうと考えている人は、必然的にMission PlannerではなくAPM Planner 2を利用することになります。

マルチコプター・ヘリコプターのみに対応

APM Planner 2は、コプタータイプのフレームを持つ機体のみをサポートしています。従って、飛行機型や車両型、ボート型の機体では使用できません。

サポート対象を絞っているだけあり、Mission Plannerよりもフレームタイプが細かく分けられています。クアッドコプタータイプのフレームの中でも、通常のXスタイルのフレームだけでなく、前方のアームが広くひらいた「Vスタイル」のフレームや、フレームがH字型をしている「Hスタイル」のフレームを選択することが可能になっています。

キャリブレーション・設定はMission Plannerと共通

オートパイロットの設定やセンサー類のキャリブレーションについては、APM Planner 2とMission Plannerで共通しているようです。Mission Plannerで設定済みのフライトコントローラーは、APM Planner 2で再設定を行う必要がありません。

AntennaTracker

AntennaTrackerは、機体とGCSの通信を長距離でも確立するためのプラットフォームです。PixhawkなどのAPMに対応しているフライトコントローラーをアンテナトラッカーのコントローラーとして使い、地上の指向性アンテナの向きを制御することで、機体とGCS間の通信可能距離を飛躍的に向上させることが出来ます。

アンテナを向ける方向は、機体からテレメトリー情報として送信されてきたGPS情報と、地上でアンテナトラッカーのコントローラーとして利用されているフライトコントローラー自身が持っているGPS情報を利用して計算します。

APM:Planeを使ったラジコン飛行機は、機体の飛行範囲が広くなるためAntennaTrackerと相性が良いです。しかし、日本では上にも書いたように電波法の制約があり機体とGSCの間で通信を行うためのハードルが高いため、あまりアンテナトラッカーを利用する機会はないかもしれません。

APM:ArduPilot Megaのまとめ

APMはここまでに紹介したように、機体に搭載するフライトコントローラーのファームウェアと、そのセッティングなどを行うためのソフトウェアを中心とした、オープンソースの無人航空機(UAV)用オートパイロットプラットフォームです。その性能は非常に高く、様々な目的での利用に適していることが分かってもらえたと思います。

一般ユーザーの間では、DJI Phantomシリーズのような既成品のマルチコプターが主流となっていますが、今回解説したAPMなどを利用してドローンを自作するのも非常に面白いです。興味の湧いた人は、ぜひチャレンジしてみてくださいね。

  • この記事を書いた人
  • 最新記事

K-ki

著者:K-ki 子供のころに作った模型飛行機がきっかけで航空宇宙の世界に足を踏み入れたエンジニア。HNは「けーき」と読みます。 好きなものは航空機(固定翼・回転翼・ドローンなど全般)と生き物・アクアリウム。

-APM:ArduPilot Mega, ドローン開発
-

© 2024 Ailerocket/エルロケット