名称 MIRS2104詳細設計書(ソフト)
番号 MIRS2104-SOFT-0004

版数 最終更新日 作成 承認 改訂記事
A03 2021.11.8 尾崎優太・浅野悠也 香川先生 第3版

目次



1.ドキュメント概要

本ドキュメントは、CiDerプロジェクトのソフトウェア詳細設計書である。

2.担当者

MIRS2104のソフトウェア担当メンバーを以下に示す。
・尾崎優太
・浅野悠也

3.基本設計

Tab.1に基本設計に関する表を示す。
Tab.1 基本機能
機能名 目的 詳細 記述言語
音声出力機能 子供を案内するため 音声で子供に話しかけ、横断歩道をわたる。子供が接近したことを検知したら動作する。 Python
握手検知機能 子供と手をつないでいることを認識するため タッチセンサを用いて子供がロボットに取り付けられている手を握っていることを検知し動作する。 C
横断機能 子供と同時に横断するため 直進する。 C
子供接近検知機能 子供が接近を検知するため カメラ若しくはセンサを用いて、ロボットに子供の接近を検知させ、接近を検知押したら音声を出力する。 C,Python
遠隔操作機能 スマートフォンで特定の操作を遠隔で行うため LINE APIを用いて遠隔でMIRSに発進、停止等の操作を行えるようにする。 Python

4.各モジュールの接続配線

   4.1Arduinoモジュール構成

   Arduinoのモジュール構成をFig.1に示す。水色のモジュールについては新規で作成を行う。また、Fig.1のモジュールの詳細をTab.2に示す。
   Arduinoのソフトウェアは、標準プログラムをベースとして、走行系のプログラムを記述する。

Fig.1 Arduinoモジュール図

Tab.2 Arduinoモジュール詳細

モジュール名称 用途
ino_control.ino(新規作成) RaspberryPiとの通信を行う
emergency.ino(新規作成) 非常停止用動作プログラム。LINE APIからの非常停止指示に基づき停止動作を行う。同時に運営者に緊急停止の事実の通知を行う。
run_ctrl.ino 走行系制御
vel_ctrl.ino 速度制御
motor.ino モータ制御
distance.ino 距離計測
encorder.ino エンコーダ読み取りモジュール
io.ino I/Oポートの操作

   4.2 Raspberry Pi モジュール構成

   RaspberryPiには、C言語モジュールによる実装を主とし、Python言語モジュールを補助的に利用する。

      4.2.1 C言語モジュール作成

      RaspberryPiのモジュール構成をFig.2に示す。水色のモジュールについては新規で作成を行う。また、Fig.2のモジュールの詳細をTab.3に示す。
      RaspberryPiのC言語の利用法として、原則としてC言語を利用し、センサーを制御する。そのうえで、PythonやArduinoとの通信も行う。

Fig.2 C言語モジュール図

Tab.3 C言語モジュール詳細

モジュール名称 用途
py_con.py(新規作成) 初期設定および、全体の動作を司る
python.c(新規作成) Pythonプログラムを通信を行う
c_request.c Arduinoに命令を送る
aruduino.c Arduinoに命令を送る
uss.c 超音波センサの読み取り
get_image.c 画像撮影を行う

      4.2.2 Python言語モジュール作成

      RaspberryPiのモジュール図をFig3に、その詳細をTab.4に示す。
      Pythonを利用しないと、効率的な制御ができない場合のみ、Pythonを利用する。主に、LINEAPIやスピーカーの制御に利用する。

Fig.3 Python言語モジュール図

Tab.4 Python言語モジュール詳細

モジュール名称 用途
py_con.py(新規作成) 初期設定および、全体の動作を司る
line.py(新規作成) LINEの送受信を行う
speaker.py(新規作成) スピーカーの制御を行う
py_request.py(新規作成) Arduinoに命令を出す
iden.py(新規作成) 横断歩道上の識別を行う

5.フローチャート

Fig.4には全体の動作のフローチャートを示す。
Fig.5には走行動作にフォーカスしたフローチャートを示す。
Fig.6には腕部動作に関するフローチャートを示す。

Fig.4 全体の動作に関するフローチャート

Fig.5 走行動作に関するフローチャート

Fig.6 腕部動作に関するフローチャート

6.コーディングルール

関数、変数について

関数の1文字目は大文字とし、2単語以上の場合は単語の区切りにアンダーバー「_」を入れる。

バージョン管理について

バージョン管理にGitHubを使用し、随時プッシュして過去のデータを参照できるようにしていく。

7.各パートへのリンク

各パートのリンクを以下に示す。
MIRS2104詳細設計書(エレキ)
MIRS2104詳細設計書(ソフト)
MIRS2104詳細設計書(メカニクス)
MIRS2104詳細設計書(メカニクス/アーム)
MIRS2104詳細設計書(メカニクス)/フレーム)




MIRS2104ドキュメント管理台帳へ