Skip to main content

Controller

コントローラーの選び方

趣味のドローンを組む際や、ちょっと自作ロボットで遊んでみようと思いたった時、はたまた仕事でドローンを扱っている場合でさえ、プロジェクトを始める前にまず直面するのが、どのコントローラーを使うか、という非常に重要なのに面倒な決断です。いわゆるフライトコントローラー・オートパイロット・ロボットコントローラーを選択する際に誰もが感じるのが、選択肢が多すぎて困る、ということだと思います。一昔前には考えられないほど恵まれている、とも言えますが、あまりの情報量に頭を抱えている方が非常に多いのも事実です。また、情報がネットのあちこちに分散していて、なおかつものすごいスピードで技術が進化しているので、見つけた情報が古すぎて役に立たないどころが、却って有害でさえある、ということも多々あり、スマートに情報を精査しなくてはなりません。しかし、すべての制御コントローラーの最新情報を網羅するのは不可能です。そこで、このサイトではオープンソース系のフライトコントローラーに絞って、なるべく最新の情報を提供していきたいと思います。

フライトコントローラー・オートパイロット・ロボットコントローラーとは?

定義はいろいろありますが、センサーやユーザーのインプットを処理して、外部のアクチュエーターに操作信号を送る小型コンピューター、と考えれば基本的にみな同じものと考えられます。当然、マルチコプター専用や、ロボット専用のものもありますが、オープンソースであれば、どれでも流用可能です。

これらは一般的に、小型省電力のマイクロコントローラーや、シングルボードコンピューターをベースにし、SDカードやセンサー、各種入出力ポートを備えた箱です。センサーや外部入力データをI2C、SPI、CAN、シリアル等のポートで受け取り、外部機器にPWMや各種ポート経由で制御信号を送り、モーター、サーボ、その他のアクチュエーターを操作して、機体の姿勢制御等を行う、という基本形は同じです。さらに、WiFi、Bluetooth、ZigBeeなどの通信リンクを経由して、リモート制御やモニタリングもできたり、ログを保存しておいて後で解析したりできるものが多いです。

性能や機能はコントローラーによって大きく異なります。フライトコントローラーでは、最もシンプルなものはジャイロと加速度センサーを使って機体の安定度を増すだけのものから、GPS、レーザーレンジファインダー、画像認識などを使って自動で障害物を避けつつ、複数機が連携しながら自律的に飛ぶものまで様々な種類があります。

ControllerComponents

フライトコントローラーのエコシステム

コントローラー本体

IMUやバロメーターなどの最低限のセンサーを搭載したオンボードコンピューターを指します。 Controller

フライトコントローラーには大まかに分けて、マイクロコントローラーをベースにしたのものと、Linux SBC (Single Board Computer/シングルボードコンピューター)をベースにしたものがあります。また、最近では、マイクロコントローラーベースのFCで姿勢制御し、コンパニオンコンピューターとしてLinux SBCを接続し、そちらに画像処理などの高負荷処理を担当させる方式も増えてきました。 Pixhawk Hardware Types Controller Hardware Types

ソフトウェア

ドローン向けのソフトウェアは、機体側で実行するフライトコントロールと、PCやタブレット上で実行するグランドコントロールの2つに大きく分けられます。

ControllerSoftware

オンボードフライトコントロールソフトウェア(ファームウェア)

ファームウェア は、機体上の制御コンピューター(オンボードフライトコントローラー)上で走るソフトウェアです。

グランドコントロールステーション (Ground Control Station / GCS)

Ground Control Stationは、PCやタブレット、スマートフォン上で実行され、ファームウェアの設定や機体の状態を監視したり、ウェイポイントの入力などを行うソフトウェアです。テレメトリーリンクを介して機体側と通信し、センサーの値をモニタリングしたり、機体にコマンドを送ったり、ログ解析を行ったりすることができます。

外部機器

