名称 MIRS1702ソフトウェア開発報告書
番号 MIRS1702-SOFT-0002

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

目次

  1. はじめに

    本ドキュメントはMIRS1702におけるソフトウェアの開発報告書について記述したものである。

  2. 使用したプログラム

    全体のファイル一覧を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型
  3. 製作内容

    1.走行プログラム
       担当:塚本・杉山
       走行プログラムは廊下の中央を走行、交差点を走行、目的地までの経路を探索を行う。
       標準プログラムを基盤とし、拡張している。
       スレッドを3つに分け、それぞれメインスレッド・超音波計測スレッド・python通信スレッドとした。
       現在、マップとして入力してある目的地は、
       ・学生課
       ・保健室
       ・クリエイティブラボ
       ・トイレ
       ・D4
       ・鄭研究室
       の6箇所である。この6箇所は安定して案内することができた。

    2.会話プログラム
       担当:塚本
       会話プログラムは、音声認識プログラムからソケット通信で送られてくるxmlファイルを読み込み、認識した文字によって返答を出力する。
       想定される例文、返答は事前に大量に書き込んでおき、決められた返答が出力される。
       また、特定の会話パターンを認識した場合は、目的地を走行プログラムに送信する。
       読み上げにはオープンソースの音声合成エンジン「jtalk」を使用している。

    3.音声認識プログラム
       担当:塚本
       音声認識プログラムは、大語彙連続音声認識エンジン「julius」を使用している。
       音声は文ではなく単語として読み込むように設定されている。

    4.読み上げプログラム
       担当:塚本
       走行プログラムから指令された文章を読み上げる。
       「到着しました」などの走行に関係する言葉が設定されている。
       読み上げにはオープンソースの音声合成エンジン「jtalk」を使用している。

    5.Arduinoプログラム
       担当:田中
       モータの制御・高度センサの値の取得を行う。
       標準プログラムを基盤とし、拡張している。
       ターン値を指定するカーブを描く走行、加減速を滑らかにする制御などを追加した。

  4. 全体の完成度の評価

    案内動作
       センサーをすべて活用することはできず、学校全体の案内を完成させることはできなかったが、
    一部の部屋においては基本設計で掲げたとおりの動作を実現し、拡張性もあるため、案内の完成度は高いと考える。
    会話動作
       指定された単語に関しては返答できるが、まだまだ精度は悪かった。
    また、発表会においては騒音によってさらに精度が悪くなってしまったため、もっと調節が必要だった。案内ロボットとしての会話機能は十分であった。

  5. 詳細設計書のリンク

    ソフト詳細設計書へのリンクを以下に示す。
    詳細設計書

  6. 使用したプログラムのリンク

    使用したプログラムへのリンクを以下に示す。
    プログラム
    フォルダ構成
    ・mg4_pi_develop
       走行プログラム
    ・mg4_arduino_ver3.1_0125_2
       Arduinoプログラム
    ・jtalk
       会話プログラム
       読み上げプログラム
    ・word.yomi
    ・word.jconf
    ・word.dic
       音声認識プログラム「julius」で使用した。辞書・設定ファイル。

  7. 総括

    学校を案内するシステムは予定通り完成した。
    これは、早い段階から計画的に作業を進めてきた結果だと思われる。
    余裕があったため、焦りによるミスやトラブルはなく、順調に作業を進めることができたことはとても良かった。
    また、実際に分割プログラミングや自分たちでコーティングルールを決めて開発できたことは良い経験になったと思う。
    二冠という実績を残せたことはとても光栄です。