MIRS0802 ポスト判別モード作成仕様書
MIRS0802-SOFT-0002
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2008.10.7 初版
A02 2008.10.8 ポスト位置の導出方法、前提条件追加
A03 2008.10.28 図の差し替え、プログラム動作、ポスト位置導出方法の改訂
プログラム概要の追加
A04 2008.11.7 関数の引数を変更
A05 2008.11.14 関数の引数を変更、
前提条件の詳細を追加、モード名を修正
A06 2008.12.1 フローチャート挿し替え
A07 2009.2.9 ポスト5個対応版に修正

目次

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でバーコードリードを行い、ポスト側面のバーコードの本数をカウントする。
    ここで得たコード得たコードを以下の表に照合する。
    コード本数ポスト番号
    01
    12
    23
    34
    45

    この作業をN回(値はdefineで設定)行い、一番多く確認した数字をポスト番号とする。
  • post_checkの関数の引数として、
    TSでのポスト接触時のMIRSの位置、向いている方向を与えておき、
    ポストの中心位置を求める。
  • ファイルオープンを行い、ポスト番号、ポストの中心位置を書き込む。

  • 図2. post_check()(post_check.bmp)

5. ポスト中心位置の導出方法

    ポストの中心の座標を(xc,yc)、MIRSの中心座標を(xm,ym)、
    ポストの中心とMIRSの中心の間隔をdmpとするとする。

    ポストの中心座標は次のように求まる。
    • パターン@:direct=1
    • (xc,yc) = (xm,ym+dmp)
    • パターンA:direct=2
    • (xc,yc) = (xm-dmp,ym)
    • パターンB:direct=3
    • (xc,yc) = (xm+dmp,ym)
    • パターンC:direct=4
    • (xc,yc) = (xm,ym-dmp)

    図3. 中心位置の導出(core_cal.bmp)
    計算のパターン選択は、引数directを与えることにより選択し、 1〜4の整数をパターン対応させておく。

6. このモード外で必要な前提条件

  • MIRSの現在位置(xm,ym)、取得方向(direct)の確認
関連文書