目次
1. 本ドキュメントについて2. モード概要
3. モードの要求仕様
4. プログラムの動作・フローチャート
5. ポスト中心位置の導出方法
6. このモード外で必要な前提条件
1. 本ドキュメントについて
-
このドキュメントは、MIRS0802で使用するポスト判別モード"post_check"について詳細を記述するものである。
2. モード概要
関数名 | ポスト判別モード |
---|---|
書式 | void post_check(int xm, int ym, int direct) |
引数 | MIRSの獲得時座標(int xm, int ym)、接近パターン(int direct) |
戻り値 | なし |
3. モードの要求仕様
MIRS0802におけるポスト番号の確認は下図に示すようなバーコードリーダにより行なう。
ポスト接近の終了後に確認モードを動作させ、
バーコードリーダに設置された白線センサによりポストのバーコードを読み取り、確認する。
また、ポスト番号の確認と同時にポストの中心位置を確認し、
番号と共に「ポスト情報」として記憶する。
ポスト接近の終了後に確認モードを動作させ、
バーコードリーダに設置された白線センサによりポストのバーコードを読み取り、確認する。
また、ポスト番号の確認と同時にポストの中心位置を確認し、
番号と共に「ポスト情報」として記憶する。
図1. バーコードリーダの概観(sim_reader.bmp)
4. プログラムの動作・フローチャート
-
TSでポストとの接触を確認、コードを読むのに十分な間隔を確保する。
(これを確認モード作動の条件として外部設定) -
3個のWSでバーコードリードを行い、ポスト側面のバーコードの本数をカウントする。
ここで得たコード得たコードを以下の表に照合する。
コード本数 ポスト番号 0 1 1 2 2 3 3 4 4 5
この作業をN回(値はdefineで設定)行い、一番多く確認した数字をポスト番号とする。
-
post_checkの関数の引数として、
TSでのポスト接触時のMIRSの位置、向いている方向を与えておき、
ポストの中心位置を求める。
-
ファイルオープンを行い、ポスト番号、ポストの中心位置を書き込む。
図2. post_check()(post_check.bmp)
5. ポスト中心位置の導出方法
-
ポストの中心の座標を(xc,yc)、MIRSの中心座標を(xm,ym)、
- パターン@:direct=1
- パターンA:direct=2
- パターンB:direct=3
- パターンC:direct=4
ポストの中心とMIRSの中心の間隔をdmpとするとする。
ポストの中心座標は次のように求まる。
(xc,yc) = (xm,ym+dmp)
(xc,yc) = (xm-dmp,ym)
(xc,yc) = (xm+dmp,ym)
(xc,yc) = (xm,ym-dmp)
図3. 中心位置の導出(core_cal.bmp)
計算のパターン選択は、引数directを与えることにより選択し、
1〜4の整数をパターン対応させておく。
6. このモード外で必要な前提条件
- MIRSの現在位置(xm,ym)、取得方向(direct)の確認