MIRS2008 ソフトウェア製造仕様書

MIRS0801-SOFT-0002

 

 版数

最終更新日

作成

承認

改訂記事

A01

 2009/2/24

小林、井上 

和泉

初版


目次

1.       目的

2.       動作内容

    2.1   1回目動作内容

    2.2   2回目動作内容

3.       新たに追加、変更した関数、グローバル関数

    3.1  関数

    3.2 グローバル関数 

4.       各動作内容

    4.1  ポスト獲得1回目

    4.2  ポスト獲得2回目

5.       主要な関数の動作内容

    5.1  p_check

    5.2  post_get

6.       ポスト獲得動作


 

1 目的

この文書ではMIRS0701基本設計書に規定されたシステムの動作規定、 状態遷移を実現する各タスクの開発(コーディング、試験等)に必要な事項を述べる。

 

2 動作内容

2.1       一回目動作内容

競技場中央線上を往復し、MIRS進行方向に対し右側にあるポストを超音波センサで探索する。

探索時に見つけたポストは番号にかかわらず獲得に向かう。

 

以下にフローチャートを示す。


2回目動作内容

競技場中央線上を移動しながら、一回目の動作で得たデータを元に、できる限り順番どおりにポストを獲得する

 

以下にフローチャートを示す。

                        新たに追加、変更した関数、グローバル変数

3.1          関数

関数名

引数

機能

int post_search_first(void)

無し

競技1回目でのポスト探索 

int post_search_u(void)

無し

競技2回目でのポスト探索 ポストのデータがある場合に使用

int post_search_m(void)

無し

競技2回目でのポスト探索 ポストのデータが無い場合に使用

int post_search_s(void)

無し

競技2回目でのポスト探索 1回目でぶつかったポストを獲得する

int post_search_d(void)

無し

競技2回目でのポスト探索 順番どおりに獲得できなかった場合に使用

int correct_drection2(void)

無し

正対補正 補正量をグローバル変数cor_ang2に代入

int correct_direction3(void)

無し

正対補正 

int post_get(int)

ポスト番号

ポストの獲得(ポストの周りを1周)

int post_get2(int)

ポスト番号

ポストの獲得(ポストの周りを半周)

int post_approach2

ポスト番号

正対補正をまとめた関数

int p_check(void)

無し

白線に対し垂直方向を向くように姿勢を補正する

int fileout(int,int,int)

ポストのデータ

ファイルにポストのデータを出力

int sign(int)

任意

引数が正、及び0であれば1、負であれば0を返す

int vfd(int)

VFDへのコード

アドレス0x0154に引数を出力

 

3.2       グローバル変数

変数名

説明

int cor_ang2

正対補正角度

int cor_ang3

正対補正角度

int cor_ang4

正対補正角度

int cor_ang5

正対補正角度

int aw

移動量

int arw_local

移動量(右タイヤ)

int alw_local

移動量(左タイヤ)

int ima

MIRSの方向(行き:1、帰り:−1)

int aso

行動フラグ

int uss_3

左右のussセンサ(右:−1、左:1)

int uss_data3

ussセンサの値を保持

int x[10]

ポストのデータ(x座標)

int y[10]

ポストのデータ(y座標)

int gotpost[10]

獲得フラグ(0:未、1:済)

int target

ターゲットポストの番号

int got

ポスト取得数

int error_flag1

行動フラグ


、各動作内容

 

4.1        ポスト探索1回目

 

flag1はローカル変数であり、戻り値はこの値である。


4.2 ポスト探索2回目

post_search_u

post_search_m

 

ターゲットポストを獲得できれば戻り値は1それ以外の場合の戻り値は負の値になる

 

post_search_d

post_search_s

 

 

5 主要な関数の動作内容

 

5.1 p_check

 

 

後退していき、どちらかの白線センサで感知したら、そのタイヤを中心に回転し、両方のセンサが反応したら止まる。

これを3回繰り返すことでどんな角度からでも垂直をとることができる。

 

5.2 post_get,post_get2

 

ポストの周りを一周するのがpost_get、ポストの周りを半周するのがpost_get2である。

post_get2はポストに衝突したときに使われる。

  

6 ポスト獲得動作

ポスト獲得1回目

 

 

 

ポスト獲得2回目


以上の手順でポストを獲得する。

 

 

以上のプログラム製作することで、詳細設計を満たすMIRSを製作する。