前回と同じく見える化することで問題を解決してみましょう。こちらが、ジャイロセンサーの信頼度を見える化するプログラムです。
回転センサーから算出した回転角度とジャイロセンサーで測定した角度を比較して、どれだけ一致しているかを比較します。
見事、グラフが描かれました。
グラフのX軸がモーターの回転センサーから算出したロボットの向きです。 Y軸がジャイロセンサーから測定したロボットの向きです。両者の値はほぼ同じです。そのため直角二等辺三角形が描かれました。ジャイロセンサーは暴走さえしなければ、かなり便利なセンサーとして信頼できると思います。
、、、と思ったのですが、 気になる部分を見つけました。グラフの始めと終わりの部分が少しゆがんでいます。旋回を始めた時、0~2度のあたりではジャイロセンサーの値が0のままです。以後、値が2~3度ズレた状態が続きます。そして、最後の88~90度あたりで正常な値に戻っています。何度か測定をやり直してみましたが、グラフは問題の箇所はそのままです。
気になる部分を拡大してみました。 このゆがみはジャイロセンサーの反応の遅れが原因と考えられます。ジャイロセンサーが回転してから測定値を算出するまでに時間がかかってるようです。 どれくらい遅れているか計算してみましょう。 仮に90度の旋回にかかった時間を1秒として、測定値のズレを3度とした場合、1秒×3÷90=約0.033秒。この33ミリ秒がジャイロセンサーが反応するまでの時間差と予想されます。ジャイロセンサーを使う場合には、この時間差を考えておいたほうがよさそうです。