MIRS2008 ソフトウェア詳細設計書

MIRS0801-SOFT-0001

 

 版数

最終更新日

作成

承認

改訂記事

A01

2008/9/12

小林、井上

和泉

初版

A02

 2008/10/6

小林、井上

 和泉

フローチャートを追加

 

 

 

 

 

 

 

目次

1.   本ドキュメントについて

2.   主に追加される関数の説明

3.   使用される外部変数

4. 動作内容

4.1      動作内容(1回目)

4.2    動作内容(2回目)

 

 

 

 

1 本ドキュメントについて

本ドキュメントはMIRS0801のソフトウェアで行う内容の詳細設計書である

 

 

2 主に追加される関数の説明

2.1 垂直方向取得関数 p_check(void)

 競技場の中央線を往復してポストを取得させるため、初期位置が白線と垂直方向を向いていなければならない 

 この関数ではMIRS後部に取り付けた2個の白線センサが両方反応していることで垂直を取れていると判断させ、その後にポスト探索に移る 

 

 

2.2 ポスト探索関数 search_first()

 中央線を走行しながら右側の超音波センサでポストを探索する 

 1回獲得したポストのあるあたりで超音波検索をしない(マスクをかける)ことで、往復が終了してからもう1度、ポストを発見していないあたりを探索に行くことができる 

 

 

2.3 角度補正関数 correct_direction1_ex()

 ポストを発見したら、右側に90°回転し、ポストとの角度補正を行う その際、補正角を記録しておく 

 標準プログラムのcorrect_direction1()を改造して作成する

 

 

2.4 ポスト接近関数 post_approach_ex()

 ポストに接近する 探索で得られた距離分接近し、次動作に移る この際、進んだ距離を記録しておく

 標準プログラムのpost_approach()を改造して作成する

 

 

2.5 正対補正用関数 correct_direction2_ex()

 ポストに接近した状態から、正対補正動作を行う この際、補正した角度を記録しておく 

 標準プログラムのcorrect_direction2()を改造して作成する

 

 

2.6 獲得動作用関数 post_get_ex()

 ポストの周りを周回することで、ハードのポスト獲得機構によりポストを獲得する 獲得する前に赤外線センサにより、ポスト番号を読み取り、ポスト番号とx、y座標を外部変数、および外部テキストファイルに保存する 

 標準プログラムのpost_get()を改造して作成する 

 

 

2.7 中央線帰還関数 move_cl()

 ポストを獲得した後、ポスト獲得動作前に90°回転した位置まで戻る関数 この際、補正角2つと、ポスト接近距離から、正弦定理を用いて必要な戻り距離を計算し、正確に元の位置まで戻る

 

 

2.8 折り返し動作関数 turn()

 競技場の向こう側の白線を白線センサで感知したら、半回転して折り返す関数 

 

 

2.9 動作選択関数 act_select()

 現在把握しているポストの番号から、2回目の動作を以下の3つから選択する 

 

 

2.10 ポスト探索関数 search_second1(),search_second2(),search_second3()

search_second1()

 1回目動作ですでに発見してあるポストを探しに行く関数 目標とする番号のある場所以外の場所にマスクを掛け、目標とするポストをとりに行く 

 

 

search_second2()

 1回目動作で4つのポストを発見している場合、必然的に残りの1個の番号がわかる そのような状況の時に、現在わかっているポストのあたりにマスクを掛け、残りの1個を探索する 

 

 

search_second3()

  1回目動作で3つ以下のポストしか発見できなかった場合、1から、わかっている番号まで取得した後、取得したポストにマスクを掛けて、残りのポストをランダムに探索する 

 

 

3 使用する外部変数

 

 

自分の位置を記録する変数 position_x,position_y

 

ポストデータを記録しておく配列変数 post

 

move_clに必要なデータである、補正角、移動距離を保存しておく変数 theta1,theta2,r,x,y

その他は標準プログラムに準拠する

4 動作内容(動作概要、行動選択)



 

 

動作内容(1回目)

 

動作内容(2回目)

パターン1

パターン2