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

13-1 EV3ライントレース入門

第1回「ジグザグ走行でトレースする」

  • Page:
  • 1
  • 2
  • 3
  • 4

◆ライントレースのプログラム

考えられる限り最もシンプルなライントレースのプログラムです。スイッチブロックを使って、次のように処理を分岐します。
・床面が「黒」だった場合→右に曲がる(左モータをパワーを30で回す)。
・床面が「白」だった場合→左に曲がる(右モータをパワーを30で回す)。
以上の処理を繰り返します。床面の白/黒の判断には「反射光の強さ」を使います。スイッチブロックのしきい値には「白」と「黒」の中間の値を入れます。先ほどの測定では「9」でしたが、キリ良く「10」にしました。

プログラムを実行してみたところ、 1周あたりのタイムは「26.6秒」でした。
ロボットは左右交互に曲がり続けますので、結果としてジグザグ走行になります。このため、かなり遅いです。

ロボットが遅い原因は左右にムダに動きすぎるからです。 そこで、モータのオフ時の動作を「ブレーキ」ではなく「惰性」にしてみました。
「ブレーキ」はモータの停止時に回転軸が固定されます。一方、「惰性」ではモータの停止時に回転の勢いが残ります。

結果、1周あたりのタイムは「20.3秒」となりました。 6秒ほど短縮できました。
停止したモータが惰性で回転するようになったため、 ギクシャクした動きが減って、速くなりました。

さらにシンプルな方法として、「Lモーター」ブロックではなく、「ステアリング」ブロックを使ってみました。
ステアリングブロックを使うと、微妙な左右の回転量を制御することができます。これによって、左右片方のモータを完全に止めずに済むので、ジグザグ走行の揺れを抑えることができるかもしれません。

1周あたりのタイムは「19.8秒」でした。タイムがほとんど変わっていません。さらに少しギクシャクした動きに戻っています。
なぜかというと、「ステアリング」ブロックにはモーターの回転速度を一定に保つ機能があるからです。その回転速度より遅すぎる場合は速くなり、速すぎる場合には遅くなります。「Lモーター」ブロックのオン時にも速度の調節機能が働いています。
現在、モータのパワーを「30」に設定していますが、たとえば、パワーを「50」に増やすと、12秒くらいでコースを一周することができるようになります。しかし、ロボットの揺れが激しくなります。ステアリング値を「0」を近づけると揺れを減らすことができますが、今度はコースアウトしやすくなってしまいます。あちらを立てればこちらが立たずです。バランスを調整すればある程度は良くなりますが、このプログラムでは性能に限界があります。
次回は別の方法でライントレースを行って、ジグザグ走行から脱してみたいと思います。

  • Page:
  • 1
  • 2
  • 3
  • 4