名称 MIRS1604 ソフトウェア開発報告書
番号 MIRS1604-SOFT-0002
版数 最終更新日 文章作成 HTML作成 承認 改訂記事
A01 2017.02.17 梶田直哉 杉山瀬名 堀住恭平 梶田直哉 杉山瀬名 堀住恭平 初版
A02 2017.02.17 梶田直哉 堀住恭平 梶田直哉 堀住恭平 レビュー後修正

ドキュメント内目次


1.はじめに

本ドキュメントは、MIRS1604のソフトウェア開発結果についての報告書である。

2.開発したモジュール一覧

詳細な関数名などは MIRS1604 ソフトウェア詳細設計書を参考。
Table 1 開発したモジュール一覧
モジュール名 機能 評価
brain 動作シーケンスを管理する。 統合の遅れから未完成という結果になってしまった。
OpenCV 赤色の範囲を数値で返す。 時間的都合上でMIRS組み込むことができなかった。(Windowsでは動作確認済み)
direction 標準のものと比べてオムニホイールでの正体補正を行えるようにした 機能試験にて詳細設計書通りの動作が確認できた。しかし、超音波センサの性能より3cm以内の壁に対しては行えなかった。
infrared 指定した赤外線センサが反応していたら1を返す 赤外線センサボードの試験にて詳細設計書通りの動作が確認できた。
uss 標準の2つから4つに増やした 機能試験にて成功が確認できた。
number 標準の機能に加えて使用するカメラを指定できるようにした 機能試験にて詳細設計書通りの動作が確認できた。
distance 標準の機能に加えて前後のオムニホイールの走行距離も読み取れるようにした 機能試験にて詳細設計書通りの動作が確認できた。
vel_ctrl 標準の機能に加えて前後のオムニホイールにも速度を指定することができた 機能試験にて詳細設計書通りの動作が確認できた。
encoder 標準の機能に加えて前後のエンコーダ値も読み取れるようにした 機能試験にて詳細設計書通りの動作が確認できた。
omni_ctrl 走行距離とx,y方向の速度を指定し走行を行えるようにした 機能試験にて詳細設計書通りの動作が確認できた。しかし、パラメータ調節の量が2倍となり、競技会までに間に合わなかった。走行に超音波センサを組み込み壁との距離を測定しながら走行するなど工夫やハード的な改善が必要だったと考えられる。
motor 標準の機能に加えて前後のモータにpwm値を与えて回転できるようにした 機能試験にて詳細設計書通りの動作が確認できた。

3.変更したデバイスドライバ

Table 2 変更したデバイスドライバ
デバイスドライバ名 機能 変更点
motor_dev 4つのモータの方向・PWM値を送信する。 モータを増やしたためIOポートアドレスを増やし、それに対応して送信するデータなどを増やした。
encoder_dev 4つのエンコーダ値を取得する、エンコーダ値をリセットする。 エンコーダを増やしたためIOポートアドレスを増やし、それに対応して送信と受信するデータなどを増やした。
今回、プログラムの実装が遅れてしまった原因は変更したデバイスドライバを組み込めていなかったことである。変更したデバイスドライバを組み込んだ後にCPUの電源を落としていたため、CPUは起動時に標準のものを組み込んでいた。正しい方法はinsmodコマンドで組み込んだ後exitコマンドにより再びログインするか、 /etc/rc.localの起動時に組み込むフォルダのファイル名を書き直す方法である。

4.使用したプログラム

以下に競技会で使用したプログラムを添付する。
上記の理由により実装が遅れてしまったため、プログラムには調節点や改善点が残っている。 zipダウンロード(kai_mg3s_std)
zipダウンロード(kai_mg3_driver)
赤色認識プログラミングへ
ボード番号決めプログラミングへ

5.総括

  • 堀住
    赤色認識プログラム等のOpenCV系のプログラム等を作ったのだが、Windowsで開発したものをMIRSのUbuntuに入れ、それで動くように変更することはかなり難しいと感じた。MIRS本体でプログラムしてしまうのが一番手っ取り早いのだが、1台しかないMIRSを占領することはスケジュール的に不可能だった。特に古いVimでC++のプログラミングをするのはかなりの無理があると感じた。
  • 杉山
    今回のmirs開発ではLEDモジュールが削減されたことによりプログラムを解析し、どのように改良したらいいのかということをしっかりと考える時間をとることがでた。そのためmirsの動きを観察しながらゲイン調整できた。しかし、いい動きをしたときのゲインの値しかメモをとっていなかったことは改善すべきだったと思う。大沼先生が言われたように、ゲインを記録していき、データをとり考えていたらゲイン調節の効率が上がったと思う。個人として、mirsを通してPID制御について理解を深めることができよかった
  • 梶田
    オムニホイール制御プログラム作成の際にパラメータ調節を見越しての見やすいプログラム開発を行うべきだった。目先だけなくどのように使用されるのかもプログラム開発において大切だと学べた。

MIRS DATABASE