ここで、LOOP TIME (以下 LT)というのは、処理サイクルのことである。センサーデータから機体姿勢を認識してモータを制御して安定させる。この一連の処理を繰り返すのだが、この繰り返しの速度をLTは表す。

海外のサイトを見ていたら、フライトコントローラのLTは周波数(1秒間に処理する回数)で測って、8000Hzから32000Hzだそうだ。驚いた。Hzは周波数の単位である。8000Hz(=8KHz)ということは、1秒間に8000回処理するということで、1回処理にかかる時間は125マイクロ秒である。1マイクロ秒は100万分の1秒だ。

昨日これを見て、自分のシステムはどうなのだろうということが気になった。自分的には、1秒間に10回位、すなわち10Hzでもいいのではないかと、システムを作っていた。

まず、センサーのサンプリングレートが気になった。MPU6050も、仕様的には加速度センサーで1KHz、ジャイロセンサーで8KHzは出せそうだが、よくわからない。方位センサーは75Hzとなっていた。しかし、コンピュータの側がそんな処理できるのだろうか。

プログラム状は、無限ループにしていて、センサー処理と制御処理を行うようになっている。センサー処理だけにして、1ループにかかる時間を測ってみたら、2.5ミリ秒=2500マイクロ秒かかる。制御処理も入れたら8KHzはとても無理だ。

しかし、よく考えると、そもそもモーター制御も入れて、8KHzに意味があるようには思えない。モータがそんな瞬間的な制御構造に反応するのか、されには、モーラからプロペラを回してトルクが発生する遅延も入れたら、そんなLTに意味があるように思えない。

By washida