FC2ブログ

スポンサーサイト

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

姿勢制御をする

こんにちは!
東京は結構な雪が降ったみたいですね。幸いうちの地域は積雪がなかったです('Д')

さて今回からは、姿勢制御をできるように頑張りましょう。
それで、このシリーズの目的はマウス1年目の人がマウスを動かせるようにすることを少しでも助けることなのですが、とても良いものを見つけてしまいました。

MONOistさんの記事でRTさんのマイクロマウスキット(Pi:Co Classic)を完成させていく記事です。
http://monoist.atmarkit.co.jp/mn/articles/1307/02/news001.html

私が書こうと思っている
必要性→どうやるか→具体的なプログラム
までが網羅されてしまっているという…w

ということで、具体的なプログラムはこの記事に任せてさらっと説明するとしましょうか。

マイクロマウスの姿勢制御とはマウスを所望の位置または所望の角度にすることです。
マウス初心者に関して言えば、走行中のマウスの中心が180mmの区画の中心になるように左右のモーターの速度を制御することに尽きます。
つまり、制御が効けばその場旋回の開始点やスラロームの開始点がほぼ同じという前提を得られるので、同じ動作で同じ結果(動作終了時のマウスの位置や角度が一意)となると見なすことができます。
この結果が大事で、旋回後に180mm進むと次の区画の手前にいるはず、など次の動作の前提を得られるというわけです。

では、どうやってマウスの位置が区画の中心になるようにすれば良いのでしょうか。
これは、先ほども出ましたが左右のモーターの速度を変えることで実現できます。
例えば中心から右側にずれている時は、右輪を早くして左輪を遅くすれば機体が左を向いて左側にずれていきます。行き過ぎて今度は逆の速度変化をします。このように繰り返していくと、いずれ中心で落ち着くというわけです。

疑問点が出たと思います。
どうやって右側にずれてるとかが分かるのかと。
そこで、左右にあるLEDとPTが登場します。
RTさんのセンサの記事にあるように左右のセンサを進行方向から真横ではなく少し傾けて配置すると、マウスが真っ直ぐで中心も区画の真ん中であるとき(姿勢制御の必要がないとき)のセンサの値が左右で1個ずつ決まります。
この値を壁のリファレンスと呼ぶことにします。
(以後、右センサのリファレンスを右リファ、左センサのリファレンスを左リファとします。)

制御はリファレンスと現在のセンサ値を比較することで行います。
例えば機体が右側に傾いているときは右センサの値は右リファより大きくなり、左センサの値は左リファより小さくなります。このことから現在機体が右側に寄っていると知ることができます。

また、機体が寄っていれば寄っているほど強い制御をかけたいですし、機体が少ししかずれていないときには弱く制御をかけたいです。そこで出てくるのがP制御です。
これはつまり、機体が大きくずれている(リファレンスとセンサ値の差分大)なら速度変化を大きくするということです。

プログラムはMONOistさんの記事で言う調整量retを左右のモーターに±するだけです。
つまり、

右スピード = 右理想速度 + ret
左スピード = 左理想速度 - ret

以上で姿勢制御は完了です。

今回の制御は区画の真ん中を走ろうというものでしたが、ジャイロが加わると角度も制御することになります。
また、上位陣の中には区画の真ん中を走らなくてもターンの時に姿勢を直す軌跡をとれば良いんでしょという恐ろしい人もいますのでこの世界怖いです( ;∀;)

今週はここまでです。
次週は超信地転回(その場回転)を見ていきましょう!トレッド幅などが出てきます。

ではでは ^^) _旦~~
スポンサーサイト
時計
カテゴリ
最新記事
12月14日開始
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。