その次に、ロボットをライントレースで走らせて4ms毎に光センサから出力された値のログを取ってみました。その時の値が図1の青線のグラフです。赤線のグラフはターン値です。図1このようなグラフを元にP制御の係数とD制御の係数を調整していきます。私たちがPID制御の係数を調整する時は以下の3点を考慮しています。ターン値が100を超えない事。走らせてカーブを曲がれる事。曲がりが足りない場合はP制御の係数を大きくする。走らせてふらふら左右に振れない事。振れる場合はD制御の係数を大きく、P制御の係数を小さくする。図1の赤線のグラフは調整途中のターン値ですが、何か変だ、バグじゃないか?と思いませんか?青矢印の所だけターン値が尖っています。これは何でしょう?矢印の上、青線まで目線を上げるともうお判りですよね。光センサの明るさ値が変わっている所です。最初のPID制御の説明を思い出してください、少し前との明るさの差でD制御をしている事を。ロボットの下の明るさはラインとの距離によってどんどん変わっているはずなのに、明るさの値が5段階しかないので明るさ値の変わった時にしかD制御が行われていないのです。これではD制御が少ししか掛からず、D制御の係数を調整しても左右のふらつきが消えませんね。このターン値を求める制御のどこに問題があるのか、これへの対策はどのようにしたらいいのか?は読んでいる方が考えてみてください。この記事を書いている時点では2016年のETロボコンは終わっていません。チャンピオンシップ大会が終わった後にその気があったらチームアイズでどのように対策したか等書くかもしれません。期待せずにお待ちください。本ブログの説明はPID制御とロボットのハンドルの切り方を大雑把に説明したのもです。本ブログの記載を元にETロボコンのモデル又はプログラムを作成した結果については(株)アイズ・ソフトウェアは一切の責任を負いません。使用はご自身の責任で行ってください。