MIRS1602 管理台帳へ戻る

名称 MIRS1602 ソフトウェア開発報告書
番号 MIRS1602-SOFT-0002
 
版数 最終更新日 作成 変更点 承認 改訂記事
A01 2017.2.03 臼井 達也 初版

目次


  1. はじめに


    本ドキュメントはMIRS1602のソフトウェア開発が完了したことを記すドキュメントである。


  2. 使用した競技会プログラム


    >
    全体のファイル一覧
    ファイル名 機能 概要
    Makefile プログラムを結合してコンパイルする 競技会に対応できるように変更
    comm.c サーバー通信を行う 標準ソフトウェアに準拠した。
    device.c デバイスとの通信を行う 標準ソフトウェアに準拠した。
    direction.c 正対補正を行うプログラム パラメータを変更した。
    distance.c 距離計で走行距離を取得する。 標準ソフトウェアに準拠した。
    encoder.c エンコーダ値を管理する。 標準ソフトウェアに準拠した。
    io.c IOデバイスを管理する。 標準ソフトウェアに準拠した。
    mirsak_express.c 現場急行を行う スタートから現場急行、数字認識、サーバー通信を行う
    mirsak_patrol.c 巡回動作を行う 巡回エリアにて巡回を行い怪盗機を捜索する。
    mirsak_patrol.c 巡回動作を行う 巡回エリアにて巡回を行い怪盗機を捜索する。
    mirsak_chase.c 怪盗機の追跡・確保を行う 巡回中に怪盗機を発見したら追跡を行う。
    mirsak_returner.c 復帰動作を行う 怪盗機を見失ったら、巡回動作に復帰する
    motor.c モーターの管理をする 標準ソフトウェアに準拠する
    motor_stop.c プログラムを終了させる 標準ソフトウェアに準拠する
    pilot.c 全体の動作を管理する。 メインプログラム全体の管理
    pilot2.c 全体の動作を管理する。 メインプログラム全体の管理
    red.c 赤外線の管理を行う 赤外線の値を取得する
    run_ctrl.c 走行制御を行う 標準ソフトウェアに準拠する。
    uss.c 超音センサの管理 標準ソフトウェアに準拠する。
    vel_ctrl.c 走行制御の管理を行う。 標準ソフトウェアに準拠する
    comm.h - 標準ソフトウェアに準拠する
    directoin.h - 標準ソフトウェアに準拠する
    distance.h - 標準ソフトウェアに準拠する
    encoder.h - 標準ソフトウェアに準拠する
    hardwere.h - 標準ソフトウェアに準拠する
    io.h - 標準ソフトウェアに準拠する
    mirsak.h - 標準ソフトウェアに準拠する
    motor.h - 標準ソフトウェアに準拠する
    number.h - 標準ソフトウェアに準拠する
    patrol_sequence.h - 標準ソフトウェアに準拠する
    red.h 赤外線センサを利用する用 赤外線センサを利用する際のextern宣言
    uss.h - 標準ソフトウェアに準拠する
    vel_ctrl.h - 標準ソフトウェアに準拠する
  3. 製作内容


    1. 現場急行プログラム(臼井)


      内容 : スタート地点から数字ボード前まで走行し数字認識、サーバー通信を行う。

      テスト結果 : 最適なパラメータなら安定して現場急行ができることを確認し、数字認識、サーバー通信が行えることも確認した。

      問題点:スピードを上げすぎると停止時に慣性で進みすぎてしまうため、ある程度、速度を落とす必要があった。

    2. 巡回プログラム(臼井)


      内容 :直進して正対補正を行い、90度回転を行うという動作をループさせることで巡回を行う。
      また、ループに赤外線の値を読み込んだ時、ループを抜けプログラムを終了させる。

      テスト結果 : 
      しっかりとフィールドを一周することができた。
      s また、赤外線のデータを取得したら、モーターを停止させループを抜けることも確認できた

      出来た点:しっかりと巡回動作を行い、赤外線を認識したらプログラムを終了することができた。
      問題点:統合試験をしたときに正対補正の際、ある一定距離まで直進するのがうまくいかないときがあった。これは超音波センサの値がエラーを返したきたときを考慮していなかったためであった。
      片方の超音波センサがエラーを返したときは、片方の超音波センサの値を信用するというように修正したところ問題なく動作するようになった。

    3. 怪盗機確保プログラム(伊東)


      内容 :シーケンスを使わず直接mirsac_chaseの方で、取得した6個の赤外線のデータを元に直進、回転を行い怪盗機を確保し、赤外線が反応して衝突時にプログラムを終了する。

      テスト結果 :
      6個ある赤外線センサのすべてがしっかりとデータを取得し、赤外線ボールのある方へ直進や回転を行い追跡することが出来た。

      出来た点:しっかりと赤外線を反応し追跡を行うことが出来た。
      問題点 : 赤外線が反応して衝突時にプログラムを終了するはずがプログラムの終了がうまくいかないときがあった。怪盗機確保と衝突時の判断を赤外線とタッチセンサだけでなく、カメラ等を含めて判断するべきだった。

    4. 復帰動作プログラム(伊東・山内)


      内容 :シーケンスを使わず直接mirsac_returnerで、壁までの機体前後の距離を超音波センサで測定し、壁の直前まで走行、正対補正をした後に90度旋回し巡回プログラムに戻る体勢をとる。

      テスト結果 : 機体前後で近いほうの壁に接近し、斜めの状態で入ってもしっかり正対補正ができ壁に対して90度の向きに復帰することができた。

      出来た点:追跡プログラムで見失った後、しっかり巡回プログラムに繋がる壁に対して90度の向きになるよう復帰できた。
      問題点:復帰動作中に機体近くに怪盗機が来ても、復帰動作が終わるまで追跡動作に入ることが出来なかったため、スレッドを独立させるか復帰動作中でも追跡に移行できるようにするべきであった。


    5. 赤外線取得プログラム(伊東)


      内容 : 機体に6個ある赤外線センサを認識する。

      テスト結果 : 6個ある赤外線センサがすべて認識できることを確認した。

      問題点:当初は戻り値がint型で返す予定だったが、関数内での変換がうまくいかず、char型での戻り値となってしまった。



  4. 【全体の完成度の評価】


    統合試験の段階では現場急行、巡回、追跡、復帰の動作の遷移がすべてできていたが、本番用プログラム(patrol)の見直しが不十分であったため巡回から追跡動作への遷移ができなかった。競技会で怪盗を確保したが追跡している様子を見せられなかった。
    全体として不十分だった部分はあるが、競技会で現場急行、数字認識、巡回、怪盗機確保をすることができたので良かった。

  5. 競技会で使用したプログラムのリンク


    MIRS1602が作成した競技会プログラムを以下にて配布する。
    来年度以降、参考にしてもらえれば幸いです。

    MIRS1602で使用したプログラム(zip形式)

  6. 総括


    一連の動作のプログラムはできていたが、ハード面の調整が遅れて統合試験が遅れてしまった。実装する予定だったi2c通信と電子コンパスが実装できなかったのは残念である。基盤の変更により巡回経路が当初のものと変わってしまった。
    様々な変更があり詳細設計で考えた機能が一部実装できなかったが、ハードに合わせたプログラムの変更が速やかにできた。直前まで調整してすべての動きができたので良かったと思う。

MIRS1602ドキュメント管理台帳