名称 | MIRS2105ソフト詳細設計 |
---|---|
番号 | MIRS2105-SOFT-0001 |
現在時刻 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A02 | 2022.2.21 | 武藏 奏汰、望月 優輝 | 香川先生 | 第2版 |
本ドキュメントはPhotoKENプロジェクトに関するソフトウェア基本設計についてまとめたものである
MIRS2105のソフトウェア担当メンバーを以下に示す
武藏、望月
実現したい製品機能をTable1に示す。
機能 | 目的 | 方法 | 使用言語 |
---|---|---|---|
画像認識 | 人の存在、位置情報を取得するため | OpenCVを使用してカメラの映像から人を判別 | python |
追尾機能 | 家族の姿をカメラの撮影範囲内に保つため | 常時カメラを起動し、画像認識で捉えた人の顔が撮影範囲の中央に来るように 頭部やカメラの角度を変更する |
python,c言語(カメラ機能はpython,駆動系はC言語) |
写真撮影機能 | 家庭での楽しい一瞬を思い出に残す | 画像認識により笑顔を認識し、写真を撮影する。
またユーザーに選択してもらい、好きなタイミングで写真を撮影する |
python |
表情認識機能 | 家族での楽しい瞬間を捉え、写真撮影機能でメモリに残すため | Raspberry PiとOpenCVによる画像認識で人の表情(笑顔)を判別する。 笑顔を認識次第撮影 |
python |
撮影写真送信機能 | 撮影した写真をすぐ見える、保存できるようにするため | 撮影した写真を、LINEAPI,もしくはgoogleによるメール機能を通して
ユーザーの個人アカウントに送信する。 |
python |
衝突回避機能 | 追尾などの移動時に障害物への衝突を回避するため | 超音波センサを使用し、常に前方の障害物との距離を計測、 一定距離に近づいたら衝突回避の動作をさせる |
C言語 |
画面表示機能 | 子供が笑顔になるためのゲームを表示、 また撮影した写真をスライドショーにして表示 |
ラズパイディスプレイ(7インチ)を接続、ラズパイの機能であるautostartを使用し 作成したwebブラウザを表示 そこからユーザ操作に対応した動作へ移行 |
python,html,css,javascript |
以下に各端末に必要な機能を以下に示す。
モジュール名 | 概要 |
---|---|
arduino | Arduinoとのシリアル通信 |
start | 初期設定 |
select | 次の動作の候補を表示、選択後、担当モジュールへ移動 |
request | Arduinoへの動作指令 |
detect | 人の検知(常時バックグラウンドで起動) |
capture | 写真撮影、保存 |
botton | タッチセンサの読み取り、タッチ後captureに移動 |
game | selectよりゲーム選択時動作、ゲームを行う (デモ機能はかくれんぼ?じゃんけん?) |
avoid | 超音波センサによる前方の障害物検知、回避 |
tracking | 追尾機能 |
rotate | 頭部回転機能 |
stop | 通常停止、緊急停止を含めたモジュール |
モジュール名 | 概要 |
---|---|
raspberry | Raspberry piとのシリアル通信 |
run_ctrl | 走行制御 |
rotate_motor | モータ制御(頭部回転機構) |
gimbal_motor | モータ制御(ジンバル機構) |
encoder | エンコーダの読み取り |
io | 各デバイスのピン設定、状態の取得 |
ソフト面における実際の動作をフローチャートにまとめたものをfig3に示す
今回photoKenに対し、標準機から追加する機能についての実装方法をまとめたものをtable4に示す。
機能 | 実装方法 | 使用言語 |
---|---|---|
画像認識 | 画像認識実装方法 | python |
追尾機能 | 追尾機能実装方法 | python,c言語(カメラ機能はpython,駆動系はC言語) |
写真撮影機能 | 写真撮影機能実装方法 | python |
表情認識機能 | 表情認識実装方法 | python |
撮影写真送信機能 | 撮影写真送信機能実装方法 | python |
C言語、pythonからそれぞれの言語を呼び出す | 関数呼び出し実装方法 | C言語 |
画面表示機能 | 画面表示機能実装方法 | python,html,css,javascript |
各パートごとの詳細設計のリンクを以下に示す