名称 |
MIRS0803 ソフトウェア詳細設計 |
||||
番号 |
MIRS0803-SOFT-0001 |
||||
版 数 |
最終更新日 |
作 成 |
承 認 |
改 訂 記 事 |
|
A01 |
2008.9.16 |
野本・荒井 |
鈴木 |
初版 |
|
|
|
|
|
|
|
目次
1
本ドキュメントについて
2
動作モードの定義
2.1
移動モード
2.2
基準位置移動モード1
2.3
基準位置移動モード2
2.4
ポスト回避モード
2.5
ポスト接近モード
2.6
ポスト番号識別モード
2.7
ポスト獲得モード
2.8
白線回転モード
3
モード遷移表
3.1
競技1回目
3.2
競技2回目
4
モード詳細
4.1
移動モード move()
4.2
基準位置移動モード1 move1()
4.3
基準位置移動モード1 move2()
4.4
ポスト回避モード post_escape()
4.5
ポスト探索モード post_search()
4.6
ポスト接近モード post_approach()
4.7
ポスト番号判別モード post_check()
4.8
ポスト獲得モード post_get()
4.9
白線回転モード line_evasion()
1
本ドキュメントについて
このドキュメントは、MIRS0703基本設計書に規定されたシステムの動作規定、状態遷移を実現する各タスクの開発(コーディング、試験等)に必要な事項を述べるためのものである。
2
動作モードの定義
各動作モードの定義を下記に列記する。
以下は、MIRS基本設計に書かれたものをさらに詳細化したものである。
2.1 移動モード move()
スタート位置を記録しておく。
スタート位置から前方と左右の超音波センサでポストを探索しながら競技場の中心軸を直進する。
2.2 基準位置移動モード1 move1()
ポスト獲得後、ポスト獲得前に基準点に設定した位置へ戻る。
記録した角度と距離を用いて、回転動作により位置補正を行う。
その後、中心軸方向を向く。
2.3 基準位置移動モード2 move2()
スタート位置から超音波センサで探索しながら番号の小さい順に基準点へ移動する。
2.4 ポスト回避モード post_escape()
ポスト探索モード、ポスト接近モード、ポスト番号識別モード、ポスト獲得モード順にモードを切り替え、ポストを獲得する。
ポスト獲得後、後退し、回転、前進動作を3回繰り返すことによりポストを回避する。
2.5 ポスト探索モード post_search()
その場で回転する。
他のポストを見つけることができたら現在位置を基準点とし、そこからの角度と距離を記録する。
初めに見つけたポストへの接近モードへ移る。
2.6 ポスト接近モード post_approach()
見つけたポストに接近する。
ある程度ポストに接近したら正対補正をしながらMIRSが垂直になるようにし、接触する。
2.7 ポスト番号識別モード post_check()
MIRSの正面についている白線センサを用いてポスト番号を識別する。
識別したポスト番号と基準点を合わせて記憶する。
記憶した基準点とスタート位置との距離を割り出す。
2.8 ポスト獲得モード post_get()
ポスト番号判別モードの後、MIRS正面についているベルトコンベアを回転させギャラクティカドーナツを下ろす。
ギャラクティカドーナツを締めポストを獲得する。
再びギャラクティカドーナツを開き、ベルトコンベアを回転させギャラクティカドーナツを上げる。
2.9
白線回転モード line_evasion()
白線を感知したら180°回転行動を行い、移動、ポスト探索モードへ移る。
3
モード遷移表
各モードの遷移表を下記に示す。
3.1 競技1回目
競技1回目の各モードの遷移表を下図に示す。
3.2
競技2回目
競技2回目の各モードの遷移表を下図に示す。
4
モード詳細
各動作モードの詳細・フローチャートを下記に示す。
スタート時にstatic変数nを定義し、値0を入れておく。
4.1 移動モード move()
4.2 基準位置移動モード1 move1()
4.3 基準位置移動モード2 move2()
4.4 ポスト回避モード post_escape()
4.5 ポスト探索モード post_search()
4.6 ポスト接近モード post_approach()
4.7 ポスト番号判別モード post_check()
4.8 ポスト獲得モード post_get()
4.9 白線回転モード line_evasion()