名称 MIRS1408 run_ctrlモジュール詳細設計
番号 MIRS1401-SOFT-0008

版数 最終更新日 作成 承認 改訂記事
A01 2014.12.15 五十嵐,眞野 初版
A02 2014.12.17 五十嵐,眞野 名称の変更
A03 2014.12.19 五十嵐,眞野 テスト仕様の変更
A04 2015.2.4 五十嵐,眞野 牛丸先生 追加モジュールについての説明の追加

目次

1.はじめに
2.機能
3.共有変数
4.関数
5.テスト仕様
6.追加(hexagon)モジュールについて

1.はじめに

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

2.機能

xy座標系での距離の入力、旋回量の入力の指令から3つのタイヤのそれぞれの速度を決定し、速度指令値を送る。

座標変換の図

R:重心からタイヤまでの距離

3.共有変数

モジュール内の共有変数を示す。
名称概要
static float run_speed モーターの速度指令値
static int dist_flag 走行管理スレッドの使用中の合図
static float run_x_dist/run_y_dist/run_shet_dist モーターの移動量、旋回量指令値
static int ctrl_endflag 走行管理スレッドの終了の合図

4.関数

修飾子・戻値名称・引数概要
void run_ctrl_set(float speed) スピードをセットする
void void run_ctrl_xy_set_dist(float x_vec_dist, float y_vec_dist) x方向の移動量、y方向の移動量をセットする
void void run_ctrl_set_shet_dist(float shet_vec_dist) 旋回量をセットする。
void run_ctrl_get_endflag() 指定距離走行(or指定角度回転)終了のフラグを取得する
void run_ctrl_create() 走行制御スレッドを生成する
void run_ctrl_cancel() 走行制御スレッドをキャンセルする
void run_ctrl_stop() 機体を停止させる
void run_ctrl_reset() 走行制御をリセットする
void run_ctrl_set_Kfr(float Kfr) 距離減速ゲインを変更する
void run_ctrl_reset_Kfr() 距離減速ゲインももとに戻す

5.テスト仕様

正しく動作するかテストを行う。
次のページのデータを参考にして行う。 全方向型自律移動ロボットにおけるデッドレコニングの高精度化
移動量、旋回量を入力し、移動させ、100cmに対して誤差が10cm以内(仮)、90degに対して誤差が10deg以内(仮)の場合、合格とする。

6.追加(hexagon)モジュールについて

タイヤのスリップが強く3輪での制御が行えず、run_ctrlモジュールがうまく動作しなかったために追加したモジュールである。
タイヤに滑り止め(ガムテープ)をつけることでrun_ctrlモジュールが動作したため、実際は使用しなかった。
モジュール名はhexagonである。

機能

3つのタイヤのうち2つのみを動かし、図のように6方向に移動するモジュールである。


また、基本的にはrun_ctrlのモジュールと大きな違いはないが、指定距離を指定する関数を "hexagon_set_dist_mode(float dist,int mode)"とする。
引数は移動方向の距離(±)と、6方向(3方向の±方向)のどの方向かを指定する。方向の指定は、前後を1、右ななめ前と左ななめ後ろを2、左ななめ前と右ななめ後ろを3、とする。

MIRS1401