2024年12月5日

010-1.ロボット競技に役立つEV3センサー入門-第7回「ジャイロセンサーを使いこなす」

この連載では「教育版レゴマインドストームEV3」を使い、各種センサーをロボット競技に役立てるためのノウハウを紹介していきます。本当に役立てるためには実際に手足を動かすしかありませんので、これを参考に実践してみましょう。なお、使用するプログラミング環境は「教育版EV3ソフトウェア」です。(文/松原拓也)

今回は「ジャイロセンサー」について紹介します。ジャイロセンサーは向きを検出することができるセンサーです。正しくは角速度を測定して、それを累積することで向きを求めています。
こちらがレゴ社純正のジャイロセンサーです。ジャイロセンサーは教育版EV3の基本セットに付属しています。倒立振子制御を行う場合には必須の部品です。
この他にも、HiTechnic社製のジャイロセンサーが存在します。

では、ジャイロセンサーは部品としてどれくらい信頼できるのでしょうか?
信頼性が高くないとロボット競技では使うことができません。 そこで、実験用のロボットを作って確認してみましょう。次のように部品を接続します。
・入力ポート1:ジャイロセンサー
・出力ポートA:Lモーター右
・出力ポートD:Lモーター左

ジャイロセンサーは取り付ける場所に注意しましょう。
ジャイロセンサーはできるだけ回転軸の中心に取り付けます。位置がずれていると正しく測定できません。この場合、両タイヤの中間地点が回転軸に当たります。

ジャイロセンサーの動作を確認します。
PORTVIEWを実行してジャイロセンサーの値を直接読み取ります。 上から見てロボットを時計方向に回転させるとプラス、反時計方向に回転させるとマイナスに値が変化します。原理は違いますが、方位磁石のような働きをさせることができます。

◆ ジャイロセンサー暴走時の復帰方法

ちなみに、 ジャイロセンサーはかなり高い確率で動作がおかしくなります。PORTVIEWで確認できます。 ジャイロセンサーの測定値がどんどん増え(もしくは減り)続けて止まらなったりすることがあります。この現象を「暴走」と呼ぶことにします。 一度暴走してしまうと、センサーをソフトウェア的にリセットしても直りません。電源を入れ直せば、暴走は止まりますが、それだと時間がかかりすぎてしまいます。

そこで、次の方法で直します。
ジャイロセンサーとインテリジェントブロックをつないでいるケーブルを抜いて挿し直します。それだけです。
方法は簡単ですがコツがいります。 ケーブルを挿し込む時には、できるだけセンサーが動かないようにします。接続時に少しでもセンサーが動いていると、測定値が安定しません。PORTVIEWを使って測定値が「0度」で止まっているか確認しましょう。だめだった場合は再度挿し直します。

◆ ジャイロセンサーの信頼度を「見える化」する

前回と同じく見える化することで問題を解決してみましょう。こちらが、ジャイロセンサーの信頼度を見える化するプログラムです。
回転センサーから算出した回転角度とジャイロセンサーで測定した角度を比較して、どれだけ一致しているかを比較します。

プログラムを実行すると、ロボットが90度のその場旋回しました。この動きを回転センサーとジャイロセンサーで測定してグラフにします。

見事、グラフが描かれました。
グラフのX軸がモーターの回転センサーから算出したロボットの向きです。 Y軸がジャイロセンサーから測定したロボットの向きです。両者の値はほぼ同じです。そのため直角二等辺三角形が描かれました。ジャイロセンサーは暴走さえしなければ、かなり便利なセンサーとして信頼できると思います。
、、、と思ったのですが、 気になる部分を見つけました。グラフの始めと終わりの部分が少しゆがんでいます。旋回を始めた時、0~2度のあたりではジャイロセンサーの値が0のままです。以後、値が2~3度ズレた状態が続きます。そして、最後の88~90度あたりで正常な値に戻っています。何度か測定をやり直してみましたが、グラフは問題の箇所はそのままです。

気になる部分を拡大してみました。 このゆがみはジャイロセンサーの反応の遅れが原因と考えられます。ジャイロセンサーが回転してから測定値を算出するまでに時間がかかってるようです。 どれくらい遅れているか計算してみましょう。 仮に90度の旋回にかかった時間を1秒として、測定値のズレを3度とした場合、1秒×3÷90=約0.033秒。この33ミリ秒がジャイロセンサーが反応するまでの時間差と予想されます。ジャイロセンサーを使う場合には、この時間差を考えておいたほうがよさそうです。

[DOWNLOAD]今回作成したプログラム(教育版EV3ソフトウェア用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。