MIRS1801-DSGN-0005b システム基本設計書(ソフトウェア)
名称 MIRS1801 システム基本設計書(ソフトウェア)
番号 MIRS1801-DSGN-0005b
版数 最終更新日 作成者 承認者 改訂記事
B01 2019.02.06 杉山康恭 第1版

目次

1. 本ドキュメントについて

本ドキュメントは,MIRS1801のソフトウェア基本設計に関する記述である。

2. ソフトウェア概要

ソフトウェアは、図書選択を行うパッケージ、走行制御を行うパッケージ、Arduinoに関連するパッケージに分類される。
図書選択を行うパッケージはPython、走行制御を行うパッケージはC言語でそれぞれ記述されている。 利用者が本を決定してからロボットが案内を行うまでの過程を以下に述べる。


【1】 利用者がディスプレイに表示された内容に従ってキーボード入力を行い、本を指定する。本が確定したら、あるテキストファイルへその本の情報を書き込む。

【2】 前述のファイルは、図1のモジュールにより更新時刻を一定間隔で監視されており、ファイルの更新が確認されたら、図1のモジュール内でファイルから指定された本の情報を読み取り、案内を行うための経路と、機体の直進・回転等の動作の順序を確定する。

【3】 確定した情報を図2に示したArduinoのモジュールに伝達し、それに従って案内を行う。


また、ディスプレイは、図書選択時に加えて案内中においても次に曲がる方向の表示等に用いる。そして、図書選択とその際の表示機能、案内時の表示機能は共通のモジュールを用いて実現する。

3. モジュール構成

RaspberryPiによる走行制御系、Arduinoのモジュール構成図をそれぞれ以下の図に示す。





図1 走行制御系のモジュール構成図





図2 Arduinoのモジュール構成図

次に、モジュール概要をそれぞれ以下の表に示す。



表1 Raspberry PiのC言語に関するモジュール一覧
モジュール名機能
pilot 最初の起動動作を行う
動作モードを切り替える
route_x 動作モードを定義したモジュール
request Arduinoとの通信を行う
threadとして動作する
file ファイルの書き込み・読み込み
uss 超音波センサの監視
touch タッチセンサの監視
flag フラッグ変数の定義と初期化
stop_detect 左右モータにあるエンコーダ値を確認し、停止状態にあるか判断
direction 超音波センサを用いた正対補正
mag 磁気センサを用いた自己位置の把握


表2 Arduinoのモジュール一覧
モジュール名機能
run_ctrl 通信時の走行制御