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)の確認
関連文書