名称 MIRS1102 システム開発計画書
番号 MIRS1102-PLAN-0003

最終更新日:2011.7.8

版数 最終更新日 作成 承認 改訂記事
A01 2011.7.4 望月康孝 - 初版 議事録1,2
A02 2011.7.8 望月康孝 望月康孝(牛丸先生) 2版 議事録3

目次




1.はじめに


本ドキュメントは、MIRS1102の戦略・プログラム設計及び開発工程について記したドキュメントである。


2.行動戦略


各機能をシンプルにしつつ、動作の精度を向上させることを優先し、確実に迷路を攻略する。そのために、攻略時間の短縮を諦める場合もある。


3.動作仕様


マルチスレッドの流れを下図に示す。MIRS1102では、基本的に3つのスレッド(状態判断スレッド・モータ制御スレッド・計測スレッド)を用意して、動作させる。状態判断スレッドをメインとし、計測スレッドからの情報をもとに、モータ制御スレッドに逐次指示を出す。
また、スレッド切り替えにタイムラグが発生すると考えられ、誤差が発生する可能性がある。そこで、状態判断スレッドでは、計測スレッドの情報から、その後のMIRSの状態を予測し、タイムラグを考慮して事前に指示を出す。

※なお、下図は直進走行における動作を示している。

プログラムのフローチャートを下図に示す。MIRS1102では、各機能をモジュール化して、必要に応じて呼び出す形を取る。各機能の動作の流れは機能定義で示す。


  • 通路走行
    1. コースを記憶しながら進む
    2. 前方のタッチセンサと超音波センサによりT字路・カーブ・行き止まりを検知する
    3. 行き止まりの場合は、コースを戻り、まだ通っていない通路を探す。その後、通っていない通路を検出・走行
    4. カーブの場合は、その場で90°回転し、走行
    5. 直進の場合は、超音波センサやロータリーエンコーダなどを使用し、壁に接触しないように走行する。

  • ロータリー
    1. ロータリーに侵入後、中央のポールを中心に現在地から90°回転した位置まで移動する
    2. 超音波センサを用いて、出口を探す
    3. 無ければ、再度移動して出口を探す or あれば、ロータリーを出る

  • Direction Board
    1. 白線ラインを検知して、撮影を行う
    2. ラベリング処理後、2つの領域を画像内の座標から番号を振る
    3. 1つずつテンプレートマッチングを行っていく

  • 小部屋
    1. Direction Boardで識別後、小部屋に侵入したことを超音波センサで判断
    2. 左右の超音波センサから、どちらの壁づたいで出口を探すか決め、走行する。
    3. 見つけたら出る or 前方のタッチセンサに反応があれば90°回転して再度探索する

  • 鍵・扉
    1. Direction Boardで識別後、鍵の位置まで移動する。
    2. 壁にタックルし、扉を開ける
    3. 扉を通り、次の動作に移行する。開いていなかった場合は再度鍵の取得に移行する。


4.機能定義


基本的動作の関数の動作を下記に示す。
  • 直進走行
    1. 機能概要: 要求された距離を真っ直ぐ走行する。(基本的に速度は固定とする)
    2. 性能要求: 1mの距離を、左右のずれを2㎝以内、前後のずれを2㎝以内に抑える
    3. 備考: 標準の関数を変更

  • 回転走行
    1. 機能概要: 要求された角度だけその場で回転する。(基本的に速度は固定とする)
    2. 性能要求: 90度、180度を±5度以内でその場で回転する。
    3. 備考: 標準の関数を変更

  • 周回走行
    1. 機能概要: 要求された半径・角度・方向に基づき、弧を描いて走行する。(基本的に速度は固定とする)
    2. 性能要求: ロータリー用に周回半径35㎝で180度回った時に、回転のずれを±5度以内、左右のずれ±2㎝以内に抑える。
    3. 備考: 標準の関数を変更

  • 超音波計測
    1. 機能概要: 目的の物体との距離を計測する。
    2. 性能要求: 20cmから150cmまでの距離を、10%未満の誤差に抑えて計測する
    3. 備考: 標準の関数を利用

  • 白線センサ検知
    1. 機能概要: 床面の白線を検知する
    2. 性能要求: 2か所以上の白線について(環境の変化に強くするため)、その各々で検出率を9割以上にする
    3. 備考: 標準の関数を利用

  • 通路及び走行履歴の記憶
    1. 機能概要: 迷路の通路および走行履歴を記憶する
    2. 性能要求: 迷路における記憶ミスを3か所未満とする
    3. 備考: 新規作成

  • 壁検知
    1. 機能概要: 壁を検知する(タッチセンサのON/OFFを検知する)
    2. 性能要求: 壁接触時の誤動作を10%未満の回数にする
    3. 備考: 標準の関数を利用

  • 数字認識
    1. 機能概要: DBの数字を認識する
    2. 性能要求: 白線からの距離(DBからカメラの距離は60㎝)で数字認識を行った場合に90%精度で0~9の数字を認識できるようにする。
    3. 備考: 標準の関数を変更



