目次
1. 本ドキュメントについて2. プログラム機能
3. ソースプログラム
1. 本ドキュメントについて
-
本ドキュメントはMIRS0905班のMIRS競技会における障害物「ロータリー」攻略プログラムについて載せたものである。
2. プログラム機能
-
ロータリー攻略プログラムのもつ機能を載せる。
- キャタピラだと正規のモータープログラムでの旋回動作などが指示通りにできない。
対策:モーターを動かす関数で少しずつ適切な時間を見つける。
キャタピラに合ったパラメータを見つけ、それを用いてプログラムを作る。
- 一回出口を見逃したらどうなるのか。
対策:このプログラム通りにMIRSがある程度正確に動作すると仮定し、4回目の探索(入り口)は無視するようにする。
2.1. 認識
本プログラムにおける旋回動作はタッチセンサー反応後に状況に応じて行う。
ロータリー入り口認識は、タッチセンサーが反応した状態で左右の超音波センサが壁を判断しなかった時にロータリーに入ったと判断する。
これは、ロータリーに入ってる途中なのにロータリーに入っていると判断を誤るのを防ぐ為である。
2.2. 周回動作
MIRS0905の車体は他班に比べると横幅が小さい為、ロータリーを周回動作ではなく前進と後退、旋回動作で攻略する計画であった。
本プログラムにおける周回動作はロータリーに入ったと判断した後、以下の様に行動する。
@後ろに少し下がる→A左旋回45°→B前進→C右旋回45°→D少し前進→E右旋回45°
一通り終わったら出口を認識するまでBからDを繰り返す。
2.3. 出口認識
周回動作中におけるロータリーの出口の認識は、上記「2.2. 周回動作」におけるDの後に、車体を左右に揺らして左の超音波センサで出口かどうかを判断する。
向きのイメージとしては以下の画像の@からCの様になる。
Fig.1 出口認識の向き
2.4. アルゴリズム
このプログラム全体の流れを「Fig.2 ロータリープログラムの流れ」に示す。
Fig.2 ロータリープログラムの流れ
2.5. 問題点とその対処法
今回プログラムを作成、実行するにあたっての挙がった問題点と対策を以下に載せる。
なお、この対策の中には構想だけで実際に試せてはいないものもある。
2.6. 反省点
5班でのMIRSは他班と足回りの機構が全く違った物だった為、既存のモータープログラムを使用しようとしてもインプット通りに動作してくれないことが分かったのは良かったが、その対策について時間が足りなかった。
このプログラムに拘らずに既存の周回動作プログラムを使えばもう少し違った結果になったのかもしれない。
3. ソースプログラム
作成したソースプログラムを掲載する。
rotary.c
関連文書
MIRS0905 ソフトウェア詳細設計(MIRS0905-SOFT-0003)
MIRSMG3D 関数レファレンス(MIRSMG3D-FREF-0001)
ロータリー入り口認識は、タッチセンサーが反応した状態で左右の超音波センサが壁を判断しなかった時にロータリーに入ったと判断する。
これは、ロータリーに入ってる途中なのにロータリーに入っていると判断を誤るのを防ぐ為である。
本プログラムにおける周回動作はロータリーに入ったと判断した後、以下の様に行動する。
@後ろに少し下がる→A左旋回45°→B前進→C右旋回45°→D少し前進→E右旋回45°
一通り終わったら出口を認識するまでBからDを繰り返す。
向きのイメージとしては以下の画像の@からCの様になる。
2.5. 問題点とその対処法
- 今回プログラムを作成、実行するにあたっての挙がった問題点と対策を以下に載せる。
なお、この対策の中には構想だけで実際に試せてはいないものもある。
2.6. 反省点
- 5班でのMIRSは他班と足回りの機構が全く違った物だった為、既存のモータープログラムを使用しようとしてもインプット通りに動作してくれないことが分かったのは良かったが、その対策について時間が足りなかった。
このプログラムに拘らずに既存の周回動作プログラムを使えばもう少し違った結果になったのかもしれない。
3. ソースプログラム
-
作成したソースプログラムを掲載する。
rotary.c
関連文書 |
---|
-
MIRS0905 ソフトウェア詳細設計(MIRS0905-SOFT-0003)
MIRSMG3D 関数レファレンス(MIRSMG3D-FREF-0001)