前回EV3を買って直ぐにライントレースをしてみました。部品は本体以外はNXTです。検知部分はEV3のカラーセンサーではありませんが考え方は同じでしょう。
検知センサーで白色の時と黒色の時の中間のデータ(この場合45)を境にそれより大きい場合、小さい場合とで、タイヤを右に回したり左に回したりしますので、必然的にジグザグ走行となります。
プログラムはシンプルに
です。カーブはともかく直線では真っ直ぐに進みたいですね。そこでP制御(と言っていいのかな?、素人なので分かりません)を組み込んでみました。
P制御を含めPID制御についてはここに解りやすく解説があります。
ロボット制御 – PID制御について
プログラムは
white・・・白地のセンサーの値
black・・・黒地のセンサーの値
mean・・・白地と黒地の中間の値
actual・・・走行中のセンサーの値
steer・・・(actual-mean)でmeanからかけ離れているほど大きく回転させるようにする。係数の-4.5はセンサーやコースの状況で試行錯誤で決定するパラメーター(いわゆるハイパーパラメーター)
今回NXTのセンサーを使っていますが、EV3のカラーセンサーを使うと全く異なった数値になると思います。
結果の動画をアップしておきます。
0 件のコメント:
コメントを投稿