ソフトウェア開発報告書

名称 ソフトウェア開発報告書
番号 MIRS1401-SOFT-00014

最終更新日:2014.2.19

版数 最終更新日 作成 承認 改訂記事
A01 2014.2.13 眞野 初版
A02 2014.2.19 眞野 牛丸先生 3.完成度の評価を具体的に

# 目次

1. はじめに
2. ファイル構成
3. 完成度の評価
4. 総括
5. リンク

# 1.はじめに

このドキュメントはソフトウェア開発報告書である。

# 2.フォルダ構成

ver10_3-------device デバイス関連のソースがあるフォルダ
|
|--direction 正対補正関連のソースがあるフォルダ
|
|--gazou 画像処理関連のソースがあるフォルダ
|
|--hexagon hexagon関連のソースがあるフォルダ
|
|--main 巡回、索敵、追跡関連のソース、main関数(mirsak.c)があるフォルダ
|
|--map マップ関連のソースがあるフォルダ
|
|--mapping マップ関連のテストに使用したフォルダ
|
|--proguramu oファイル、実行ファイル、Makefileがまとめられているフォルダ
|
|--run 走行関連(run_ctrl , vel_ctrl , distance)のソースがあるフォルダ
|
|--server 情報送受信関連のソースがあるフォルダ

※索敵で用いていた関数 run() {直進走行中に壁にぶつかった際の処理も入れてあるもの}は走行関連の関数に思えるが、索敵(search)のフォルダにある。

# 3.完成度の評価

## 3.1 画像処理

画像処理単体では目的の動作を単体試験で確認できたため、良い出来であったと思う。しかし、処理に時間が2秒～4秒程度かかってしまうのは索敵、追跡との兼ね合いからも改善が必要だと思った。完成度60%程度

## 3.2 走行系

オムニホイールの知識不足によるメカ的な設計の問題により制御が当初、想定していたものより難しくなってしまった。目的の位置に行くことはできるが、距離が大きくずれてしまったり目的地に行くまでの経路がおかしかったりなどのことがあった。タイル1枚程度の距離ならば誤差が5cm程度で、最低限の動きは出来たと思うがよい出来とは言いがたい。完成度40%程度

## 3.3 針機構

目的の動作をしていたから、完成度は良いと思う。改善点は展開、収納に時間がおおよそ6秒かかり遅いこと、針展開のした後の針位置が綺麗ではなかったことである。完成度80%

## 3.4 マップ(自己位置管理)

PCからmirsに入って間PC上にマップを表示してリアルタイムでmirsの位置を映し出すことはできていた。しかし、mirs側の自己位置管理が時間がなく試験が出来ずぶっつけ本番であった。PC側のプログラムはC++でコーディングし、Dxライブラリを用いた。完成度60%程度

## 3.5 巡回

シーケンスは出来ていたが、指令値の調整が出来ておらず動作の途中で壁に引っかかってしまう。走行系の出来がもっとよければここは完成していただろうと思われる。コンセプトに従って巡回は諦め、本番用の実行ファイルには組み込まなかった。完成度60%程度

## 3.6 索敵

索敵は中央で回転しながら怪盗を索敵して発見したらどちらのカメラで発見したかを追跡に送るのは出来ていた。しかし、ファイルを受信して小部屋に向かうのはプログラムに書いては見みたものの、時間がなく試験が十分にできなかったため本番用の実行ファイルではこの部分をコメントアウトした。索敵動作は、その場で索敵と、宝が盗まれた情報を確認しての索敵の2つで構成され、そのうちのその場で索敵のみしかできていなかったため完成度50%程度

## 3.7 追跡

一応の追跡はできていたが、画像処理に時間がかかるために追跡動作がかくかくしていた。針が壁にあたらないように超音波センサを用いて制御をしようと思っていたが、時間がなくその部分のテストはできず本番用の実行ファイルではコメントアウトしている。追跡をしても精度が悪いことや壁に引っかかる可能性などで完成度40%程度

# 4.総括

各モジュールは改善が必要なものもあったが、競技でみせれる程度まで単体試験を含め終わっていた。しかし、これらを統合したらカメラのエラーが発生したり、
super userだとスレッドを立てる途中でプログラムが停止してしまうなどの問題が多発して、結局競技では散々になってしまった。
単体試験までは競技会でそれなりに動いてくれる出来であったと思う。しかし、統合してからの問題が解消しきれず競技会ではうまく動いてくれなかった。直接的な原因は、単体試験では良く出来ていた画像処理が統合したらエラーを出すようになってしまい競技会までに直せなかったことにある。統合試験をもっと早くから行っていればこのエラーは直せたかもしれない。
パトランプは結局、動作しなかった。動かなかった原因がソフトなのか、FPGAなのかわからず競技には直接の関係はないためあきらめた。
巡回は五十嵐が頑張ってくれたが、途中でつっかえる可能性が高く、画像処理を含めた試験もしていなかったので本番の実行ファイルには組み込まなかった。
針機構は問題なく動作していたが、綺麗な展開は出来なかった。本番中に針機構が止まらなかったのは、針を展開するスレッドをcreateした直後に画像処理でエラーが出てプログラムが止まってしまった為である。
マップはさらに発展性のある部分だと思う。来年度以降、受け継いでほしい。
走行関連は、プログラムの問題よりもメカ的な設計ミスが大きくソフト的に修正が困難であったことが走行関連が完成度が低い原因である。
超音波センサがI/Oエラーを起こした際に変わりに画像処理で正対補正が出来るようなものを作ったが、活用できず残念である。時間があれば、各種I/Oエラーを検知して対処するようなプログラムを組みたかった。

# 5.リンク

プログラム
ソフトウェア詳細設計書
試験報告書