名称 | MIRS2204詳細設計書(ソフト) |
---|---|
番号 | MIRS2204-SOFT-0001 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2022.11.9 | 志村拓真・河合陽杜 | 香川先生 | 第1版 |
機能名 | 目的 | 詳細 | 記述言語 |
---|---|---|---|
追従機能 | 利用者に追従するため | 距離センサを用いて利用者との距離、進行方向を検知して追従を行う。 | c言語 |
衝突防止機能 | 人や物との衝突を避けるため。 | 距離センサを用いて周囲の物体との距離を保つ。 | c言語 |
緊急停止機能 | 問題発生時に緊急停止するため。 | 強い衝撃が与えられた時に動作を停止する。 | c言語 |
重量検知機能 | 荷物の落下や盗難を検知できるようにするため。 | 圧力センサで「KOZUTUMI」に乗せられた荷物の重量の変化を検知する。 | c言語 |
遠隔操作機能 | スマートフォンでの操作を可能にするため。 | スマートフォンアプリでの遠隔操作を可能にする。 | python |
音声通知機能 | 状態が遷移した時や緊急時に音で利用者に知らせるため。 | スピーカーで音を発する。 | c言語 |
Arduinoのモジュール構成をFig.1に示す。水色のモジュールについては新規で作成を行う。また、Fig.1のモジュールの詳細をTab.2に示す。
Arduinoのソフトウェアは、標準プログラムをベースとして、走行系のプログラムを記述する。
Fig.1 Arduinoモジュール図
Tab.2 Arduinoモジュール詳細
モジュール名称 | 用途 |
---|---|
slave | raspberrypiとの通信を行う。 |
scan | マルチプレクサの管理を行う。センサの値を読み取る。 |
run_ctrl | 走行系制御。 |
vel_ctrl | 速度制御。 |
distance | 距離計測。 |
encorder | エンコーダ読み取りモジュール。 |
ems | 緊急停止。 |
RaspberryPiには、C言語モジュールによる実装を主とし、Python言語モジュールを補助的に利用する。
C言語のモジュール構成をFig.2に示す。水色のモジュールについては新規で作成を行う。また、Fig.2のモジュールの詳細をTab.3に示す。
RaspberryPiのC言語の利用法として、原則としてC言語を利用し、センサーを制御する。そのうえで、PythonやArduinoとの通信も行う。
Fig.2 C言語モジュール図
Tab.3 C言語モジュール詳細
モジュール名称 | 用途 |
---|---|
control | 初期設定および、全体の動作を司る。 |
python | Pythonプログラムと通信を行う。 |
arduino | arduinoプログラムと通信を行う。 |
io | i/oポートの操作。 |
run | 追従時の走行制御。 |
tracking | 追従時の計算処理。 |
stay | 待機時の処理。 |
return | 帰還状態の処理。 |
RaspberryPiのモジュール図をFig3に、その詳細をTab.4に示す。
Pythonを利用しないと、効率的な制御ができない場合のみ、Pythonを利用する。主に、LINEAPIやスピーカーの制御に利用する。
Fig.3 Python言語モジュール図
Tab.4 Python言語モジュール詳細
モジュール名称 | 用途 |
---|---|
main | 初期設定および、全体の動作を司る。 |
c_com | cプログラムとの通信を行う。 |
line | LINEの送受信を行う。 |
camera | カメラからの映像を受け取り、処理を行う。 |
img_prc | 同一人物判定の処理を行う。 |
Fig.4 全体の動作の状態遷移図
Fig.5追従状態の動作のフローチャート