ロボジョイちゃれんじ教室

10-1 ロボット競技に役立つEV3センサー入門

第5回「ライントレースロボットを工夫する」


◆センサーが比例しているか確認

ここからが本題です。
ライントレースロボットでは比例制御を行ってラインを追跡します。ここで、センサーの値がきちんと位置に対して比例していないと、かなりウソっぽい比例制御になってしまいます。
そこで、ロボットの位置に対してセンサーの測定値が比例しているかどうかを確認してみたいとおもいます。検証のためのプログラムを作ります(trace2.ev3)。この連載ではロボット作りの問題解決として常に「見える化」をオススメしています。
先ほどのプログラムでは手作業でロボットを動かしていましたが、ここではその場旋回をさせて動かします。ロボットの位置は回転センサーの値から計算します。 こうしてグラフに描くという仕組みです。

ロボットをラインの上に乗せた状態でプログラムを実行します。
まず、ロボットが反時計方向に45度旋回します。そして、測定を開始します。測定中は時計方向に90度旋回します。
その場旋回しているので、ロボットはラインの上に乗ったままです。

これでグラフが作成されました。X軸は「ロボットの向き」です。単位は角度。範囲は-45度~+45度です。画面の中心を0度に合わせています。
Y軸は「カラーセンサーの値」です。左右のセンサーの差分を求めています。 1ピクセルが1%に相当します。画面の中心を0%としています。値がマイナスの場合はロボットがラインより右に位置します。値がプラスの場合はロボットがラインより左に位置します。

値が比例しているかを検証してみます。
見たところ、ロボットの向きが-13度~+13度くらいならばセンサーの値は比例しているようです。ここまでは値を信頼できる範囲となります。
それ以外の角度ではセンサーの値は信頼できません。 つまり、左右のセンサーのどちらか一方がラインから出てしまうと正しくトレースできないということになります。見える化によって新たな事実が分かりました。