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

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

第8回「リトライ機能を追加する」

  • Page:
  • 1
  • 2

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


今回がこのEV3センサー入門の最終回になります。基本セットの中にあるセンサー類の中でタッチセンサー以外は全部紹介してきました。タッチセンサーについては特に語ることがないので省略します。
このシリーズでは一貫してセンサーの「見える化」をおすすめしてきました。情報を目で見えるようにすることで、問題点を洗い出すという方法論です。
ただし、問題点が見つかってからどう解決するか?については特に触れてきませんでした。今回は最後なので解決方法のヒントを紹介したいと思います。
ロボットに接続するセンサーとモーターの構成は次のとおりです。
・入力ポート1:EV3カラーセンサー
・出力ポートA:Lモーター右
・出力ポートD:Lモーター左

実験用のフィールドを考えてみました。ロボットの手前に赤色のボールを置きます。
この状態で、ロボットを前進させて、ボールを検出したらロボットを止めてみたいと思います。

以前にも触れましたが、EV3カラーセンサーは距離に対してものすごくシビアに作られています。対象物とセンサーとの距離が正しくないとうまく測定できません。
たとえば、このような球体を測定する場合、図の赤色の部分にセンサーを置く必要があります。ここから遠すぎたり、近すぎると誤認識をしてしまいます。実際に試したところでは次のような結果となりました。
・距離が近すぎる場合 → 黒色:1(誤認識)
・適切な距離の場合 → 赤色:5(正解)
・距離が遠すぎる場合 → 黒色:1(誤認識)
・それ以外 → なし:0

ボールを探すプログラムを作ってみました。思い付く限り最も単純なプログラムです。
まず最初にモーターをオンにしてロボットを前進させます。そして、カラーセンサーの結果が赤色ならば、その時点でモーターを停止させます。カラーセンサーが正常に作動しているかは結果が赤色かどうかで判断しているだけです。赤色でない場合は誤作動しているか、ボールに到着していないと判断します。

プログラムの実行結果です。
カラーセンサーがボールの上を通りかかった瞬間でロボットが停止しました。 これは正常に作動した場合です。

正しく作動しなかった場合がこちらです。 ロボットの進路が少しズレていたためカラーセンサーがボールの上を通過していません。そのため、ロボットが止まらず 走りっぱなしです。これに似たような光景はロボット競技でよく見かけるのではないでしょうか。

ロボット競技の場合だと、ロボットはフィールドの柵に当たって止まりますが、この場合だとロボットはテーブルが落ちて壊れてしまいます。そこでロボットが壊れないような工夫をしてみたいと思います。

  • Page:
  • 1
  • 2