名称 MIRS2303 ソフトウェア詳細設計書
番号 MIRS2303-SOFT-0001

版数 最終更新日 作成 承認 改訂記事
A02 2024.1.29 河合 柊吾, 長瀬 鼓太郎 香川 初版

目次

  1. ドキュメント概要
  2. 機能概要
  3. モジュール構成
  4. フローチャート
  5. 購入物品
  6. 各パートへのリンク

1.ドキュメント概要

本ドキュメントはMIRS2303 PuNITに関するソフトウェア詳細設計についてまとめたものである。

2.機能概要

実装する機能とその概要を以下のtable1に示す。

table.1 機能概要

機能 機能概要 使用言語
走行機能 フォトリフレクタを用いてライントレースを行う。
LiDARを用いて障害物回避や教室のドアの開閉確認を行う。
C言語,Python
写真撮影機能 教室内の授業風景を撮影する。
機体の位置およびカメラの昇降と画角調整を行う。
撮影パターンを最適化する。
C言語,Python
顔認証機能 撮影した写真から人を検知し顔認証を行う。
公開希望者および希望しない者の顔画像を事前に学習する。
検証結果から公開希望者のみ写る写真を選別する。
Python
撮影写真の管理機能 公開写真および関連情報をGoogle Driveに送信する。
写真の削除申請に基づき公開写真および関連情報を削除する。
Python
Web公開機能 撮影写真を公開する。
撮影時間や場所で写真のソートを行い表示する。
HTML,CSS,JavaScript,
Google App Script

3.モジュール構成

全体のモジュール構成図を以下に示す。

モジュール構成図

fig.1 モジュール構成図

各モジュール動作概要を以下に示す。

table.2 Jetson Nanoのモジュール概要

モジュール名 動作概要
raspi_socket.py raspiとソケット通信を行い、jetsonの制御を行う。(クライアント)
thread_ctrl.py Jetsonプログラムのスレッドをスレッドで実行し、管理する。
get_img.py webカメラから画像を取得する。
faceCV_train.py 顔写真から顔認証用データを学習する。
faceCV_recognition.py 撮影写真に写る人物の顔認証を行う。
google_drive.py Google Driveとデータの送受信を行う。
upload.py 顔認証(faceCV_recognition.py)からアップロード(google_drive.py)までを行う。
schedule.py 撮影スケジュールの管理を行う。
csv_handle.py データベースとしてcsvファイルの操作を行う。

table.3 Raspberry Piのモジュール概要

モジュール名 動作概要
main.py raspi並びにロボット全体のメインプログラム
jetson_socket.py jetsonとソケット通信を行う。(サーバー)
arduino_serial.py arduinoとのシリアル通信を行う。
request.py arduinoとの通信用関数
io.py raspiの衝突検知用タッチセンサ関数
uss.py raspiの衝突防止用超音波センサ関数

table.4 Arduinoのモジュール概要

モジュール名 動作概要
slave.ino raspiからの指示に基づきarduinoを制御する。
raspi_serial.ino raspiとのシリアル通信を行う。
run_ctrl.ino 走行モードの制御を行う。
vel_ctrl.ino 速度制御を行う。
camera_ctrl.ino 昇降用モータの制御を行う。
servo_ctrl.ino サーボモーターの制御を行う。
distance.ino ロボットの左右タイヤの移動量を計算する。
encoder.ino モーターのエンコーダの値を取得する。
motor.ino モーター制御を行う。
io.ino 昇降用タッチセンサやフォトリフレクタなどセンサ類のデータ取得を行う。
batt.ino バッテリー管理を行い、電圧が低い場合動作を停止させる。

table.5 Webアプリケーションのモジュール概要

モジュール名 動作概要
(GAS) tenso.gs スプレッドシート上に入力された情報を取得、またその情報をhtmlに転送
(GAS) index.html ユーザーに対して表示するwebページ。CSSによる装飾、javascriptによる写真取得、取得した写真の自動表示等も同時に行う。
(管理台帳/) index.html MIRS2303のドキュメント内のURLに設定し、GASのhtmlを表示する。またBasic認証でログイン機能を実装する。

4.フローチャート

全体の動作を以下に示す。

fig.2 メイン動作のフローチャート

※1 移動(ライントレース)の動作を以下に示す。

fig.3 移動(ライントレース)のフローチャート

※2 写真撮影の動作を以下に示す。

fig.4 写真撮影のフローチャート

※3 顔認証からアップロードまでの動作を以下に示す。

fig.5 顔認証からアップロードまでのフローチャート

5.購入物品

購入予定の物品を以下に示す。

table.2 購入予定物品

品名 単価 個数 用途 備考 URL
ARCHERT2UBNANO (無線LAN子機) ¥2170 1 Jetson nano 通信用 販売元ページ

6.各パートへのリンク

MIRS2303の別パートの詳細設計書へのリンクを以下に示す。

MIRS2303 メカニクス詳細設計書
MIRS2303 エレクトロ二クス詳細設計書


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