名称 | MIRS1101 ソフトウェア詳細設計書 |
---|---|
番号 | MIRS1101-SOFT-0002 |
最終更新日:2011.11.21
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2011.11.21 | 望月麟太郎 | 初版 | |
B01 | 2011.12.19 | 村松茂、望月麟太郎 | 機能定義、構造図、エラーについて 追加 |
本ドキュメントは、MIRS1101のソフトウェア詳細設計についてまとめたドキュメントである。
目次
MIRS1101のソフトウェアの機能定義を以下のTable.1 機能定義表に示す。
Table.1 機能定義表
機能名 | 概要 | 備考 | |
---|---|---|---|
要素機能 | 直進 | 指定された距離を、指定した一定速度で指定方向に直進する。 | |
回転 | 指定された角度を、指定した一定角速度で指定方向にその場回転する。 | ||
周回 | 指定された角度・半径から指定方向に、一定速度で周回走行する。 | ||
白線検知 | 白線センサにより、白線を検知する。 | ||
距離計測 | 超音波センサにより、前方および左方の壁までの距離をcm単位で計測する。 | ||
接触検知 | 機体前方にあるタッチセンサにより、機体が壁などに接触したことを検知する。 | ||
数字認識 | ダイレクションボードの数字を認識する。 |
新たにに作る関数を次のTable.2 新たに作成する関数に示す。
これらの関数以外は、標準機に既にあるものを使用する。
Table.2 新たに作成する関数
関数名 | 型 | 引数 | 概要 | 戻り値 | 備考 |
---|---|---|---|---|---|
num_detect2() | void | (int)num[2],max_roop_counter | 引数を配列にして、画像処理の結果を代入する。 | void | この関数はt_cap()の中で呼び出される。 |
run() | int | void | 通路走行を行う。 白線を検知すると、ゴールかDBか判定する。 |
0, 1 | T字路ならば0, ゴールならば1を返す。 |
t_cap() | int | void | 画像を認識し、進路決定を行う。 | 0, -1 | エラーのとき-1を返す。 |
key() | int | void | 鍵、扉を攻略する。 | 0, -1 | エラーのとき-1を返す。 |
room() | int | void | 小部屋を攻略する | 0, -1 | エラーのとき-1を返す。 |
rotary() | int | void | ロータリーを攻略する。 | 0, -1 | エラーのとき-1を返す。 |
各仕掛け攻略関数毎にファイルを作成する。
Table.3 ファイル構成
ファイル名 | 関数名 | 備考 |
---|---|---|
main.c | main() | |
run.c | run() | |
t_cap.c | t_cap() | |
num_detect2.c | num_detect2() | |
key.c | key() | |
room.c | room() | |
rotary.c | rotary() |
以上の関数の構造を以下のFig.1 構造図で示す。
Fig.1 構造図
全体のフローチャートを以下に示す。
fig.2 フローチャート
動作内容
エラーについて
画像処理のエラーについて
画像処理で認識エラーが起こった場合、正対補正を行い再度数字認識を行う。
何度か正対補正と数字認識を繰り返しても認識できない場合は進路を左にとる。
(詳細は別ドキュメント)