| 名称 | MIRS1602 ソフトウェア詳細設計書 |
|---|---|
| 番号 | MIRS1602-SOFT-0001 |
最終更新日:2016.5.11
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
|---|---|---|---|---|
| A01 | 2016.12.05 | 臼井 達也 | 初版 | |
| A02 | 2016.12.12 | 臼井 達也 | 事前チェックでの指摘された箇所の修正を行った。 | 第二版 |
| A03 | 2016.12.16 | 山内 菜摘 | 第三版 | |
| A04 | 2017.02.03 | 山内 菜摘 | 開発中に発生した仕様の変更点を追加 | 第四版 |

| モジュール名 | 機能 | 開発要素 | 担当者 |
|---|---|---|---|
| pilot | MIRSの動作全体を制御する。 | mirsak_*モジュール全てを統括する。 | - |
| mirsak_* | 動作シーケンスを管理する。 | 動作に応じたモジュールを新規に作成する。 | 下表参照 |
| io | ON/OFF IOデバイスのデータを読む | 既存のものを使用する。 | - |
| i2c | I2Cデバイスとの通信を行う。 | 新規に作成する。 | 山内 |
| compass | 電子コンパスで機体の向きを取得する。 | 新規に作成する。 | 山内 |
| number | 数字認識を行う。 | 既存のものを使用する。 | |
| run_ctrl | 直進・回転・カーブ走行を行う。 | 既存のものを流用しモーターの変更に伴い、パラメータの調整を再度設定しなおす。 | 臼井 |
| vel_ctrl | モータの速度制御を行う。 | 既存のものを使用する。 | - |
| red | 赤外線センサを管理する。 | 新規に作成する。 | 伊東 |
| distance | 走行距離を管理する。 | 既存のものを使用する。 | - |
| uss | 超音波計測を行う。 | 既存のものを使用する。 | - |
| encoder | エンコーダ値を管理する。 | 既存のものを使用する。 | - |
| motor | モータを動かす。 | 既存のものを使用する。 | - |
| comm | サーバーと通信を行う。 | 既存のものを使用する。 | - |
| モジュール名 | 機能 | 開発要素 | 担当者 |
|---|---|---|---|
| pilot | MIRSの動作全体を制御する。 | mirsak_*モジュール全てを統括する。 | - |
| mirsak_* | 動作シーケンスを管理する。 | 動作に応じたモジュールを新規に作成する。 | 下表参照 |
| io | ON/OFF IOデバイスのデータを読む | 既存のものを使用する。 | - |
| number | 数字認識を行う。 | 既存のものを使用する。 | |
| run_ctrl | 直進・回転・カーブ走行を行う。 | 既存のものを流用しモーターの変更に伴い、パラメータの調整を再度設定しなおす。 | 臼井 |
| vel_ctrl | モータの速度制御を行う。 | 既存のものを使用する。 | - |
| red | 赤外線センサを管理する。 | 新規に作成する。 | 伊東 |
| distance | 走行距離を管理する。 | 既存のものを使用する。 | - |
| uss | 超音波計測を行う。 | 既存のものを使用する。 | - |
| encoder | エンコーダ値を管理する。 | 既存のものを使用する。 | - |
| motor | モータを動かす。 | 既存のものを使用する。 | - |
| comm | サーバーと通信を行う。 | 既存のものを使用する。 | - |
| モジュール名 | 機能 | 概要 | 改良する点 | 担当者 |
|---|---|---|---|---|
| mirsak_express | 現場急行 | 直進走行とカーブ走行を用いて、数字ボードがあるところまで走行する。 | シーケンス内容の変更 | 臼井 |
| mirsak_patrol | 巡回、怪盗機確保 | 展示室内を周回運動し、怪盗機を探す。 | シーケンス内容の変更 | 臼井 |
| mirsak_chase | 怪盗機確保 | 怪盗機の追跡・確保を行う。 追跡から巡回動作に復帰する。 |
赤外線データから、走法(直進・回転)と走行量(距離・角度)を決定する関数を追加する | 伊東 |
| mirsak_returner | 巡回動作への復帰動作 | 怪盗機の追跡失敗後、復帰動作を行う。 | 電子コンパスで方角を取得し復帰動作を行う | 山内 |
| モジュール名 | 機能 | 概要 | 改良する点 | 担当者 |
|---|---|---|---|---|
| mirsak_returner | 巡回動作への復帰動作 | 怪盗機の追跡失敗後、復帰動作を行う。 | 超音波センサで距離を取得し復帰動作を行う | 山内 |
| モジュール名 | 機能、役割など | 関数 | 引数 | 返り値 |
|---|---|---|---|---|
| pilot | モジュール全体の統合を行う。 | int main() | 無し | 0 |
| mirsak_express |
スタート地点から展示室入り口までの走行を行うモジュール。 現場急行後、ダイレクションボードに対して超音波センサを用いて正対補正を行い数字認識を行う。 |
void mirsak_express() | 無し | 無し |
| mirsak_patrol | 電子コンパスを用いて方角を取得し、超音波センサを用いて壁沿いを巡回する。 | void mirsak_patrol() | 無し | 無し |
| mirsak_chase | 赤外線センサからの情報をもとに怪盗機を認識、超音波センサで怪盗機との距離を測定し追跡・確保を行う。 | void mirsak_chase() | 無し | 無し |
| mirsak_returner | 電子コンパスを用いて方角を取得して、復帰動作を行う。 | void mirsak_returner() | 無し | 無し |
| red | 赤外線センサの値を元に怪盗機の認識をする。 | int red_get() | int red[] | 取得成功時…"0" 取得失敗時…"1" |
| compass | コンパスとの通信を開始する。 | Compass* compassOpen() | I2CBus* bus,uint8_t address(I2Cバス,アドレス) | 正常時 コンパスポインタ 異常時 NULL (errnoで判断) |
| compass | コンパスとの通信を終了する。 | void compassClose() | Compass* compass(コンパスポインタ) | 無し |
| i2c | I2Cマスターボードとの通信を開始する。 | I2CBus* i2cBusOpen() | char* fileName(I2Cマスターボードのデバイスファイル) | 正常時 I2Cバスポインタ 異常時 エラーが発生した場合はNULL (errnoで判断) |
| i2c | I2Cマスターボードとの通信を終了する。 | void i2cBusClose() | I2CBus* bus(通信終了するI2Cバスポインタ) | 無し |
| i2c | I2Cデバイスとの通信を開始する。 | I2CDevice* i2cDeviceOpen() | I2CBus* bus, uint8_t address(デバイスが接続されているバス, デバイスのアドレス) | 正常時 I2Cデバイスポインタ 異常時 NULL (errnoで判断) |
| i2c | I2Cデバイスとの通信を終了する。 | void i2cDeviceClose() | I2CDevice* device(通信終了するI2Cデバイスポインタ) | 無し |
| モジュール名 | 機能、役割など | 関数 | 引数 | 返り値 |
|---|---|---|---|---|
| pilot | モジュール全体の統合を行う。 | int main() | 無し | 0 |
| mirsak_express |
スタート地点から展示室入り口までの走行を行うモジュール。 現場急行後、ダイレクションボードに対して超音波センサを用いて正対補正を行い数字認識を行う。 |
void mirsak_express() | 無し | 無し |
| mirsak_patrol | 電子コンパスを用いて方角を取得し、超音波センサを用いて壁沿いを巡回する。 | void mirsak_patrol() | 無し | 無し |
| mirsak_chase | 赤外線センサからの情報をもとに怪盗機を認識、超音波センサで怪盗機との距離を測定し追跡・確保を行う。 | void mirsak_chase() | 無し | 無し |
| mirsak_returner | 電子コンパスを用いて方角を取得して、復帰動作を行う。 | void mirsak_returner() | 無し | 無し |
| red | 赤外線センサの値を元に怪盗機の認識をする。 | int red_get() | int red[] | 取得成功時…"0" 取得失敗時…"1" |

| モジュール名 | テスト内容 | 備考 |
|---|---|---|
| 司令塔(pilot) | 統合試験の際に正常に動作をするかを確認する。 | |
| 現場急行(mirsak_express) | 現場急行を仕様通りに行えるか確認する。 | |
| 巡回(mirsak_patrol) | 巡回を仕様通りに行えるか確認する。 | |
| 確保(mirsak_catch) | 怪盗機確保を仕様通りに行えるか確認する。 | |
| 数字認識(number) | 数字認識を行えるかテストプログラムで確認する。 | |
| 赤外線計測(red) | 受信を確認するプログラムを作成して、確認を行う。 | |
| 超音波計測(uss) | こちらのプログラムを使用して測定が行われるかの確認を行う。 | |
| 通信(comm) | server_info_send_test.cを使用してテストを行う。 |