名称 | MIRS1801 システム基本設計書(ソフトウェア) |
---|---|
番号 | MIRS1801-DSGN-0005b |
版数 | 最終更新日 | 作成者 | 承認者 | 改訂記事 |
---|---|---|---|---|
B01 | 2019.02.06 | 杉山康恭 | 第1版 |
本ドキュメントは,MIRS1801のソフトウェア基本設計に関する記述である。
ソフトウェアは、図書選択を行うパッケージ、走行制御を行うパッケージ、Arduinoに関連するパッケージに分類される。
図書選択を行うパッケージはPython、走行制御を行うパッケージはC言語でそれぞれ記述されている。
利用者が本を決定してからロボットが案内を行うまでの過程を以下に述べる。
【1】 利用者がディスプレイに表示された内容に従ってキーボード入力を行い、本を指定する。本が確定したら、あるテキストファイルへその本の情報を書き込む。
【2】 前述のファイルは、図1のモジュールにより更新時刻を一定間隔で監視されており、ファイルの更新が確認されたら、図1のモジュール内でファイルから指定された本の情報を読み取り、案内を行うための経路と、機体の直進・回転等の動作の順序を確定する。
【3】 確定した情報を図2に示したArduinoのモジュールに伝達し、それに従って案内を行う。
また、ディスプレイは、図書選択時に加えて案内中においても次に曲がる方向の表示等に用いる。そして、図書選択とその際の表示機能、案内時の表示機能は共通のモジュールを用いて実現する。
RaspberryPiによる走行制御系、Arduinoのモジュール構成図をそれぞれ以下の図に示す。
次に、モジュール概要をそれぞれ以下の表に示す。
モジュール名 | 機能 |
---|---|
pilot | 最初の起動動作を行う 動作モードを切り替える |
route_x | 動作モードを定義したモジュール |
request | Arduinoとの通信を行う threadとして動作する |
file | ファイルの書き込み・読み込み |
uss | 超音波センサの監視 |
touch | タッチセンサの監視 |
flag | フラッグ変数の定義と初期化 |
stop_detect | 左右モータにあるエンコーダ値を確認し、停止状態にあるか判断 |
direction | 超音波センサを用いた正対補正 |
mag | 磁気センサを用いた自己位置の把握 |
モジュール名 | 機能 |
---|---|
run_ctrl | 通信時の走行制御 |