オンオフ制御によるライントレースに挑戦:ETロボコンではじめるシステム制御(2)(2/2 ページ)
最初のステップとして、イメージしやすく、比較的取り組みやすい「オンオフ制御」によるライントレースにチャレンジしよう!!
走行体を動かしてみる
オンオフ制御を「アクティビティ図」で表したものが図4になります。
そして、上記の設計を実際のコードにしたものが図5になります。
それでは、「ON点(ON_POINT)」「OFF点(OFF_POINT)」の値を変更することによる走行体の走行変化を見ていきたいと思います。なお、今回は動作隙間の変化により走行がどのように変化するのかを見ることが目的であるため、右ターン値(RIGHT_TURN)を「30」、左ターン値(LEFT_TURN)を「−30」に、前進量を「50」に固定して動作させています。
以下に、動作隙間の幅を変化させたとき(パターンA〜D)の走行体の走行動画と走行ログをそれぞれ示します。
パターンA(ON点:680/OFF点:680)
パターンB(ON点:640/OFF点:680)
パターンC(ON点:600/ OFF点:680)
パターンD(ON点:560/OFF点:680)
動作隙間の幅が広がるにつれ、オンオフの切り替えの頻発が軽減され、緩やかに走行する様子が見て取れました。走行体のライントレースとして、どの走行がよいかは目的に応じて異なり、一概にはいえないため、現時点では、走行体の走行制御としてオンオフ制御を取り入れた場合には、動作隙間の幅という観点でも、走行制御に対する“調整しろ”があるということだけを理解しておいてください。
また、走行ログを見ていただいて、すべての走行ログに共通する以下の2つの共通点に気が付いたかと思います。
- 切り替えタイミング(波形の頂点)が、目標値を超えた位置にあること
- いつまでたっても、波を打ち続け安定しないこと
切り替えタイミングが目標値を超えた位置にあるのは、
- 光センサーによる光量の検出の遅れ
- サーボモータの旋回方向切り替え時間
などが起因しています。
このように、目標値を上側に突き抜けることを「オーバーシュート」といい、目標値を下側に突き抜けることを「アンダーシュート」といいます。波を打ち続けるのは、目標値に応じて、オンオフを繰り返す制御動作に起因したものであり、オンオフ制御ではこの波をなくすことはできません。いつまでたっても、波を打ち続け安定しないことを「ハンチング」といいます。
これらが、まさに走行体の走行制御としてオンオフ制御を取り入れたときの短所であり、これにより走行体の走行も以下のような影響を受けてしまいます。
- 走行動作が不安定であり、揺らぎの影響を受けやすく、ラインから外れる可能性が高い
- ライントレースの軌跡が安定しないことで、高速走行することは難しい
ただし、上記のような短所はありますが、制御手法として“導入が容易”という長所は強く実感できました。
以上、ETロボコン活動で実際にわたしたちが学んだオンオフ制御について紹介しました。今回の内容が、皆さんのオンオフ制御の理解を深める助けになれば幸いです。また、今回はターン値、前進量を固定で動作させましたが、これらを変化させることでも、走行体の走行は変わってきます。皆さんも実際にいろいろと試して、ご自身の要求を満たす最適な走行を発見していただけたらと思います。(次回に続く)
関連記事
Copyright © ITmedia, Inc. All Rights Reserved.