名称 | MIRS1403 走行制御モジュール詳細設計書 |
---|---|
番号 | MIRS1403-SOFT-0003 |
最終更新日:2015.2.4
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2014.12.22 | 野澤 | 初版 | |
A02 | 2014.12.24 | 野澤 | 大林教員 | 関数名の修正 |
A03 | 2015.2.4 | 野澤 | 仕様変更についての追記を行った。 |
本ドキュメントは、MIRS1403の走行制御モジュールの詳細設計書である。
尚、本ドキュメントにおける設計計画は実質的に廃止した。詳細については、以下を参照。
MIRS1403 ソフトウェア開発報告書
本モジュールは、機体の走行を制御する機能を提供する。
修飾子 | 名称 | 概要 | 備考 |
---|---|---|---|
typedef struct {...} | Run_state | 走行状態構造体 | |
型 | メンバ名 | 概要 | 備考 |
int | .velocity | 機体走行速度 [m/sec] | |
int | .angular_velocity | 機体回転角速度 [rad/sec] | |
int | .distance | 移動距離 [m] | |
int | .rotation | 回転量(右回転を正とする) [rad] |
修飾子 | 名称 | 概要 | 備考 |
---|---|---|---|
typedef struct {...} | Run_PIDstate | モータPID制御情報構造体 | |
型 | メンバ名 | 概要 | 備考 |
double | .error_P | 比例項 | |
double | .error_I | 積分項 | |
double | .error_D | 微分項 | |
double | .u | 制御入力 |
修飾子 | 名称 | 概要 | 備考 |
---|---|---|---|
#define | RUN_PID_GAIN_P | 比例ゲイン | |
#define | RUN_PID_TIME_I | 積分時間 | |
#define | RUN_PID_TIME_D | 微分時間 |
修飾子・戻値 | 名称・引数 | 概要 | 修飾子・戻値の詳細 | 引数の詳細 | 備考 |
---|---|---|---|---|---|
int | set_velocity(Run_state* run_state, int motor_velocity) | 目標速度を指定する関数 | 正常終了時:0 異常終了時:-1 | motorstate: モータ状態構造体 motor_velocity: 目標速度 [m/sec] | |
int | set_angular_velocity(Run_state* run_state, int motor_angular_velocity) | 目標角速度を指定する関数 | 正常終了時:0 異常終了時:-1 | motorstate: モータ状態構造体 motor_angular_velocity: 目標角速度 [rad/sec] | |
int | set_distance(Run_state* run_state, int distance) | 目標走行距離を指定する関数 | 正常終了時:0 異常終了時:-1 | motorstate: モータ状態構造体 distance: 目標走行距離 [m] | |
int | set_rotation(Run_state* run_state, int rotation) | 目標回転角を指定する関数 | 正常終了時:0 異常終了時:-1 | motorstate: モータ状態構造体 rotation: 目標回転角 [rad] | |
Run_PIDstate | run_PID_inital() | PID情報を初期化する関数 | 正常終了時:0 異常終了時:-1 |
修飾子・戻値 | 名称・引数 | 概要 | 修飾子・戻値の詳細 | 引数の詳細 | 備考 |
---|---|---|---|---|---|
double | run_straight(Run_state* run_state, Run_PIDstate* run_pidstate) | 指定距離直進走行する関数 | 正常終了時:移動距離 異常終了時:移動距離(移動していない場合:NAN) | motor: モータ構造体 motorstate: モータの状態構造体 | |
double | run_rotation(Run_state* run_state, Run_PIDstate* run_pidstate) | 指定距離回転走行する関数 | 正常終了時:回転距離 異常終了時:NAN | motor: モータ構造体 motorstate: モータの状態構造体 | |
int | run_random_walk(Run_state* run_state, Run_PIDstate* run_pidstate, int endflag) | ランダムに走行する関数 | 正常終了時:0 異常終了時:-1 | motor: モータ構造体 motorstate: モータの状態構造体 endflag: 走行終了処理の為のフラグ | |
int | run_suspension() | 走行を停止する関数 | 正常終了時:0 異常終了時:-1 |
修飾子・戻値 | 名称・引数 | 概要 | 修飾子・戻値の詳細 | 引数の詳細 | 備考 |
---|---|---|---|---|---|
int | direction_correct(USS_value uss_value, int direction) | 正体補正をする関数 | 正常終了時:0 異常終了時:-1 | uss_value: 超音波センサ距離データ構造体 direction: 正体補正をする方向(方向は超音波センサのポート番号と対応する。) |
試験用プログラムの詳細を以下に示す。
ファイル名 | 試験内容 | 合格基準 | 不合格時の対処法 | 備考 |
---|---|---|---|---|
test_run_straight | 指定距離を直進できるかを確認する。 数種類の距離を指定し、直進させ、合否を決定する。 | 指定した距離を走行した場合に合格とする。 ただし、モータの個体差等により生じた誤差は許容する。 | 各デバイスの接続状態の確認及びシステムの再起動を行い、再度試験を行う。 上記の方法で改善が見られないようならば、その時に対処法を考える。 | |
test_run_rotation | 指定距離を回転できるかを確認する。 数種類の距離を指定し、回転させ、合否を決定する。 | 指定した距離を走行した場合に合格とする。 ただし、モータの個体差等により生じた誤差は許容する。 | 各デバイスの接続状態の確認及びシステムの再起動を行い、再度試験を行う。 上記の方法で改善が見られないようならば、その時に対処法を考える。 | |
test_correct | 正体補正が可能かを確認する。 数種類の距離を指定し、正体補正をし、合否を決定する。 | 指定した距離正体補正が成功した場合に合格とする。。 | パラメータの再調整を行い、再度試験を行う。 上記の方法で改善が見られないようならば、その時に対処法を考える。 |
コーディング及び全モジュールについてのドキュメントの承認を得た後、必要と思われるデバッグ処理の詳細を追記する。
プログラムについては、以下を参照。
MIRS1403 ソフトウェア開発報告書