検索
連載

オンオフ制御によるライントレースに挑戦ETロボコンではじめるシステム制御(2)(2/2 ページ)

最初のステップとして、イメージしやすく、比較的取り組みやすい「オンオフ制御」によるライントレースにチャレンジしよう!!

Share
Tweet
LINE
Hatena
前のページへ |       

走行体を動かしてみる

 オンオフ制御を「アクティビティ図」で表したものが図4になります。


オンオフ制御(アクティビティ図)
図4 オンオフ制御(アクティビティ図)

 そして、上記の設計を実際のコードにしたものが図5になります。

オンオフ制御(コーディング例)
図5 オンオフ制御(コーディング例)

 それでは、「ON点(ON_POINT)」「OFF点(OFF_POINT)」の値を変更することによる走行体の走行変化を見ていきたいと思います。なお、今回は動作隙間の変化により走行がどのように変化するのかを見ることが目的であるため、右ターン値(RIGHT_TURN)を「30」、左ターン値(LEFT_TURN)を「−30」に、前進量を「50」に固定して動作させています。

 以下に、動作隙間の幅を変化させたとき(パターンA〜D)の走行体の走行動画と走行ログをそれぞれ示します。

パターンA(ON点:680/OFF点:680)

走行ログ(パターンA)
図6 走行ログ(パターンA)
動画1 走行動画(パターンA)

パターンB(ON点:640/OFF点:680)

走行ログ(パターンB)
図7 走行ログ(パターンB)
動画2 走行動画(パターンB)

パターンC(ON点:600/ OFF点:680)

走行ログ(パターンC)
図8 走行ログ(パターンC)
動画3 走行動画(パターンC)

パターンD(ON点:560/OFF点:680)

走行ログ(パターンD)
図9 走行ログ(パターンD)
動画4 走行動画(パターンD)

 動作隙間の幅が広がるにつれ、オンオフの切り替えの頻発が軽減され、緩やかに走行する様子が見て取れました。走行体のライントレースとして、どの走行がよいかは目的に応じて異なり、一概にはいえないため、現時点では、走行体の走行制御としてオンオフ制御を取り入れた場合には、動作隙間の幅という観点でも、走行制御に対する“調整しろ”があるということだけを理解しておいてください。

 また、走行ログを見ていただいて、すべての走行ログに共通する以下の2つの共通点に気が付いたかと思います。

  1. 切り替えタイミング(波形の頂点)が、目標値を超えた位置にあること
  2. いつまでたっても、波を打ち続け安定しないこと

 切り替えタイミングが目標値を超えた位置にあるのは、

  • 光センサーによる光量の検出の遅れ
  • サーボモータの旋回方向切り替え時間

などが起因しています。

 このように、目標値を上側に突き抜けることを「オーバーシュート」といい、目標値を下側に突き抜けることを「アンダーシュート」といいます。波を打ち続けるのは、目標値に応じて、オンオフを繰り返す制御動作に起因したものであり、オンオフ制御ではこの波をなくすことはできません。いつまでたっても、波を打ち続け安定しないことを「ハンチング」といいます。

 これらが、まさに走行体の走行制御としてオンオフ制御を取り入れたときの短所であり、これにより走行体の走行も以下のような影響を受けてしまいます。

  • 走行動作が不安定であり、揺らぎの影響を受けやすく、ラインから外れる可能性が高い
  • ライントレースの軌跡が安定しないことで、高速走行することは難しい

 ただし、上記のような短所はありますが、制御手法として“導入が容易”という長所は強く実感できました。



 以上、ETロボコン活動で実際にわたしたちが学んだオンオフ制御について紹介しました。今回の内容が、皆さんのオンオフ制御の理解を深める助けになれば幸いです。また、今回はターン値、前進量を固定で動作させましたが、これらを変化させることでも、走行体の走行は変わってきます。皆さんも実際にいろいろと試して、ご自身の要求を満たす最適な走行を発見していただけたらと思います。(次回に続く)

⇒連載バックナンバーはこちら

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る