MIRS0905 ソフトウェア詳細設計
MIRS0905-SOFT-0003
改訂記録
版数 作成日 作成者 承認 改訂内容
A02 2010.03.04 崇史・秀幸・弥 栗田 検討中であった項目2点を追加(2.1.4.、2.2.4)
A01 2009.10.26 崇史・秀幸・弥 栗田 初版

目次

1. 本ドキュメントについて
2. ソフトウェアプログラムについて

1. 本ドキュメントについて

    ソフトウェア詳細設計をここに示す。なお、MIRS0905班で扱うソフトウェアプログラムは大きく分けて次の2つになる。


2. ソフトウェアプログラムについて

    2.1. Digital Map

      2.1.1. 機能定義

      • 本戦1回目スタートからMIRSがセンサなどによって判断し、通った通路を記憶する(正確にはモータをどのように動かしたか)。
      • 上記の情報を利用し、本戦2回目のルートを決定する。この時、最短ルートを通るようにルートを決定する。
      • 決定したルートをMIRSが本戦2回目で通れるよう、実行プログラムを作る。

      2.1.3. アルゴリズム

        このプログラム全体の流れを「Fig.1 Digital Mapの流れ」に示す。
        Fig.1 Digital Mapの流れ

         競技startより、常にMIRSがセンサ等によって状況判断をし、走行系に指示を与える。
        その指示をDigial Mapにも送り、これを記憶する。
        また「最短ルート処理」(詳しくは後述する)を行い、Goal・競技startより5分経過ならば、終了動作に入る。
        実行Programとは本戦2回目でMIRSがシーケンス的にモータ制御動作を行う為のファイルで、予定ではテキストファイル(***.txt)としている。
        Mapとは競技アピールとして、観戦者に対してMIRSがどのようなルートを本戦2回目に通る予定なのか、を視覚的に示したファイルである。
        * 「最短ルート処理」とは、センサの判断時間を本戦2回目で省くだけでなく、各障害物での攻略短縮をはかる処理である。

        「最短ルート処理」を行うのは次の3つである。
        • 「行き止り」
          DBの分岐点で誤って進んでしまった場合、2回目ではそこへ行かないようにする。
        • 「小部屋」
          記憶した出口まで入り口から直進する。
          [2009.10.30追記]本戦1回目の経路を追う場合と入口と出口を結んだ直線上を進む場合では、時間的にあまり短縮されないことが分かった
          よって、本戦2回目は本戦1回目の経路をそのまま通ることにした。
        • 「ロータリー」
          右回り、左回り、どちらが良いかを判断してそちら側から回る。

      2.1.4. テスト仕様

        MIRSからの判断入力をキーボード入力に代え、MIRS機以外でもプログラム自体の動作に対応できるようにした。

      2.1.5. 問題点とその対処法

      • 「行き止り」を通ってしまった時、最短ルートをどのように書き換えするか。
        対策:「行き止り」を通らないよう、DBでは「行き止り」と反対の方向に曲がるようにする。
      • 「ロータリー」で出口が見つからなかった場合はどうするか。
        対策:1/4円弧周回動作を4回行った時に見つけた出口は「入り口」なので、その点を考慮し、2週目の「出口探索動作」を行う。

    2.2. 走行系制御プログラム

      2.2.1. 機能定義

      • コースを走行する際、それぞれの行動の後に直前に行った動作を記憶する。
        それをもとにDigital Mapを作成し、2回目の競技ではより早くゴールを目指す。
      • 1マス進むごとに両側面の超音波センサで壁の有無を判断する。
      • 白線センサは常に監視し、白い線ならDB、白い面ならゴールと判断する。
      • 両側どちらかの道がひらけたら、ひらけた方の道へ進み、方向転換を記憶する。
      • 数字認識を行った(DB通過)後、それぞれの障害に対応する動作を実行する。

      2.2.2. モジュール分割

        各障害物に対する動作を定義する為のモジュール、基本的動作・判断(センサ等による)の為のモジュールで分割する場合がある。

      2.2.3. アルゴリズム

        このプログラム全体の流れを「Fig.2 走行系制御プログラムの流れ」に示す。
        なお、障害物に対する優先順位は考慮していない。

        Fig.2 走行系制御プログラムの流れ

      2.2.4. 問題点とその対処法

        • DBの数字が左右両方「0」(DB)であったとき
          対策:左側へ進むこととする(MIRS0905班のリーダが左利きであることに由来する)。
関連文書