| 名称 | MIRS1801 システム基本設計書(ソフトウェア) |
|---|---|
| 番号 | MIRS1801-DSGN-0005 |
| 版数 | 最終更新日 | 作成者 | 承認者 | 改訂記事 |
|---|---|---|---|---|
| A03 | 2018.11.02 | 杉山康恭 | 第4版 |
本ドキュメントは,MIRS1801のソフトウェア基本設計に関する記述である。
ソフトウェアは、図書選択を行うパッケージ、走行制御を行うパッケージ、Arduinoに関連するパッケージに分類される。
図書選択を行うパッケージはPython、走行制御を行うパッケージはC言語でそれぞれ記述されている。
利用者が本を決定してからロボットが案内を行うまでの過程を以下に述べる。
【1】 利用者がディスプレイに表示された内容に従ってキーボード入力を行い、本を指定する。本が確定したら、あるテキストファイルへその本の情報を書き込む。
【2】 前述のファイルは、図1のモジュールにより更新時刻を一定間隔で監視されており、ファイルの更新が確認されたら、図1のモジュール内でファイルから指定された本の情報を読み取り、案内を行うための経路と、機体の直進・回転等の動作の順序を確定する。
【3】 確定した情報を図2に示したArduinoのモジュールに伝達し、それに従って案内を行う。
また、ディスプレイは、図書選択時に加えて案内中においても次に曲がる方向の表示等に用いる。そして、図書選択とその際の表示機能、案内時の表示機能は共通のモジュールを用いて実現する。
RaspberryPiによる走行制御系、Arduinoのモジュール構成図をそれぞれ以下の図に示す。


次に、モジュール概要をそれぞれ以下の表に示す。
| モジュール名 | 機能 |
|---|---|
| pilot | 全体的な動作の管理 |
| route | 本の座標に応じた走行ルートの決定 |
| run | 走行命令の送信 |
| direction | 正対補正のための回転量の決定 |
| mag | 磁気センサの値の読み取り |
| uss | 超音波センサの読み取り |
| request | Arduinoへの命令の送信 |
| arduino | Arduinoとのシリアル通信 |
| モジュール名 | 機能 |
|---|---|
| slave | 一定周期での各種の処理の実行 |
| raspi | RaspberryPiとのシリアル通信 |
| run_ctrl | 走行の制御 |
| vel_ctrl | 速度の制御 |
| motor | モータの操作 |
| distance | 走行距離の計測 |
| encoder | エンコーダの読み取り |
| io | その他のデバイス情報の取得 |
各パートの基本設計書へのリンクを以下に示す。
システム基本設計書