ここからが本題です。
ライントレースロボットでは比例制御を行ってラインを追跡します。ここで、センサーの値がきちんと位置に対して比例していないと、かなりウソっぽい比例制御になってしまいます。
そこで、ロボットの位置に対してセンサーの測定値が比例しているかどうかを確認してみたいとおもいます。検証のためのプログラムを作ります(trace2.ev3)。この連載ではロボット作りの問題解決として常に「見える化」をオススメしています。
先ほどのプログラムでは手作業でロボットを動かしていましたが、ここではその場旋回をさせて動かします。ロボットの位置は回転センサーの値から計算します。 こうしてグラフに描くという仕組みです。
ロボットをラインの上に乗せた状態でプログラムを実行します。
まず、ロボットが反時計方向に45度旋回します。そして、測定を開始します。測定中は時計方向に90度旋回します。
その場旋回しているので、ロボットはラインの上に乗ったままです。
これでグラフが作成されました。X軸は「ロボットの向き」です。単位は角度。範囲は-45度~+45度です。画面の中心を0度に合わせています。
Y軸は「カラーセンサーの値」です。左右のセンサーの差分を求めています。 1ピクセルが1%に相当します。画面の中心を0%としています。値がマイナスの場合はロボットがラインより右に位置します。値がプラスの場合はロボットがラインより左に位置します。