フライトコントローラー以外に、外部センサー、パワーモジュール、RC送受信機、テレメトリー通信モジュール等が必要です。

外部機器がコントローラーを選択肢を限定することもあります。例えば、最新のLiDARやIRビーコンを使いたい場合、コントローラー側でセンサーに対応していなければ、そのセンサーを使うことはできません。特定のフライトコントローラー向けのドライバーしか提供していないセンサーや、サポート外になるセンサーも多いです。オープンソースコントローラーの場合、共通の信号経路さえ確保できれば(I2C、CAN、シリアル等)、自分でドライバーを書く道は残されています。これはテレメトリーモジュールやジンバル、その他のアクチュエーター等も同じです。

Perihperals

オープン v.s. プロプライエタリ

オープンソースのフライトコントロールソフトウェアは多数あり、機能や性能が大幅に違います。クローズドな製品は見た目は良く、初心者には扱いやすいことが多いですが、機能的には劣ることが多く、またメーカーのサポートも期待できません。

オープンソースシステム

ここでいうオープンソースには、2つの意味があります。通常、オープンソースというとソフトウェアを連想しますが、ハードウェアもオープンソースで開発される場合が増えてきています。この場合、回路図やPCBのレイアウトデータ等がオープンソースで公開され、自由に改変したり、改良を加えたりして自分で製造したり、PCB専門の会社に作ってもらことができます。ドローン向けのフライトコントローラーは、多くがハードウェアとソフトウェアの双方をオープンソースで展開しています。

オープンソース・フライトコントローラーの例

PX4 Native Stack ArduPilot

PX4 vs ArduPilot

その他のオープンソースソフトウェア

オープンソースハードウェアの例

Pixhawk Pixhawk Pixracer Pixracer PXF Pixhawk Fire (PXF)

その他のオープンソースハードウェア

部分的オープンソース

オープンとクローズドなソフトウェアとハードウェアを組み合わせたシステム

オープンソースソフトウェア + クローズドソースハードウェア

SnapDragon Flight SnapDragon Flight

完全クローズドシステム

クローズドなプロプライエタリシステムでは、ソフトウェアもハードウェアもソースは公開されていませんが、限定的な機能拡張を可能にするAPIが提供される場合があります。

  • DJI SDK
  • etc.

その他のオンボードコンポーネント

要件によって、追加のコンポーネントが必要になります。

センサー

IMU

コンパス

  • GPSとコンパスが一緒になったモジュールが多い
  • Pixhawkの場合、内臓も含め、最大3まで

バロメーター

GPS

  • GPS
  • 複数接続した場合、もっともエラーの少ないモジュールに自動切り替え
  • RTKの場合、精度はセンチメートル単位

レンジファインダー

LidarLite

ソナー(超音波センサー)

レーザーレンジファインダー

  • Pulsed Light LiDAR Lite
  • LightWare SF02 (赤外線Time-of-Flight (ToF)方式)
  • TeraRanger One
  • Verodyne VLP-16 Puck (360度)

ヴィジョンセンサー

パワーモジュール

駆動用のバッテリーから、制御機器に必要な5Vや12Vに降圧した安定化電源を供給し、電圧や電流のモニタリングも行うモジュールが一般的です。シャント抵抗式と、より信頼性の高いホールエフェクトセンサーがあります。

  • BEC(電圧レギュレーター)
  • バッテリー電圧、電流計

RC受信機

現在のドローンは、基本的にラジコンの延長線上にあるので、ラジコン用の送受信機を使います。

テレメトリー

FPV

アクチュエーター / スラスター

  • サーボ
  • ESC (Electric Speed Controller、いわゆるアンプ)
  • ブラシモーター・ブラシレスモーター
  • リニアアクチュエーター

インジケーター

地上側コンポーネント

Pixhawkファミリー

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販売開始

Pixhawkハードウェアの歴史

Pixhawk系フライトコントローラー進化の歴史 Pixhawks