ドローン(クアッドコプター)のフィードバック制御について、基本的な流れと知識を紹介します。
この記事のポイント
- ドローンのフィードバック制御システム
- モーターの制御信号の算出方法
ドローンの制御システム
今回の記事では、ドローンの種類の内のマルチコプターの一つである、クアッドコプター(Quadcopter)の制御について考えます。
このクアッドコプターを制御するためのシステムは、下の図のように表すことが出来ます。
クアッドコプターに搭載されている4つのモーターを制御することで、ドローンの位置や姿勢をコントロールすることが出来ます。
この位置や姿勢の状態は、クアッドコプターに搭載された各種センサによって測定されます。
そして、測定したドローンの状態をもとに、目標の状態になるようにコントローラー部でモーターの制御信号を算出して、ドローンに送ります。
このようなフィードバック制御を用いることで、クアッドコプターを望み通りに動作させることが出来ます。
劣駆動システム(Under-actuated System)
フィードバック制御システムからも分かりますが、クアッドコプターは搭載された4つのモーターに制御信号を送ることでドローンの動作を制御します。
クアッドコプターの動作は、
- 直動方向(上下方向、左右方向、前後方向)
- 回転方向(ロール軸、ピッチ軸、ヨウ軸)
の6自由度(6-DoF, Six Degrees of Freedom)で表されます。
通常は、6自由度のシステムを制御するためには、6つのアクチュエーターが必要になります。
しかし、クアッドコプターには4つのアクチュエーターしか搭載されていません。
すなわち、十分な数ではない4つのアクチュエーターで、6自由度の状態を動作させる必要があります。
このようなシステムを、劣駆動システム(Under-actuated System)と言います。
ちなみに、今回のシリーズで取り扱っているクアッドコプターの場合は、上下方向と3つの回転軸は直接制御が可能ですが、左右方向と前後方向については直接制御することが出来ません。
そのため、一度ドローンを傾けてから水平方向に移動するといった特別な処理が必要となります。
MMA(Motor Mixing Algorithm)
クアッドコプターのフィードバック制御では、ドローンを目標の状態に動作させるために、4つのモーターに送る制御信号を算出する必要があります。
このような行いたいドローンの動作から各モーターへの制御信号は、MMA(Motor Mixing Algorithm)で算出しています。
ここでMMAで用いている、4つのモーターの制御信号と対応するクアッドコプターの動作の関係を数式で表すと下の式のようになります。
$$ \begin{eqnarray} \left\{ \begin{array}{l} M_{FrontRight} &=& Thrust &+& Roll &+& Pitch &+& Yaw \\ M_{FrontLeft} &=& Thrust &-& Roll &+& Pitch &-& Yaw \\ M_{BackRight} &=& Thrust &+& Roll &-& Pitch &-& Yaw \\ M_{BackLeft} &=& Thrust &-& Roll &-& Pitch &+& Yaw \end{array} \right. \end{eqnarray} $$
まず初めに、すべてのモーターの出力を上げるとドローンは推進力(Thrust)を得て上昇します。
また、クアッドコプターの右側2つのモーターの出力を上げて、左側2つのモーターの出力を下げることで、ロール軸周りの回転(Roll)を行うことが出来ます。
同様に、前側2つのモーターの出力を上げて、後側2つのモーターの出力を下げることで、ピッチ軸周りの回転(Pitch)を行うことが可能です。
そして、右前と左後の対角にある2つのモーターの出力を上げて、左前と右後のもう一つの対角の2つのモーターの出力を下げることで、ヨウ軸周りの回転(Yaw)を行うことが出来ます。
このような関係式を用いてモーターの制御信号を算出することで、目標とするドローンの動作を実現することが可能になります。
クアッドコプターに搭載されているモーター(アクチュエーター)についての詳細は、こちらの記事を参考にしてください。
まとめ
今回の記事では、ドローンのフィードバック制御についての基本知識として、クアッドコプターのフィードバック制御システムとモーター制御信号の算出方法について紹介しました。
しかし、今回の記事で紹介した方法のみでは、前後方向や左右方向に対するドローン位置の制御はできません。
そこで次回の記事では、前後方向や左右方向を含めた、より詳細な制御システムを紹介したいと思います。
合わせて読みたい