MIRS0403 ソフトウェア詳細設計書 |
番号 |
MIRS0403-SOFT-0001 |
版 数
|
最終更新日
|
作 成
|
承 認
|
改 訂 記 事
|
A01
|
2004.9.21
|
鈴木寛里
|
上園隆文
|
初 版
|
A02
|
2004.10.1
|
渡邉真也
|
上園隆文
|
モード遷移表のつけたし
|
A02
|
2004.10.8
|
柴田龍治
|
鈴木寛里
|
フローチャートの書き換え
|
目次
- はじめに
- 動作モードの定義
- モードのフローチャート
- モード遷移表
- モジュール
本ドキュメントは、MIRS0403 基本設計書に規定されたシステムの動作規定、状態遷移を実現する各タスクの開発(コーディング、試験等)に必要な事項を述べる
- 待機モード
メインプログラムを立ち上げる。競技が始まる(スタートスイッチが押される)まで、待機状態を続ける。
・遷移条件
競技1回目→コース移動モード1
競技2回目→中心移動モード
・フローチャート
- コース移動モード1
今いる位置から超音波センサを使って直進できるルートを探し、一定距離進んだ後ポストを探索する。
・遷移条件
移動終了→ポスト検索モード
白線感知→白線感知モード
・フローチャート
- コース移動モード2
今いる位置から最も近い位置にあるポストを選択し、そのポストに近づく。ポストに近づいたら、超音波センサを用いて、ポストに対してMIRSが垂直になるようにする.
・遷移条件
行動終了→ポスト周回モード
白線感知→白線感知モード
・フローチャート
- コース移動モード3
MIRSが中心位置にいる場合において、次に獲るべきポストを選択し移動する。ポストに近づいだら、超音波センサを用いて、ポストに対してMIRSが垂直になるようにする.
・遷移条件
行動終了→ポスト周回モード
白線感知→白線感知モード
・フローチャート
- ポスト探索モード
ステッピングモーターを回転させて超音波センサーを一周させ、ポストの極座標系データをとる。
・遷移条件
競技場の全てのポストを把握→コース移動モード2
競技場の全てのポストを把握できない→コース移動モード1
・フローチャート
- ポスト周回モード
90度その場で右に回転し、ポストを周回する.1周しても赤外線に反応しない場合は最高3周までポストを回る.
・遷移条件
赤外線を感知→ポスト獲得モード
3周しても赤外線を感知できない→コース移動モード2(競技1回目)
→コース移動モード3(競技2回目)
白線感知→白線感知モード
・フローチャート
- ポスト獲得モード
MIRS左側の赤外線センサでポストの番号を確認する。もし、今獲得すべきポストなら90度左に回転しポストに正対した後直進する。タッチセンサが反応したら一定位置までバックする。その際に、もし赤外線がまだ消えてなかったらもう一度直進し、最高3回まで同じことを繰り返す。赤外線が消えたら元の位置までバックする。
・遷移条件
ポスト獲得→ポスト残り周回モード
ポスト獲得できなかった→ポスト残り周回モード
白線感知→白線感知モード
・フローチャート
- ポスト残り周回モード
今周回しているポストの中心座標と次に接近すべきポストの中心座標から、それぞれのポストの中心座標を結ぶ軌道を計算。その軌道上に行くための、ポストの周回移動距離を計算し、ポストを周回する。 その際ポストを回る方向は、移動距離がより短いほうにする。それぞれのポストの中心座標を結ぶ軌道上に来たら、右側の超音波センサーを用いて、次に接近すべきポストに正対する。この際に行う正対補正は、現在のポストの周回軌道上から外れないように行う。
・遷移条件
目的地到着→コース移動モード2,3、中心移動モード(競技1回目)
目的地到着→中心移動モード、コース移動モード3(競技2回目)
白線感知→白線感知モード
・フローチャート
- 中心移動モード
競技1回目で最終的にポストの座標を全て得た位置まで直進する。
・遷移条件
移動中に前方にポスト発見→ポスト残り周回モード
中心に到着→中心補正モード
白線感知→白線感知モード
・フローチャート
- 中心補正モード
その場で回転し、ポスト検索モードで記憶しておいたポスト座標と、いまのポストの座標を比較。ポスト検索モードのときにいた位置まで直進できるように回転した後、直進する。
・遷移条件
中心補正完了→コース移動モード3
白線感知→白線感知モード
・フローチャート
- 白線確認モード
白線を感知したら基準点(最終的にポストの座標をすべて得たところ)に移動する。移動後もとの動作に戻る.
・フローチャート
競技1回目 競技2回目
\前 後\ |
待機モード |
コース 移動モード1 |
コース 移動モード2 |
コース 移動モード3 |
ポスト 探索モード |
ポスト 周回モード |
ポスト 獲得モード |
ポスト残り 周回モード |
中心移動 モード |
中心補正 モード |
白線感知 モード |
待機 モード |
- |
|
|
|
|
|
|
|
|
|
|
コース 移動モード1 |
競技一回目 |
- |
|
|
全てのポストを把握できない |
|
|
|
|
|
|
コース移動モード2 |
|
|
- |
|
全てのポストを把握 |
赤外線感知不可(競技一回目) |
|
目的地到着(一回目のみ) |
|
|
|
コース移動モード3 |
|
|
|
- |
|
赤外線感知不可(競技二回目) |
|
目的地到着 |
|
中心補正完了 |
|
ポスト探索モード |
|
移動終了 |
|
|
- |
|
|
|
|
|
|
ポスト周回モード |
|
|
行動終了 |
行動終了 |
|
- |
|
|
|
|
|
ポスト獲得モード |
|
|
|
|
|
赤外線感知 |
- |
|
|
|
|
ポスト残り 周回モード |
|
|
|
|
|
|
ポスト獲得成功、ポスト獲得失敗 |
- |
移動中前方にポスト発見 |
|
|
中心移動 モード |
競技二回目 |
|
|
|
|
|
|
目的地到着 |
- |
|
白線回避完了 |
中心補正 モード |
|
|
|
|
|
|
|
|
中心に到着 |
- |
|
白線感知 モード |
|
白線感知 |
白線感知 |
白線感知 |
|
白線感知 |
白線感知 |
白線感知 |
白線感知 |
白線感知 |
- |
-
中心移動モジュール
定義:ポスト位置情報を元に基準点まで戻る
構成要素:超音波センサ、PWM/エンコーダ、直進モジュール、回転モジュール、位置確認モジュール、中心判別モジュール
関数名:center_move(void)
-
中心位置補正動作モジュール
定義:ポスト位置情報を元に基準点まで戻る
構成要素:超音波センサ、直進モジュール、回転モジュール、位置確認モジュール、中心判別モジュール
関数名:correct_center(void)
-
連続して超音波センサの値が高いところを検出して移動するモジュール
定義:ポストがない場所を検出し直進する
構成要素:超音波センサ、直進モジュール、回転モジュール、中心判別モジュール
関数名:move1(void)
-
今いる位置から全てのポストを回るルートを作成するモジュール
定義:得たポスト情報を元にMIRSに一番近いポストから周回するルートを作成する
構成要素:中心判別モジュール
関数名:root1(void)
-
ポスト接近モジュール
定義:ポストに接近する
構成要素:超音波センサ、直進モジュール、中心判別モジュール、目標ポスト決定モジュール
関数名:post_approach(void)
-
今いる位置から全てのポストを回るルートを作成する2モジュール
定義:ポスト位置情報とポストコード情報を元にコードの順番にルートを作成する
構成要素:中心判別モジュール
関数名:root2(void)
-
ポストに正対するよう角度補正モジュール
定義:前方の超音波センサを用いMIRSがポストに正対するようにする
構成要素:超音波センサ、回転モジュール、正対判別モジュール、中心判別モジュール
関数名:correct_deg(void)
-
コードを保存モジュール
定義:ポスト周回中に得たポストコードを保存する
構成要素:赤外線センサ、ポスト番号判別モジュール、中心判別モジュール
関数名:code_get(void)
-
ポスト周回開始位置に移動モジュール
定義:ポスト周回中にコード判別のために止まった後周回開始位置まで移動する
構成要素:PWM/エンコーダ、回転モジュール、中心判別モジュール、ポスト周回モジュール
関数名:post_turn(void)
-
プロペラを一周させてポストの位置を確認するモジュール
定義:ポストのある位置を確認する
構成要素:超音波センサ、ステッピングモータ、回転モジュール、中心判別モジュール、位置確認モジュール
関数名:bamboo(void)
-
各極小値のデータを保存するモジュール
定義:ポスト位置情報を保存する
構成要素:中心判別モジュール、位置確認モジュール
関数名:post_save(void)
-
直進モジュール
機能:指定した距離、または特定条件を満たすまで直進(交代)させる関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:PWM/エンコーダ
関数名:straight_mod
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
回転モジュール
機能:ロータリーエンコーダを用いてMIRSを指定した角度、回転方向、速度でその場で回転させる関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:PWM/エンコーダ
関数名:turn_mod
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
正対判別モジュール
機能:MIRS(超音波センサ)とポストが正対した時を判別するための関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:超音波センサ
関数名:toword_post
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
中心判別モジュール
機能:ポストの中心を見つけるための関数郡。
構成要素 補助関数、RT タスク、デバイスドライバ:タッチセンサ、PWM/エンコーダ
関数名:center_mod
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
ポスト番号判別モジュール
機能:ポスト番号を判別するための関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:赤外線センサ
関数名:post_no_jadge
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
ポスト周回モジュール
機能:指定した角度、または特定条件を満たすまでポストを周回させる関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:PWM/エンコーダ
関数名:around_post
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
目標ポスト決定モジュール
機能:ポストデータより次の目標ポストを決定するための関数群。
構成要素 補助関数、RT タスク、デバイスドライバ:なし
関数名:next_post_mod
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略
-
位置確認モジュール
機能:周回探索モードで得たポストデータより、MIRSの周回したポストに対する認識が正しいか確認、間違っていたら修正する。
構成要素 補助関数、RT タスク、デバイスドライバ:なし
関数名:position
引数:なし
戻り値:amode,bmode
アルゴリズム(フローチャート):省略