名称 | MIRS2303 ソフトウェア詳細設計書 |
---|---|
番号 | MIRS2303-SOFT-0001 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A02 | 2024.1.29 | 河合 柊吾, 長瀬 鼓太郎 | 香川 | 初版 |
本ドキュメントはMIRS2303 PuNITに関するソフトウェア詳細設計についてまとめたものである。
実装する機能とその概要を以下のtable1に示す。
table.1 機能概要
機能 | 機能概要 | 使用言語 |
---|---|---|
走行機能 |
フォトリフレクタを用いてライントレースを行う。 LiDARを用いて障害物回避や教室のドアの開閉確認を行う。 |
C言語,Python |
写真撮影機能 |
教室内の授業風景を撮影する。 機体の位置およびカメラの昇降と画角調整を行う。 撮影パターンを最適化する。 |
C言語,Python |
顔認証機能 |
撮影した写真から人を検知し顔認証を行う。 公開希望者および希望しない者の顔画像を事前に学習する。 検証結果から公開希望者のみ写る写真を選別する。 |
Python |
撮影写真の管理機能 |
公開写真および関連情報をGoogle Driveに送信する。 写真の削除申請に基づき公開写真および関連情報を削除する。 |
Python |
Web公開機能 |
撮影写真を公開する。 撮影時間や場所で写真のソートを行い表示する。 |
HTML,CSS,JavaScript, Google App Script |
全体のモジュール構成図を以下に示す。
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認証でログイン機能を実装する。 |
全体の動作を以下に示す。
fig.2 メイン動作のフローチャート
※1 移動(ライントレース)の動作を以下に示す。
fig.3 移動(ライントレース)のフローチャート
※2 写真撮影の動作を以下に示す。
fig.4 写真撮影のフローチャート
※3 顔認証からアップロードまでの動作を以下に示す。
fig.5 顔認証からアップロードまでのフローチャート
購入予定の物品を以下に示す。
table.2 購入予定物品
品名 | 単価 | 個数 | 用途 | 備考 | URL |
---|---|---|---|---|---|
ARCHERT2UBNANO (無線LAN子機) | ¥2170 | 1 | Jetson nano 通信用 | 販売元ページ |