宇都宮市レッスン風景【ライントレース】プログラムでこんなにも動きが変わる!

ロボテックカップの準備に向けてSPIKEを使った【ライントレース】するロボットカーのプログラミングを進めました。指定された色のラインをたどって進むロボットカーです。
本日はライントレースする制御方法の違い、つまりプログラムの違いで速度にどれくらい差がでるかを確認してもらいました。フィードバック制御であるPID制御のうち、P制御について理解しながら進めていきましょう!

まずは走らせてみよう!

前回の授業でロボットの組み立ては完了しているので今回はプログラミングに集中です!頭がつかれますが時にはこうした授業もいいですね。
今回は青いラインをたどるようにします。まずはプログラムを例題のとおりに作成してもらいました。このプログラムはライントレースの最も簡単な制御方法です。カラーセンサーが読み取った色が青なら右向きに、そうでない時は左向きに移動することで、かなりジグザグな動きをしますがライントレースすることができます。ですが、その分遅かったり、コースから外れてしまうこともあります。

センサーが読み取った色が青なら右に、そうでないときは左に移動を繰り返してライントレースするプログラム

さぁ、動かしてみましょう。実際に動かしてみると、コースから外れたりしたり逆戻りしたりで思ったように進んでくれません・・・。そこでパラメータを変えてみます。モーターのスピードを固定して左右の移動角度を少しずつ変えながら何度もコースを走らせてラインをたどるようにしました。そのあとラインを外れないスピードまで上げていきました。ジグザク走行ですが何度走らせてもキチンとゴールまで走らせることができるようになりました。

せっかくなのでP制御を学ぼう!

先程のプログラムは「青なら右、そうでなければ左向き」という、2つの値(ONかOFF)で制御しているので【ON/OFF制御】と呼ばれています。実際の車でいえば、ハンドルを目いっぱい右か左に回して運転するようなもので、【少しだけ回す】ということができないのです(車酔いしそうですね)。P制御ではこの【少しだけ回す】ことができるのです。SPIKEのカラーセンサーは色の判別だけではなく、反射率も読み取ることができます。青のラインと白地の反射率の違いを利用してちょうど真ん中あたりの反射率を目指して回す角度を変えていきましょう。生徒さんに青ラインと白地の境界(センサーの中心が半分だけ青ラインにかかる位置)の反射率を調べてもらいました。ブルブル値が動いてますが【52~59】あたりですかね。青ラインは?【27~34】くらい。白地は【86~93】くらいかな。なので、目指す反射率は【55】にしてみましょう。そして、目指す値【55】とセンサーが読み取った値との差を移動する向きの値にします。差が大きければ大きく回り、小さければ小さく回る。そして差がプラスなら右に、マイナスなら左に回ります。ただ、この差は反射率の差なので角度の値に変えるために係数を掛けます。

そうすると、
( 目指す反射率の値 – センサーから読み取った反射率の値 ) × 係数
という計算式で曲がる角度と方向を求めることができます。

係数はとりあえず【2.0】としてプログラムしました。動かしてみましょう。う~ん、回り方が大きくてコースを外れてしまいました。係数【1.5】はどうかな? 今度は回り切れないみたいです。そんな感じで係数を調整しながら、何度も繰り返して係数を決めました。

違いを比べてみよう!

制御方法が違うとこんなにもスピードの差が!

動画をみると一目瞭然。びっくりするほど動きに差がでましたね。
P制御では反射率を利用するので、【目指す反射率の値】と【係数】そして【モーター速度】の3つのパラメータを調整して決定しました。しかし、このそれぞれの値は環境によって変わります。明るい場所と暗い場所では反射率が変わるので、その場所に合わせてチューニングすることが必要です。
今回は宇都宮ベースで走らせてみた値ですが、ロボテックカップの会場ではパラメータを変えなければうまく走れませんね。はたしてどうなることやら・・・

あっという間に終了時間となりました。でも、大きな成果が得られましたね!

本日も頑張りました!

*************************

ロボット・プログラミング教室ロボテックでは、子どもたちが興味を持つブロックという教材を通じて、強要されることなく自然な流れで課題を解決し、それを発表する、さらには他の人の意見に耳を傾けるという力を育んでいきます。

ロボテックでは、ロボットづくりの無料体験を行っております。

授業で実際に使用しているレゴ®WeDo2.0を使ってロボットを組み立て、動かしてみるところまでを体験いただけます。

お気軽にお申し込みください!

無料体験のお申込みはこちら
robotecスタッフ

robotecスタッフ

ロボテックのスタッフです。授業の様子や、プログラミングの情報を定期的にアップしていきます!