名称 MIRS1401 vel_ctrlモジュール詳細設計
番号 MIRS1401-SOFT-0009

版数 最終更新日 作成 承認 改訂記事
A01 2014.12.13 五十嵐,眞野 初版
A02 2014.12.17 五十嵐,眞野 名称の変更
A03 2014.12.19 五十嵐,眞野 牛丸先生 テスト仕様の変更

目次

1.はじめに
2.機能
3.共有変数
4.関数
5.テスト仕様

1.はじめに

本ドキュメントは、MIRS1401のvel_ctrlモジュール詳細設計について記したドキュメントである。

2.機能

各モーターの速度を制御し、各モーターの回転速度を一定の値にする。
標準プログラムを基に、新たに後ろのタイヤの速度制御の関数を追加する。

3.共有変数

モジュール内の共有変数を示す。
名称概要
static float vel_l_ref / vel_r_ref / vel_b_ref 目標速度
static float vel_l_ref_org / vel_r_ref_org / vel_b_ref_org 初期目標速度
static float Kp / Ki / kd PID速度制御ゲイン
static float err_sum_l / err_sum_r / err_sum_b PID制御時に使う目標値との差の合計
static float err_prev_l / err_prev_r / err_prev_b PID制御時に使う前の入力速度
static float vel_l / vel_r / vel_b エンコーダから読み取る速度
static float t_coef エンコーダ値から速度に変換するためのタイヤの半径などの値

4.関数

修飾子・戻値名称・引数概要
void vel_ctrl_set(float vel_ref_l, float vel_ref_r, float vel_ref_b) 速度指令値をセットする。引数は3つのモーターの速度指定値[cm/s]
void vel_ctrl_mod(float vel_mod_l, float vel_mod_r, float vel_mod_b) 速度指令値を修正する。引数は3つの速度修正値[cm/s]
void vel_ctrl_create() 速度制御スレッドを生成する
void vel_ctrl_cancel() 速度制御スレッドをキャンセルする
void vel_ctrl_reset() 速度制御スレッドをリセットする
void vel_ctrl_get_speed(float *speed_l, float *speed_r, float *speed_b) 3つのモータの現在速度[cm/s]を取得する

5.テスト仕様

各モーターの回転数を測定し目標速度との誤差が5%以内(仮)を保っている場合、合格とする。

MIRS1401