名称 | MIRS2005基本設計書(ソフトウェア) |
---|---|
番号 | MIRS2005-DSGN-0006 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2020.10.18 | 榊原里樹 | 初版 | |
A02 | 2020.10.23 | 和木優空 | 青木先生 | 第2版 |
本ドキュメントは、ソラシ♬プロジェクトのソフトウェア基本設計書である。
Table1に基本機能を示す。
機能名 | 目的 | 詳細 |
---|---|---|
アピール機能 | 子供の興味を引く | 音声や首の動作を用いて子供の意識をそらす 待合室と診察室で使用される |
音声(アピール①) | 言葉や音楽を鳴らす | スピーカーから音楽・音声を鳴らす 音声はあらかじめセリフを録音しておく |
会話(アピール③) | 特定の言葉に反応して返事をする | マイクが特定の音声を拾った場合それに合わせた返事をする |
ライントレース機能 | 病院内をライントレースで移動する | 病院の床に専用のラインを引いてそのラインに沿って移動する 移動は待合室から診察室までの間で行う カメラを用いてライントレースを行う |
ライン二重認識機能(ライントレース①) | ラインが二重にひかれたところ(マーカー)を認識する | ラインを二重にしたところ(マーカー)を判断できるようにする 操作待機やアピールの目印とする |
遠隔操作機能 | スマートホンのBluetooth機能で特定の操作を遠隔で行う | 専用アプリを用いてソラシのraspberry piとBluetooth通信を行う 発進・停止などの特定の操作を遠隔で行えるようにする |
接近探知機能 | 人や障害物が接近した場合走行を停止する | 超音波センサを用い人や障害物の接近を検知して危険な場合に走行を停止する |
緊急停止機能 | 問題が起きた際に緊急停止する | 緊急停止ボタンを押すことですべての機能が停止する アプリからの遠隔停止も可能にする |
ソラシでは判断の難しい操作を遠隔で行う。そのため専用androidアプリを作成する。
Androidアプリの機能をTable2にまとめる。
機能名 | 内容 | 詳細 |
---|---|---|
スタート | MIRSに移動命令を出す |
MIRSにあらかじめ引かれた線の上を移動させる 「停止命令を出す」「緊急停止させる」「アピールポイントに到着する」のいずれかが起きるまで動き続ける |
ストップ | MIRSをその場で一時停止させる | MIRSをその場で一時停止させる もう一度スタートを押せば再び動き始める |
緊急停止 | MIRSの全動作を強制的に止める |
MIRSの全動作を強制的に終了させる MIRSの全動作を強制的に終了させる 通信は停止しないが緊急停止以外の機能は使えなくなる MIRSを再起動し再接続すれば使えるようになる |
パスワード認証 | 認証されていない状態で動かせないようにする |
MIRSが起動時に表示するパスワードを入力することで接続が完了し遠隔操作できるようになる パスワードは起動ごとにMIRS側で設定しなおされる |
診察室に呼ばれた | 診察室に呼ばれたことをソラシに伝える | 診察室に呼ばれたことを音声から判断することは難しいので保護者のアプリから診察室に呼ばれたことをソラシに送信する |
乗車確認 | 子供がソラシに乗ったことをソラシに伝える | 子供がソラシに乗車したことを保護者のアプリからソラシに送信する |
降車確認 | 子供がソラシから降りたことを確認する | 子供がソラシから降りたことを保護者のアプリからソラシに送信する |
注射開始 | 注射が始まったことをソラシに伝える | 注射が始まったことをソラシに送信する |
注射終了 | 注射が始まったことをソラシに伝える | 注射が始まったことをソラシに送信する |
ソラシは保護者の操作する専用アプリからの操作によって動作モードが切り替わる。
動作モードをTable3にまとめる。
番号 | 動作モード | 内容 |
---|---|---|
1 | 待合室 アピール |
待合室で待つ子供が興味を持つように、動作、音声、音楽を用いて興味を引く。 |
2 | 注射中 アピール |
子供の意識を注射からそらすために、動作、音声、音楽を用いて興味を引く。 また保護者アプリからの注射終了確認があるまでアピールを続ける。 |
3 | 子供乗車待機 | 子供がソラシに乗るように音声で促し、保護者のアプリからの乗車確認を待機する。 |
4 | 子供降車待機 | 子供がソラシから下りるように音声で促し、保護者のアプリからの降車確認を待機する。 |
5 | 注射開始待機 | 保護者アプリからの注射開始確認を待機する。 |
6 | ライントレース | 病院の床に敷かれたラインのマーカーからマーカーまでをライントレースで移動する。 |
Table3の動作モードと保護者アプリからの操作の順序をFigure1にまとめる。〇で囲まれた数字はTable3の番号と対応している。
Figure1 基本動作フローチャート
各機能を実現するためのモジュール構成を示す。
Arduinoのモジュール構成をFigure2に示す。
水色のモジュールは新規作成する
また、Figure2のモジュールの詳細をTable4にまとめる。
Figure2 arduinoモジュール構成
モジュール | 用途 |
---|---|
follower.ino (新規作成) |
raspberry pi からの命令を取得し実行する。 |
stop.ino (新規作成) |
緊急停止用プログラム。 緊急停止スイッチが押されると実行されソラシを緊急停止する。 |
run_ctrl.ino | 走行系制御 |
vel_ctrl.ino | 速度制御 |
motor.ino | モータ制御 |
distance.ino | 距離計測 |
encorder.ino | エンコーダ読み取りモジュール |
io.ino | I/Oポートの操作 |
Raspberry piにはメイン処理用のC言語プログラムと音声認識用のPythonプログラムを実装する。それぞれのモジュール構成を以下にまとめる。
C言語プログラムのモジュール構成をFigure3に示す。
水色のモジュールは新規作成する。
また、Table5にモジュールの詳細をまとめる。
Figure3 C言語プログラムモジュール構成
モジュール | 用途 |
---|---|
pilot.c | 初期設定、メイン処理 |
app.c |
アプリからの命令の処理を行う。 アプリとの通信を行う。 |
python.c | pythonプログラムとの通信を行う。 |
line.c | ライントレースを行う。 |
request.c | Arduinoへ命令を送る |
arduino.c | Arduinoへ命令を送る。 |
uss.c | 超音波センサ読み取り。 |
get_img.c | 画像撮影する。 |
Pythonモジュールの構成図をFigure4に示す。
モジュールはすべて新規作成する。
また、Table6にモジュールの内容をまとめる。
Figure4 Pythonモジュール図
モジュール名 | 機能 |
---|---|
Bluetooth.py | BluetoothでAndroidアプリと接続し通信する |
Julius.py | モジュールモードのJuliusから認識した言葉を取得する |
request.py | Arduinoに命令を出す |
sound_tmp.py | テンプレートの音声、音楽を流す |
mic.py | マイクの制御を行う。 |
speaker.py | スピーカーの制御を行う。 |
各パートのドキュメントへのリンクを以下に示す。
基本設計書
基本設計書(メカニクス)
基本設計書(エレクトロニクス)