| 名称 | MIRS1702ソフトウェア開発報告書 | 
|---|---|
| 番号 | MIRS1702-SOFT-0002 | 
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 | 
|---|---|---|---|---|
| A02 | 2017.2.7 | 杉山、塚本 | 初版 | 
本ドキュメントはMIRS1702におけるソフトウェアの開発報告書について記述したものである。
全体のファイル一覧をtable1、table2に示す。
| モジュール名 | 機能 | 新規・変更関数名 | 戻り値 | 
|---|---|---|---|
| uss | 6つの超音波センサの値を取得する。 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型 | 
| request | arduinoがオープンされたかチェックする。 | request_check_connection() | int型 | 
| main | プログラム全体を制御する。(会話・走行) | main_run() | なし | 
| talk | 走行体の動作によって適当な会話を行う。 | talk_run(int state) | なし | 
| speaker | 入力より、適当な音声ファイルを再生する。 | speaker_read(int sound) | なし | 
| microphone | マイクの音声を録音し、テキストに起こす。 | microphone_read() | char text | 
| モジュール名 | 機能 | 新規・変更関数名 | 戻り値 | 
|---|---|---|---|
| advanced | 高度センサをオープンする。 温度を取得する。 気圧を取得する。  | ms5607_opne() ms5607_temp() ms5607_pres()  | なし double型 double型  | 	
		
		1.走行プログラム
			   担当:塚本・杉山
			   走行プログラムは廊下の中央を走行、交差点を走行、目的地までの経路を探索を行う。
			   標準プログラムを基盤とし、拡張している。
			   スレッドを3つに分け、それぞれメインスレッド・超音波計測スレッド・python通信スレッドとした。
			   現在、マップとして入力してある目的地は、
			   ・学生課
			   ・保健室
			   ・クリエイティブラボ
			   ・トイレ
			   ・D4
			   ・鄭研究室
			   の6箇所である。この6箇所は安定して案内することができた。
			
		2.会話プログラム
			   担当:塚本
			   会話プログラムは、音声認識プログラムからソケット通信で送られてくるxmlファイルを読み込み、認識した文字によって返答を出力する。
			   想定される例文、返答は事前に大量に書き込んでおき、決められた返答が出力される。
			   また、特定の会話パターンを認識した場合は、目的地を走行プログラムに送信する。
			   読み上げにはオープンソースの音声合成エンジン「jtalk」を使用している。
			
		3.音声認識プログラム
			   担当:塚本
			   音声認識プログラムは、大語彙連続音声認識エンジン「julius」を使用している。
			   音声は文ではなく単語として読み込むように設定されている。
			
		4.読み上げプログラム
			   担当:塚本
			   走行プログラムから指令された文章を読み上げる。
			   「到着しました」などの走行に関係する言葉が設定されている。
			   読み上げにはオープンソースの音声合成エンジン「jtalk」を使用している。
			
		5.Arduinoプログラム
			   担当:田中
			   モータの制御・高度センサの値の取得を行う。
			   標準プログラムを基盤とし、拡張している。
			   ターン値を指定するカーブを描く走行、加減速を滑らかにする制御などを追加した。
			
		
		案内動作
		   センサーをすべて活用することはできず、学校全体の案内を完成させることはできなかったが、
一部の部屋においては基本設計で掲げたとおりの動作を実現し、拡張性もあるため、案内の完成度は高いと考える。
		会話動作
		   指定された単語に関しては返答できるが、まだまだ精度は悪かった。
また、発表会においては騒音によってさらに精度が悪くなってしまったため、もっと調節が必要だった。案内ロボットとしての会話機能は十分であった。
		
		
		ソフト詳細設計書へのリンクを以下に示す。
		詳細設計書
		
		使用したプログラムへのリンクを以下に示す。
		プログラム
		フォルダ構成
			・mg4_pi_develop
			   走行プログラム
			・mg4_arduino_ver3.1_0125_2
			   Arduinoプログラム
			・jtalk
			   会話プログラム
			   読み上げプログラム
			・word.yomi
			・word.jconf
			・word.dic
			   音声認識プログラム「julius」で使用した。辞書・設定ファイル。
		
		学校を案内するシステムは予定通り完成した。
		これは、早い段階から計画的に作業を進めてきた結果だと思われる。
		余裕があったため、焦りによるミスやトラブルはなく、順調に作業を進めることができたことはとても良かった。
		また、実際に分割プログラミングや自分たちでコーティングルールを決めて開発できたことは良い経験になったと思う。
		二冠という実績を残せたことはとても光栄です。