The Fool In The Valleyの雑記帳

-- 好奇心いっぱいのおじいちゃんが綴るよしなし事 --

ジャイロセンサー

ジャイロセンサーは角速度を計測するもので、「回転」を検出できるので、最近ではスマートフォンの向きの測定、カメラの手振れ補正、カーナビでの位置の特定等、様々なところに応用されています。
このジャイロセンサをRC飛行機に応用すると飛行中の姿勢を安定させることが出来そうです。

私は10年程前、LEGOのMindstormsで倒立振り子型のロボットを作ったことがあるのですが、その時には下の写真のような1軸周りの回転を検出できるジャイロセンサを使って、姿勢を制御しました。

下のビデオはその様子をデモしたものです。

このロボットでは、車軸周りに前後に倒れそうになるとそれを検出して、その傾きと逆方向にロボットを傾けるように車輪を回転させてバランスを取るように制御しています。その回転の検出のために1軸のジャイロセンサを使ったのです。

しかし、飛行機は3次元の自由度がありますからで、その姿勢を制御するとなると3軸の制御が必要になりますから相当複雑なことになりそうです。


そんなRC飛行機のために、ジャイロセンサを使った、6軸ジャイロスタビライザーというものが作られています。ここで6軸と呼ばれているのは、角速度を測る3軸のジャイロセンサ―と3軸の加速度センサーが入っているためで、それを一緒くたに数えるのはおかしな話ですが、便宜上6軸と呼ばれているようです。

これらのジャイロセンサ、加速度センサについては、下のサイトに分かりやすい技術解説があります。

6軸となると部品点数が多くなりそうですが、最近はそれらのセンサーを一体化させた多軸慣性センサーが1チップで作られていて、非常にコンパクトになっているようです。

今回、その6軸ジャイロスタビライザーとして、Hobbyeagleという中国の広州市の会社が製造しているA3miniというデバイスを入手しました。

下の写真のような形状とサイズをしています。体積のかなりの部分をコネクタが占めていて、6軸のセンサや電子回路は非常にコンパクトにできています。センサとしては1チップの多軸センサが使われていると推測されますが詳細は分かりません。

これを下の図のように結線して使います。

この6軸ジャイロスタビライザーをRC飛行機の重心に近い位置に配置して、送信機からの飛行モードと可動翼の舵角の信号を受けて、その飛行モードに合わせて、エルロン、エレベータ、ラダーのサーボをコントロールするわけです。

マニュアルを読むと、下のような6種類の飛行モードに対応するようです。
・Gyro Off Mode : ジャイロが完全に非アクティブになる
・Normal Mode  : 基本モードで、現在発生してる回転運動のみを修正する
・Lock Mode      : 各軸の回転運動を恒久的に補正し、現在の姿勢で固定する
・Angle Mode    : ロール軸とピッチ軸の最大角度を制限する
・Level Mode     : 自動的に水平状態を保持する 
・Hover Mode    : 自動的に垂直状態を保持する

こうした飛行モードを実現するためには、エルロン、エレベータ、ラダーのゲイン調整を個別に行う必要がありそうですが、マニュアルでは、最初にゲインを30%程度に低く設定して、応答状態を見ながらカットアンドトライでゲインを少しずつ上げるようにガイドされています。
前述した倒立振り子型のロボットは比較的単純な系なので、モデル化して運動方程式(2元連立2階常微分方程式)を立て、状態フィードバックによって安定な制御系になるように係数行列の値を決める方法でパラメータを決めたました。しかし飛行機となるとそういう単純な話ではないので、実際に飛ばして少しずつチューニングしていくしかないのでしょう。

うーん、使いこなすのはなかなか手強そうです。しかし、こんな小さなデバイスでRC飛行機の安定性が改善できるというのはとてもチャレンジングで興味がわいてきました。

これはこの先ずっと手放せない楽しいガジェットになりそうです。