ロボカップ姉妹の日常

ステッピー&ロック・オンの姉がロボットとか作りつつ制御の勉強してみたり、部品作ってあそんでみたり…

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【第二回】比例制御でライントレースをする ~実践編~

前回(…と言ってもかなり前ですが)比例制御の座学的な話を記事にしたので、今回はロボットキットTJ3Bで使えるC-Style用のプログラムソースを公開します。
フローチャートも頑張って描いたのでTJ3ユーザーでない方も挑戦してみてください( ・∀・)ノ


右クリック→対象をファイルに保存でどうぞ。
テキストファイルとして保存されてしまう場合は保存方法を「テキストドキュメント」から「全てのファイル」に切り替えて、ファイル名の最後に「.Csy」とつければ大丈夫です(-_-)b
P_linetrace.Csyのダウンロード


スライド1
スライド2
スライド3
2つのIRセンサを用いたライントレースプログラムです。単純に2センサの差を制御量として使います。
左右それぞれの場合の処理は全く同じです。
比例制御の値を曲がりたい方向のモータに入力し、比例制御を行います。

ゲインを調節することによって制御のキツさを変えることができます。
ゲインが大きいとON/OFF制御に近い挙動になり、小さいと曲がりきれずにカーブで脱線してしまいます。

また、モータに入力できる最低値は-100なので、-100以下の値が出てしまったときは-100に直しています。

シーケンスの最後に入っている10msのwaitは制御が過剰にならない様にクッションの役割をしています。
無くても成立しますが、ゲインが高いと過剰な制御でモータがブザーのようになることがあるので注意して下さい。

スポンサーサイト

【第一回】比例制御でライントレースをする ~概要編~

大会で披露した比例制御ライントレースについて質問をいただいたので、ちょっとずつ解説記事を書いていこうかと思います。
これを読んで比例制御の魅力が皆さんに伝わればなぁ……と。

とりあえず、比例制御よ流行れ(b´∀`)



  • ON/OFF制御と比例制御の違い
大会で多くの選手が行っているライントレースはON/OFF制御と呼ばれるもので、閾値によって“黒”と“白”の2状態に分けて制御を行います。
それに対して比例制御は“目標のセンサ値との差”にゲイン(倍率)をかけて制御量(モータ出力)を決定します。

つまり、“ずれた分だけ戻そうとする”ということです。

こうすることによって、ラインの上をガタガタ振動しながら走る“ハンチング”という現象が起こりにくくなります。
スライド2



  • 制御量の計算
制御量は図のように計算します。
スライド4
計算によってモータの最大出力以上の値が出てくる場合、それを制限する判断などもあると良いです。
また、制御が細かすぎるとライントレースの速度が遅くなるので「2つのセンサ値がどちらも●%以下なら黒ラインの中心にいると判断して直進」という判断を付け加えても良いと思います。




  • 比例制御ライントレースに必要なもの
センサのアナログ値が制御量の計算に使われるので、黒ラインの真上にセンサがある場合と黒ラインを完全に見失っている場合の距離とセンサ値の差(レンジ)が大きく、月の満ち欠けのように徐々に値が変化していくセンサが適していると言えます。
スライド5

よって、図のようにスポットの広い光反射センサでなければ正しく制御できない場合があります。








次回は簡単なアルゴリズムとプログラムについて書こうかなぁ…と予定していますm9( ゚д゚)

該当の記事は見つかりませんでした。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。