名称 MIRS1702ソフトウェア詳細設計書
番号 MIRS1702-SOFT-0001

MIRS1702 管理台帳へ戻る
版数 最終更新日 作成 承認 改訂記事
A02 2017.12.22 杉山、塚本 牛丸 初版

目次

  1. はじめに

    本ドキュメントはMIRS1702におけるソフトウェアの詳細設計書について記述したものである。

  2. モジュール構成

    arduinoとRaspberryPiのモジュール構成図をfig1,fig2に示す。

    fig1:RaspberryPiのモジュール構成図

    fig2:arduinoのモジュール構成図

    新規モジュールは青ブロック、または黒の太線で示す。
    新規モジュール一覧をtable1,table2に示す。

    table1:RaspberryPiモジュール一覧
    モジュール名機能新規・変更関数名戻り値
    uss6つの超音波センサの値を取得する。
    6つの超音波センサの値を渡す。
    uss_get()
    uss_get_val()
    なし
    int型
    displayディスプレイからの入力をチェックする。display_check()
    int型
    run走行モジュールの初期化
    走行の制御
    run_init()
    run_run()
    なし
    なし
    route走行体の次の行動を渡す。
    入力より、目的地までの最短ルートを探索する。
    route_get_next()
    route_find_route(int destination)
    int型
    なし
    compassコンパスをオープンする。
    コンパスの測定値を取得する。
    compass_open()
    compass_get()
    int
    なし
    gps位置情報を取得する。gps_get_val()int型
    requestarduinoがオープンされたかチェックする。request_check_connection()int型
    mainプログラム全体を制御する。(会話・走行)main_run()なし
    talk走行体の動作によって適当な会話を行う。talk_run(int state)なし
    speaker入力より、適当な音声ファイルを再生する。speaker_read(int sound)なし
    microphoneマイクの音声を録音し、テキストに起こす。microphone_read()char text
    table2:arduinoモジュール一覧
    モジュール名機能新規・変更関数名戻り値
    advanced高度センサをオープンする。
    温度を取得する。
    気圧を取得する。
    ms5607_opne()
    ms5607_temp()
    ms5607_pres()
    なし
    double型
    double型

    arduinoにturn値を指定する通信項目を追加した。
    既存モジュールに関してはMIRSMG4 ドキュメント管理台帳を参照。

    ユーザーインターフェースの画像を以下に示す。

  3. フローチャート

    ・走行時の行動フローチャートをfig3以下に示す。

    fig3:走行時の行動フローチャート


    ・ブロックごとの行動フローチャートをfig4に示す。

    fig4:ブロックごとの行動フローチャート

  4. スレッド構成

    以下にスレッドの構成を示す。

    RaspberryPi
    ・メインスレッド
    ・超音波計測スレッド
    ・会話機能スレッド

  5. テスト項目

    5.1 機能ごとのテスト

    ・廊下直進テスト:壁との距離から走行体の位置を修正し、道の真ん中を走行できるようにする。
    ・曲がり角走行テスト:チェックポイントである曲がり角にきた時正しく曲がることができるようにする。
    ・経路探索テスト:入力された行き先までの道を探索できるかテストする。
    ・インターフェイスからの入力テスト:ユーザーからの入力でいきたい場所への経路が出力できるかをテストする。
    ・会話テスト:ユーザーと会話ができるかテストする。

    5.2 統合テスト

    ・案内テスト:実際に学校内の案内をさせ、目的地にたどり着けるかテストする。

  6. コーディングルール

    <関数・変数について>

    関数はすべて小文字で書き、最初にモジュール名を書く。二単語以上のときはアンダーバー(_)でつなぐ。
    変数名は小文字で書き、二単語以上のときは二単語目の頭の文字を大文字にする。

    <バージョン管理について>

    バージョン管理は新しい機能を追加するごとにそのバージョンのバックアップをとり、バージョンの数字を上げていく。
    また、足した機能をテキストファイルにまとめていく。