フライトコントローラーとは、機体の飛行制御を行う電子デバイスである。略称としてFCと表記されることもある。ドローンの姿勢制御、飛行パラメータの監視、モーターの制御などを管理し、ドローンの安定した飛行を実現するために重要な役割を担っている。ドローンだけでなく地上配送ロボットや水上ドローンなど、あらゆるロボットの制御に採用されており、開発者は機体の形状、ローター数、重量などによって最適なフライトコントローラーの設定を施している。
仕組み
ドローンを安定して飛行させるためには、ドローンに搭載した各種センサーからリアルタイムに情報を収集して機体を制御する必要がある。例えば、1m/sの向かい風が吹いている環境下でセンサー情報を取得せずに制御した場合、機体を向かい風と同じ1m/s程度で前進させると向かい風と相殺されて前進することができない。それどころか、何もしない(操縦入力をしない)と向かい風によって機体が後方に流されてしまったり、高度が一定に保てなかったりと不安定な飛行となってしまう。各種センサーから情報を収集して飛行すれば、向かい風が吹いた環境の中、操縦入力をしない状況でもその場に留まり続けることができる(留まり続けようとする)。また、1m/s程度の操縦入力で移動させた場合も、風速を認識することで1m/s程度の速度で前進させることが可能になる。
自動航行時においても同様に設定された速度や位置、高度に対して機体の情報を収集し、フライトコントローラーによって設定した飛行通りに飛行制御を行う。
機器の種類
メーカーによって、独自開発のフライトコントローラーが搭載されていることがもあるが、国産機として流通しているドローンの多くはオープンソース(PX4やDronecode等)を採用している。DJIやSkydio、ACSLなどが採用する独自開発のフライトコントローラーは、ブラックボックス化されているものがほとんどである(一部開発領域(SDK)が開放されていることもある)。