Controller
コントローラーの選び方
趣味のドローンを組む際や、ちょっと自作ロボットで遊んでみようと思いたった時、はたまた仕事でドローンを扱っている場合でさえ、プロジェクトを始める前にまず直面するのが、どのコントローラーを使うか、という非常に重要なのに面倒な決断です。いわゆるフライトコントローラー・オートパイロット・ロボットコントローラーを選択する際に誰もが感じるのが、選択肢が多すぎて困る、ということだと思います。一昔前には考えられないほど恵まれている、とも言えますが、あまりの情報量に頭を抱えている方が非常に多いのも事実です。また、情報がネットのあちこちに分散していて、なおかつものすごいスピードで技術が進化しているので、見つけた情報が古すぎて役に立たないどころが、却って有害でさえある、ということも多々あり、スマートに情報を精査しなくてはなりません。しかし、すべての制御コントローラーの最新情報を網羅するのは不可能です。そこで、このサイトではオープンソース系のフライトコントローラーに絞って、なるべく最新の情報を提供していきたいと思います。
フライトコントローラー・オートパイロット・ロボットコントローラーとは?
定義はいろいろありますが、センサーやユーザーのインプットを処理して、外部のアクチュエーターに操作信号を送る小型コンピューター、と考えれば基本的にみな同じものと考えられます。当然、マルチコプター専用や、ロボット専用のものもありますが、オープンソースであれば、どれでも流用可能です。
これらは一般的に、小型省電力のマイクロコントローラーや、シングルボードコンピューターをベースにし、SDカードやセンサー、各種入出力ポートを備えた箱です。センサーや外部入力データをI2C、SPI、CAN、シリアル等のポートで受け取り、外部機器にPWMや各種ポート経由で制御信号を送り、モーター、サーボ、その他のアクチュエーターを操作して、機体の姿勢制御等を行う、という基本形は同じです。さらに、WiFi、Bluetooth、ZigBeeなどの通信リンクを経由して、リモート制御やモニタリングもできたり、ログを保存しておいて後で解析したりできるものが多いです。
性能や機能はコントローラーによって大きく異なります。フライトコントローラーでは、最もシンプルなものはジャイロと加速度センサーを使って機体の安定度を増すだけのものから、GPS、レーザーレンジファインダー、画像認識などを使って自動で障害物を避けつつ、複数機が連携しながら自律的に飛ぶものまで様々な種類があります。

フライトコントローラーのエコシステム
コントローラー本体
IMUやバロメーターなどの最低限のセンサーを搭載したオンボードコンピューターを指します。
フライトコントローラーには大まかに分けて、マイクロコントローラーをベースにしたのものと、Linux
SBC (Single Board
Computer/シングルボードコンピューター)をベースにしたものがあります。また、最近では、マイクロコントローラーベースのFCで姿勢制御し、コンパニオンコンピューターとしてLinux
SBCを接続し、そちらに画像処理などの高負荷処理を担当させる方式も増えてきました。
ソフトウェア
ドローン向けのソフトウェアは、機体側で実行するフライトコントロールと、PCやタブレット上で実行するグランドコントロールの2つに大きく分けられます。

オンボードフライトコントロールソフトウェア(ファームウェア)
ファームウェア は、機体上の制御コンピューター(オンボードフライトコントローラー)上で走るソフトウェアです。
グランドコントロールステーション (Ground Control Station / GCS)
Ground Control Stationは、PCやタブレット、スマートフォン上で実行され、ファームウェアの設定や機体の状態を監視したり、ウェイポイントの入力などを行うソフトウェアです。テレメトリーリンクを介して機体側と通信し、センサーの値をモニタリングしたり、機体にコマンドを送ったり、ログ解析を行ったりすることができます。
外部機器
フライトコントローラー以外に、外部センサー、パワーモジュール、RC送受信機、テレメトリー通信モジュール等が必要です。
外部機器がコントローラーを選択肢を限定することもあります。例えば、最新のLiDARやIRビーコンを使いたい場合、コントローラー側でセンサーに対応していなければ、そのセンサーを使うことはできません。特定のフライトコントローラー向けのドライバーしか提供していないセンサーや、サポート外になるセンサーも多いです。オープンソースコントローラーの場合、共通の信号経路さえ確保できれば(I2C、CAN、シリアル等)、自分でドライバーを書く道は残されています。これはテレメトリーモジュールやジンバル、その他のアクチュエーター等も同じです。

