沼津高専 電子制御工学科 |
||||||
|
||||||
改訂記録 |
||||||
版数 |
作成日 |
作成者 |
承認 |
改訂内容 |
||
A01 |
2009.2.20 |
戸塚 |
武藤 |
初版 |
1.目的
2.コンセプト
3.概要
4. 終わりに
このドキュメントは、MIRS0901班MG3のロータリクリアプログラムの概要を記載したものである。
・本競技会で最速
・あらゆる例外にも対応する
1.通路クリアプログラムからロータリ発見の通知をうける。
2.右に90°回転し、左右のタイヤの速度比をちょうどロータリを上手く旋回できるように設定し、モータが出せるだけの最高速度で旋回する。
3.円周の1/8を回ったところで右の超音波センサを起動し、出口の有無を確認する。
4.出口を発見(40cm先まで壁が無いことを確認)したら、旋回し始めを0度とした現在の角度の変位θを計算し出口位置を判断する。
出口位置の判断はfig.1を元に行う。
fig.1.出口判断
fig.1はロータリを上から見た図である。
θが角度aの範囲であればAの出口。
θが角度bの範囲であればBの出口。
θが角度cの範囲であればCの出口。
θが角度dの範囲であればDの出口。
5.もし入り口を発見してしまったらもう一度2.から始める。それ以外だったら6.へ行く。
6.出口の位置から±5°以上ずれていたら±5°の範囲に入るまで移動する。
7.右に90°回転した後前進してロータリを出る。
8.出るときに目の前が壁だったら。近くに出口がある可能性が大きいので。タッチセンサを頼りにして出ていく。
タッチセンサを使う場合は、まず前進を始め、右のタッチセンサが反応したら停止し左に10度程回転し、
左のタッチセンサが反応したら停止し右に10度程回転し、その後また前進するという動作を繰り返す。
前方の超音波センサが90cm先まで障害物が無いことを確認したらロータリクリアである。
9.ロータリクリア後は通路クリアプログラムの通常通路動作へ戻る。
・ 3.〜5.の間では左右のタッチセンサが反応したら、当たった方と逆の方向へ10度程回転して、それまでしていた動作を再開する。
・ 2.で説明した速度を設定する関数は、回転中心からの左タイヤの距離と右タイヤの距離の比が、それぞれの速度比と等しくなることを利用した。旋回開始角度によっては壁にぶつからずにロータリを3から4周できることを確認した。
姿勢角を電子コンパスで確認しているので、手で持ち上げて回したりするような過激な例外を加えても非常に高い確率で出口位置を判断できるようになった。
たとえ電子コンパスや超音波センサが故障しても、タッチセンサを使ってクリアできるのでロバスト性に長けたプログラムが書けたと思う。
しかし本競技会のデモでは競技場の突起に引っかかり動けなくなってしまった。ある時間以上モータが動いていなかったら例外動作をするような
プログラムも書いておいたほうが良かった。
ミルスの横ではなく斜め前に超音波センサを設置すれば出口の発見が早くなり、さらなる高速化が望めるのではないだろうか。
関連文書 |
MIRSMG3D通路クリアプログラム仕様書(MIRS0901-SOFT-00011)