沼津高専 電子制御工学科
MIRS0804 ソフトウェア詳細設計書
MIRS0804-SOFT-0001
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2008.9.5 浦田・里見 浦田 初版
A02 2008.9.18 浦田 浦田 リンク切れの修正
A03 2008.9.19 里見 浦田 フローチャートの追加
A04 2008.10.6 里見 浦田 動作モード遷移表をフローチャートに変更
B01 2008.10.27 浦田 浦田 書式を変更



目次
1.はじめに
2. 標準プログラムからの変更点
3.動作概要(モードの定義)
4. 追加する関数など
5.変更・追加した動作モードの詳細
(1) ポスト探索モード2
(2) ポスト獲得モード
(3) ポスト番号判別モード
(4) ポスト位置予測モード





1. はじめに

本ドキュメントでは、MIRS0804 基本設計書(MIRS0804-DSGN-0002)に規定されたシステムを実現するために必要な事項を述べる。

作成するプログラムは、MIRSSTND 標準プログラム(Ver.2.1)(MIRSSTND-SOFT-0003)を元に、行動制御プログラムおよび各種パラメータをMIRS0804 基本設計書(MIRS0804-DSGN-0002)に準じて変更し、作成する。




2. 標準プログラムからの変更点

(1) 競技時間を考慮し、ポスト獲得後に中心位置で行う補正動作(correct_center.c)を省略。
(2) 競技場を超音波センサで探索する回数を2回に増やす(search_1を追加)。
(3) ポスト獲得動作(post_get)を、アームを使用したものに変更。
(4) ポスト番号識別を白線センサにより行うため新たにポスト番号判別モード(get_num)を追加。
(5) すべてのポストが確認できなかった場合、取得できたポスト情報および競技規定から未発見ポストの位置を予測するモード(predict)を追加。
(6) control.hより一部パラメータ(超音波センサ位置・認識ポスト数など)を変更。
(7) ポスト位置予測モードのため、競技規定に関する数値(ポスト間の距離・競技場の大きさなど)をcontrol.hに追加でdefineする。




3. 動作概要(モードの定義)

(1) スタート位置で180度その場回転を行いながら、左側の超音波センサでポスト位置を探索する。(ポスト探索モード2)※
(2) スタート位置から中心位置に移動する。
(3) その場回転を行いながら、左側の超音波センサでポスト位置を探索する。(ポスト探索モード)※
(4) ポスト位置を正面のセンサーを使って再確認する。(ポスト確認モード)※
(5) 然るべきアルゴリズムにそって接近するポストを選択する。(ポスト選択モード)※
(6) 距離、方向を補正しならがら、ポストに接近する。(ポスト接近モード)
(7) アームを展開してポストを獲得する。(ポスト獲得モード)
(8) 中心位置を向き、後方の白線センサでポスト番号を読み取る。(ポスト番号判別モード)※
(9) 中心位置へ戻る。(中心復帰モード)
(10) 獲得したポストが発見したポスト数と等しく、発見したポスト数が全ポスト数よりも少なければ、発見済みポストの位置未発見ポストの位置を予測する。予測した地点の付近まで移動し、ポスト探索・選択・獲得/ 判別動作を行う。(ポスト位置予測モード)
(11) 獲得したポストが全ポスト数と等しければプログラムを終了する。

※ マークの付いている動作は、競技2回目では行わない。





fig.1 競技1回目の動作(フローチャート)



4. 追加する関数など

table.1 追加する関数
ソースファイル名 関数名 書式 戻り値 説明
search_1.c search_1 int search_1(int); 0 初期位置からのポスト探索
functions.c (既存) get_num int get_num(int); 黒を判別した数 白線センサによるポスト番号識別
predict.c predict int predict(void); 0 未発見ポスト位置予測

table.2 control.hに追加・変更するdefine文
名称 書式 説明
POST_NUM 2→5 #define POST_NUM 5 総ポスト数
USS_MAX 1500→2000 #define USS_MAX 2000 最大計測可能距離
MCENTER_USS3_DIS 50→計測中 #define MCENTER_USS3_DIS xx MIRS中心からUSS3までの距離
MCENTER_USS12_DIS 55→計測中 #define MCENTER_USS12_DIS yy MIRS中心からUSS1,2までの距離
FOWARD_DIS 100→250 #define FOWARD_DIS 250 post_approachで正対補正をかけるまでの距離
STADIUM_DIS 1340 #define STADIUM_DIS 1340 競技場中心線上での競技場中央からポスト中心までの最大距離:
1800(競技場の1辺/2)-450(競技場外周からポストまでの距離)-10(ポスト半径)[mm]
MIRS2007 競技規定(MIRS07SF-CURR-0001)準拠
POST_TO_POST 450 #define POST_TO_POST 450 ポスト間の最低距離 MIRS2007 競技規定(MIRS07SF-CURR-0001)準拠



5. 変更・追加のある動作モードの詳細


(1) ポスト探索モード2(search_1)


その場で180度左回転を行いながら、本体左側の超音波センサでポスト位置を探索する。



fig.2 フローチャート(ポスト探索モード2(search_1))



(2) ポスト獲得モード(post_get)

既存のpost_getをアームを使用したものに変更する。
アームを展開してポストを獲得。ポスト獲得後にアームを収納する。ポスト周回動作は行わない。
ポストまで250mmの距離まで接近したら、アームを展開する(フローチャートは後退となっているが変更した)。
アームを閉じる動作のスイッチはタッチセンサの入力とする。アームへの動作命令はPICにより行う。



fig.3 フローチャート(ポスト獲得モード(post_get))

※fig.8中のパルスに関しては、MIRS0804エレクトロニクス詳細設計書(MIRS0804-ELEC-0001)を参照。



(3) ポスト番号判別モード(get_num)

MIRS本体背面に取り付けられた白線センサをポストに接触させ、番号を確認して記録する。
MIRS2007 競技規定(MIRS07SF-CURR-0001)よりポスト数は4または5であるため、4つの白線センサが読み取った黒色ラインの本数+1をポスト番号とする。



fig.4 フローチャート(ポスト番号判別モード(get_num))


(4) ポスト位置予測モード(predict)

すべてのポストが確認できなかった場合に、競技規定とポスト同士の位置関係から最もポストが隠れている可能性が高い場所を予測して移動する。
その後ポスト探索モード1(post_search)、基準位置移動モード2(move_2)の順で呼出する。



fig.5 フローチャート(ポスト位置予測モード(predict))