オープン v.s. プロプライエタリ
オープンソースのフライトコントロールソフトウェアは多数あり、機能や性能が大幅に違います。クローズドな製品は見た目は良く、初心者には扱いやすいことが多いですが、機能的には劣ることが多く、またメーカーのサポートも期待できません。
オープンソースシステム
ここでいうオープンソースには、2つの意味があります。通常、オープンソースというとソフトウェアを連想しますが、ハードウェアもオープンソースで開発される場合が増えてきています。この場合、回路図やPCBのレイアウトデータ等がオープンソースで公開され、自由に改変したり、改良を加えたりして自分で製造したり、PCB専門の会社に作ってもらことができます。ドローン向けのフライトコントローラーは、多くがハードウェアとソフトウェアの双方をオープンソースで展開しています。
オープンソース・フライトコントローラーの例
PX4 Native Stack | ArduPilot |
---|---|

その他のオープンソースソフトウェア
オープンソースハードウェアの例
Pixhawk
Pixracer
Pixhawk Fire (PXF)
その他のオープンソースハードウェア
- CC3D
- Paparazzi
部分的オープンソース
オープンとクローズドなソフトウェアとハードウェアを組み合わせたシステム
オープンソースソフトウェア + クローズドソースハードウェア
完全クローズドシステム
クローズドなプロプライエタリシステムでは、ソフトウェアもハードウェアもソースは公開されていませんが、限定的な機能拡張を可能にするAPIが提供される場合があります。
- DJI SDK
- etc.
その他のオンボードコンポーネント
要件によって、追加のコンポーネントが必要になります。
センサー
IMU
コンパス
- GPSとコンパスが一緒になったモジュールが多い
- Pixhawkの場合、内臓も含め、最大3まで
バロメーター
GPS
- GPS
- 複数接続した場合、もっともエラーの少ないモジュールに自動切り替え
- RTKの場合、精度はセンチメートル単位
レンジファインダー

ソナー(超音波センサー)
レーザーレンジファインダー
- Pulsed Light LiDAR Lite
- LightWare SF02 (赤外線Time-of-Flight (ToF)方式)
- TeraRanger One
- Verodyne VLP-16 Puck (360度)
ヴィジョンセンサー
- OpticalFlow
- コンピューターヴィジョン、ステレオカメラ
- RealSense
- マルチスペクトラムカメラ
- ビーコン・プレシジョンランディング
- IRLock
パワーモジュール
駆動用のバッテリーから、制御機器に必要な5Vや12Vに降圧した安定化電源を供給し、電圧や電流のモニタリングも行うモジュールが一般的です。シャント抵抗式と、より信頼性の高いホールエフェクトセンサーがあります。
- BEC(電圧レギュレーター)
- バッテリー電圧、電流計
RC受信機
現在のドローンは、基本的にラジコンの延長線上にあるので、ラジコン用の送受信機を使います。
テレメトリー
FPV
- FPVカメラ
- 映像伝送機(送受信機)
- OSD (On Screen Display)
- ジンバル
アクチュエーター / スラスター
- サーボ
- ESC (Electric Speed Controller、いわゆるアンプ)
- ブラシモーター・ブラシレスモーター
- リニアアクチュエーター
インジケーター
- マルチカラーLED
- ブザー
地上側コンポーネント
- PC/タブレット/スマートフォン
- RC送信機
- ビデオモニター
- FPVゴーグル
- アンテナトラッカー
- RTK GPSモジュール
Pixhawkファミリー
Pixhawk系のフライトコントローラーに関して、こちらのページでより詳しい情報を紹介しています。
Pixhawk・ArduPilotの歴史
DIYDrones、3DRとArduPilot
2007年
- Chris Anderson - 元Wired編集長 - が、レゴマインドストームをつかってドローンを自作したことがきっかけでDIYDrones.comを始める
2008年
- Jordi Munoz - メキシコ人高校生 - が、任天堂Wiiリモコンの加速度センサーを使って、電動ラジコンヘリの自動フライトシステムを構築。当時19歳
- 二人がDIYDronesで出会い、3D Roboticsを立ち上げる
2009年
- ArduPilotソースコード公開
ETH ZurichとPX4プロジェクト
2009年
- スイス工科大チューリッヒ校(チューリッヒ工科大 = ETH Zurich)のComputer Vision and Geometry Labの学生だったLorenz Meierによって開始
- TEDで有名なRaffaello D’AndreaもETH Zurich在籍。PixhawkのCVGとは別のInstitute for Dynamic Systems and Controlグループ在籍
Pixhawkプロジェクト
2012年
- PX4ハードウェアをオープンソースでリリース(3DRが製造、販売)
2013年
- Pixhawk販売開始