2021年1月30日土曜日

EV3でライントレース(P制御)

 前回EV3を買って直ぐにライントレースをしてみました。部品は本体以外はNXTです。検知部分はEV3のカラーセンサーではありませんが考え方は同じでしょう。

検知センサーで白色の時と黒色の時の中間のデータ(この場合45)を境にそれより大きい場合、小さい場合とで、タイヤを右に回したり左に回したりしますので、必然的にジグザグ走行となります。

プログラムはシンプルに


です。カーブはともかく直線では真っ直ぐに進みたいですね。そこでP制御(と言っていいのかな?、素人なので分かりません)を組み込んでみました。

P制御を含めPID制御についてはここに解りやすく解説があります。
ロボット制御 – PID制御について

プログラムは


white・・・白地のセンサーの値

black・・・黒地のセンサーの値

mean・・・白地と黒地の中間の値

actual・・・走行中のセンサーの値

steer・・・(actual-mean)でmeanからかけ離れているほど大きく回転させるようにする。係数の-4.5はセンサーやコースの状況で試行錯誤で決定するパラメーター(いわゆるハイパーパラメーター)
今回NXTのセンサーを使っていますが、EV3のカラーセンサーを使うと全く異なった数値になると思います。

結果の動画をアップしておきます。




まずは目的達成ですか。



0 件のコメント:

コメントを投稿