ポストを周回しながら、MIRS右方の超音波センサでポストを探索する。
ポストを発見したら、発見したポストが同区間にあるか判別し、同区間にあるなら
獲得済みか判断し、未獲得の場合に現在周回しているポストからの距離と角度を記憶する。
赤外線センサーに反応があったらポスト獲得モードに移る。
ポスト周回動作を終えたら終了。
5. ポスト接近モード post_approach
基準となる位置から、目標ポストまで移動し、手前で正対補正を行う。
正対補正を終えたら終了。
6.ポスト間移動モード
ポスト探索モード(ポスト周回中)中にポストを発見した位置まで移動し、
発見したポストまで移動する。
7.ポスト間帰還モード
ポスト間移動の基準にしたポストに戻る。
8. ポスト周回位置移動モード circle_position
ポストを周回する位置まで移動し、ポストに対して正対補正を行う。
正対補正を終えたら終了。
9. ポスト獲得モード post_get
周回中に赤外線を発見したら、90度右に旋回し、正対補正を行い、ポストに接近して獲得する。
その際に赤外線からポストの番号を記憶する。
獲得後、周回位置まで後退し、正対補正を行い、左に90度旋回する。ポストを1周したら終了。
10未発見ポスト探索モード
すべてのポストを発見・獲得しきれなかった場合、4つに区切った区間の各中心に移動(ポスト未発見の区間優先)して、
ポスト探索モードに移る。
11. 中心位置補正モード correct_center
中心位置にもどったときに360度旋回し、はじめに見つけたポストの位置と比較し、
中心位置へ移動する。
中心位置へ移動したら終了。
12. 基準位置移動モード2(競技2回目) control2
開始位置から直進し、競技1回目で記憶した番号が1番小さいポストのY座標上まで
移動する。
13. y軸帰還モード
ポスト獲得後、x軸方向に進んだ距離の分戻ってy軸上に帰還する。
14.ポスト周回モード(競技2回目)
ポストに接近した後、周回を始める。赤外線センサーに反応があったらポスト獲得モードに移る。
獲得が終わったらy軸上に帰還し、次のポストを取りに行く。これを繰り返して、全部のポストを獲得したら終了。
15. 誤差修正モード correct_error
競技2回目で、獲得しに行ったポストの位置が、競技1回目に記憶していた位置と異なる場合、
競技1回目に記憶していた位置まで移動する。その位置まで移動したら終了。
16. レーザーマウスの値読み取りモード laser_mouse
レーザーマウスの値を読み取る。
17. データ保存モード write_data
1回目の競技で記憶したデータ(ポストの位置、ポスト番号など)を外部ファイルに保存する。
保存したら終了。
18. データ読み取りモード read_data
データ保存モードで保存したデータを読み込み、変数に格納する。
格納を終えたら終了。
19. データ比較モード compare_data
直前と現在のレーザーマウスの値を比較し、誤差が大きかった場合、
レーザーマウスの値とロータリエンコーダの値のどちらのデータを扱うか決定する。
3.モード遷移表
縦軸:動作モード 横軸:動作の順番
3.1.競技1回目
3.2.競技2回目