下記に各種動作を補正する機能を示す。
  • 正対補正
    1. 機能概要: 正面の壁に正対することを補助する
    2. 性能要求: 正面の壁に対する機体正面方向の誤差を5度未満にする
    3. 利用する機能: 直進、回転、超音波計測
    4. 備考: 新規作成



下記に示す機能はモジュールとして分割する。
  • Direction Board
    1. 機能概要: 数字認識を行う
    2. 性能要求: 仕掛け攻略の成功率を90%以上とする
    3. 利用する機能: 直進、回転、数字認識、白線センサ検知、通路及び走行履歴の記憶、壁検知、正対補正

  • 通路走行
    1. 機能概要: 仕掛け以外の通路の走行を制御する
    2. 性能要求: 通路走行の成功率を95%以上とする
    3. 利用する機能: 直進、回転、周回、超音波計測、白線センサ検知、通路及び走行履歴の記憶、壁検知

  • ロータリー
    1. 機能概要: ロータリー内の走行を制御する
    2. 性能要求: 仕掛け攻略の成功率を90%以上とする
    3. 利用する機能: 直進、周回、超音波計測、通路及び走行履歴の記憶、壁検知

  • 小部屋
    1. 機能概要: 小部屋内の走行を制御する
    2. 性能要求: 仕掛け攻略の成功率を90%以上とする
    3. 利用する機能: 直進、回転、超音波計測、通路及び走行履歴の記憶、壁検知

  • 鍵・扉
    1. 機能概要: 鍵・扉の場所における制御を行う
    2. 性能要求: 仕掛け攻略の成功率を90%以上とする
    3. 利用する機能: 直進、回転、超音波計測、通路及び走行履歴の記憶、壁検知



5.テスト仕様


テスト実施の順番は単体テスト→結合テスト→総合テストの流れで行う。機能テストの順番はプログラムが完成したものから順次実施する。

単体テスト仕様
  • 直進走行
  • 迷路内の直進コースにおいて1mの距離を、左右のずれを2㎝以内、前後のずれを2㎝以内で走行できることを確認する。

  • 回転走行
  • 迷路内の適当な個所で、機体が90度・180度を±5度以内で回転できることを確認する。

  • 周回走行
  • 迷路内のロータリーにおいて、周回半径35㎝で180度を指定したとき、回転のずれを±5度以内、左右のずれ±2㎝以内に抑えられていることを確認する。

  • 超音波計測
  • 迷路内の適当な個所で、20cmから150cmまでの距離を、10%未満の誤差に抑えて計測できることを確認する。

  • 白線センサ検知
  • 迷路内における白線検出率を9割以上であることを確認する。また光量など環境の違う場所での動作も同様に確認する。

  • 壁検知
  • 迷路内の適当な個所で、壁検知率が9割以上であることを確認する。

  • 数字認識
  • 迷路内のDBにおいて数字認識率を9割以上であることを確認する。また光量など環境の違う場所での動作も同様に確認する。この時、機体の位置は手動で調整する。


結合テスト仕様
  • Direction Board
  • 仕掛け攻略の成功率を90%以上であることを確認する。

  • 通路走行
  • 通路を最後まで走行することを成功とし、成功率を95%以上であることを確認する。

  • ロータリー
  • 仕掛け攻略の成功率を90%以上であることを確認する。

  • 小部屋
  • 仕掛け攻略の成功率を90%以上であることを確認する。

  • 鍵・扉
  • 仕掛け攻略の成功率を90%以上であることを確認する。

総合テスト仕様
  • 迷路攻略
  • 迷路攻略成功率を80%以上であることを確認する。



6.開発計画


プログラム開発における開発工程表を下記に示す。










沼津工業高等専門学校 電子制御工学科