名称 MIRS1002 統合プログラム作成仕様書
番号 MIRS1002-SOFT-0001

最終更新日:2010.2.28

版数 更新日 作成 承認 改訂記事
A01 2010.2.28 斉藤 斉藤 初版

目次

  1. ドキュメントの概要
  2. 仕様・方針
  3. ソフトウェア構成と動作概要
  4. まとめ

  1. ドキュメントの概要

    このドキュメントは各要素をクリアするための関数を統合したmain関数の設計・仕様について記述する。

  2. 仕様・方針
  3. ソフトウェア構成と動作概要

    フローチャートを以下に示す。ただし、テスト用の部分に関しては省略する。
    なお拡張子(.dia)はDIAというダイアグラムエディタの出力ファイルである。

    main.dia フローチャート

    内部で使われているオリジナルの関数を以下に示す。
    各関数の詳細に関しては、この文書の最後にあるtarballの中にあるjoint_extern.hに記述があるのでそれを参照。

    【関数の一覧】
    関数名 動作概要 備考
    tload() T字路と通路走行用のプログラム。白線発見時の正対補正も行う。 特になし
    num() 画像撮影->認識->進行方向決定までの処理を担う関数。 戻り値は0:成功,-1:エラー
    cross() 十字路の処理用の関数。引数によって動作が変化する。 特になし
    lcurve() L字路の処理用の関数。引数によって動作が変化する。曲がったあとは、tload()に処理が移る。 特になし
    keyact() 鍵用の動作を行う関数。ボタンを押して少し立った時点で、tload()に処理が移る。 特になし
    room() 小部屋用の処理を行う関数。DBで小部屋と認識してからの小部屋をでるまですべての処理を行う。 特になし
    rotary() ロータリー用の関数。適用範囲はroom()と同様。 特になし
    goal() DBからのゴール発見時の指令で開始。床面の白を検知すると終了処理を行う。 未実装
    emerg() DBの読み取りに失敗した場合の処理。 未実装
  4. まとめ

    各関数を独立させるアイディアは、コードを書く上ではわかりやすい方法でよかった。しかし、重複した内容のコードが多くなってしまった。 その点は改善したい。
    また、一部の関数は必要だが実現できず、tload()を呼び出すことで当日代用したものがある。 開発がスムーズに行けばすべて実装できたはずのため、少々残念だった。

    以下に、すべてのプログラムを統合した形のtarballを添付する。コメントはUTF-8/LFで書かれている。

    mirs1002.tar.gz

    MEMO:開発・debugの環境として、MIRS本体を使う場合、VNCを使ってGUIの画面を転送することができる。
    ただし、VNC用のソフトのインストールが必要になる点、runlevelを5にする必要がある点に注意が必要、
    また、MIRSとAPの接続はあまり安定していないため、その点も留意した方がよい。


関連文書

MIRS1002のSOFTドキュメント




MIRS1002トップページへ