名称 MIRS1304 競技用ソフトウェア開発計画書
番号 MIRS1304-PLAN-0003

最終更新日:2013.10.07

版数 最終更新日 作成 承認 改訂記事
A01 2013.10.01 芦田樹 - 初版
A02 2013.10.07 芦田樹 牛丸先生 指摘部分を修正


目次





1.はじめに


本ドキュメントは、8/10に行われる体験入学に向けて、MIRS1304標準機を用いた戦略・プログラム設計・開発工程について記したドキュメントである。

2.基本戦略


確実なゴールを目指すため、時間を犠牲にしてでも保険を多重にかけ、安全策をとった堅実なプログラムの設計を目標とする。

3.標準機について


体験入学デモの攻略のために、標準機に超音波センサを以下のように追加する。

標準機:前2機、左1機、右0機
追加後:前2機、左1機、右1機

※左右の超音波は、MIRS本体を通路の中心に置いたとき、壁までの距離が25cmになるように設置する。

4.動作の流れ


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


  • 通路走行
    1. 前方のタッチセンサと超音波センサによりT字路・曲がり角・行き止まりを検知する
    2. 曲がり角の場合は、その場で90°回転し、走行
    3. 直進の場合は、超音波センサやロータリーエンコーダなどを使用し、壁に接触しないように走行する。
    4. 壁に接触した場合、後退し超音波計測で周りの状況を計測して向きを変更する。

  • Direction Board
    1. 白線を認識する。
    2. 画像を正確に取得するために正対補正を行う。
    3. 画像を取得し、数字認識処理を行う。
    4. 正しく認識できた場合⇒5.に移行
      正しく認識できなかった場合⇒2.に戻る
    5. あらかじめ決めておいた優先度に従い、攻略する仕掛けを選択し通路動作に移行する。鍵・扉の優先度は最低にしておく。

  • ロータリー
    1. Direction Boardで識別後、ロータリーに侵入したことを超音波センサで判断
    2. ロータリーに侵入後その場で90°回転し、少しロータリー走行する。
    3. 超音波センサを用いて、出口を探しながら、ロータリー走行を続ける。
    4. 出口を発見したら90°回転し、ロータリーを出る。

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

  • 鍵・扉
    1. Direction Boardで識別後、鍵の位置まで移動する。
    2. 壁にタックルし、扉を開ける
    3. 扉を通り、次の動作に移行する。


5. 基本動作仕様

基本的動作の関数の動作を下記に示す。

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

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

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

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

  • 白線センサ検知
    1. 機能概要: 床面の白線を検知する
    2. 性能要求: 検出率を9割以上にする。
    3. 備考: 標準の関数を利用

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

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




6 詳細設計

6.1 モジュール分割

下記に示す機能はモジュールとして分割する。

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

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

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

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

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

6.2 フローチャートの詳細設計

各モジュールの機能関数を用いてあらわしたフローチャートを以下に示す。

・ロータリー



・小部屋



・鍵・扉





6.開発日程


開発日程を以下に示す。
日付~8/78/88/98/10 朝
作業内容 ソフト開発 実機の組み立て、テスト モーターボードのデバック、実機テスト 最終調整

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