1. 基準位置移動モード1 move_std
開始位置から、あらかじめ決定しておいた基準位置(競技場中心とは限らない)に、
あらかじめ決定しておいた経路(直線的に移動するとは限らない)を進んで移動する。
基準位置に移動したら終了。
2. 基準位置移動モード2 move_post2std
現在ポストから基準位置まで移動し、補正をかけ、基準方向を向く。
基準方向を向いたら終了。
3. ポスト接近モード move_std2post
基準位置から目標ポストまで移動し、手前で正対補正を行う。
正対補正を終えたら終了。
4. ポスト間移動モード move_post2post
ポスト探索モードで記録した角度・距離の情報から、次の目標ポストまでの距離と、
その方向を向くのに必要な旋回角度を計算し、次の目標ポストまで移動する。
手前で正対補正を終えたら終了。
5. ポスト探索モード search_post
基準位置で回転しながら、MIRS前方の超音波センサでポストを探索する。
ポストを発見したら、基準方向からの角度と、基準点からの距離を記録する。
回転回数に上限を設け、その上限を超えるか、または全ポストを発見したら終了。
6. ポスト番号判別モード search_postnum
前進し、MIRS前方のタッチセンサがONになったら、
同じくMIRS前方の白線センサの値からポストの番号を判別し、記録する。
その後、元の位置まで後退したら終了。
7. ポスト獲得モード get_post
ポストに十分近づき、右に90°旋回して、ポストを左回りに1周する。
途中で赤外線を発見したら、その場で右回りに360°旋回し、ポストの周回を続ける。
ポストを1周したら終了。
8. データ保存モード write_data
1回目の競技で記録したデータ(基準位置から各ポストまでの距離・角度、及び番号など)を
2回目の競技のために外部ファイルに保存する。
保存が終わったら終了。
9. データ読み取りモード read_data
データ保存モードで保存したデータを読み取り、変数に格納する。
格納を終えたら終了。
10. 例外処理モード exception_handling
競技場の周囲の白線を感知したら少し後退し、その場で回転して最も近いポストに移動する。
そのポストを周回し、ポストを獲得する。
その後は、適当にポストを渡り歩き、番号に関係なくポストを獲得する。
このモードに入ったら、以後他のモードには移行せず、競技終了までこのモードのまま。