本文へ移動

tf-2md3-devel@t-frog.com

Re: モータドライバについて

Date:
Fri, 27 Jun 2014 18:40:31 +0900
From:
Atsushi Watanabe <
atsushi dot w at ieee dot org
>
To:
tf-2md3-devel <
tf-2md3-devel at t-frog dot com
>
Subject:
[00008] Re: モータドライバについて
菅野様

渡辺です。
ご質問について回答いたします。

> 1.お送り頂きましたバイト配置とエンコード方式を利用し,COMポートで通信を行うことで,各モータの角速度を受け取り,リファレンスの角速度を入力としてモータドライバに入力できるということで宜しいでしょうか.

はい。
ただし、モータなどの特性パラメータを使う事を前提とした制御系になっているため、最低限、以下のパラメータを設定する必要があります。
制御ゲインが適切であれば、モータ特性・慣性モーメントのパラメータはある程度適当でも問題ありません。
(設定する際の単位の換算は、前のメールのコードをご参照下さい。)
PARAM_p_ki (トルク係数)
PARAM_p_kv (逆起電力係数)
PARAM_p_pi_kp (比例制御ゲイン)
PARAM_p_pi_ki (積分制御ゲイン)
PARAM_int_max (積分最大値)
PARAM_int_min (積分最小値 -PARAM_int_max)
PARAM_pwm_max (本ドライバの標準状態では1200)
PARAM_pwm_min (本ドライバの標準状態では-1200)
PARAM_toq_max (PI制御のトルク最大値)
PARAM_toq_min (PI制御のトルク最小値 -PARAM_toq_max)
PARAM_toq_limit (出力トルク最大値、PARAM_toq_maxと同じでも良い)
PARAM_enc_rev (エンコーダ分解能)
PARAM_motor_phase (モータ種別、DC: 0、3相: 3)
上記パラメータは、左右モータそれぞれについて与える必要があります。
(送信データバイト配置にあるモータIDで指定、右:0、左:1)

PARAM_p_A (右モータ軸から見た慣性モーメント)
PARAM_p_B (左モータ軸から見た慣性モーメント)
PARAM_vsrc (公称電源電圧)
こちらは、ロボット全体の設定なので、モータID 0 のみを指定して設定します。

これらを設定後は、以下のパラメータ番号で指令値を送れば、動作します。
PARAM_servo (制御モード設定)
PARAM_w_ref_highprec (角速度指令)
PARAM_p_toq_offset (トルク指令)

ただし、通信途絶時にロボットが動き続けて周りの物に衝突するのを防ぐためウォッチドッグタイマーが入っています。
未設定時だと0.6秒間指令値が与えられない場合、動作を停止し、初期状態に戻ります。
以下のパラメータで、ウォッチドッグタイマーの時間を変更できます。
PARAM_watch_dog_limit (ウォッチドッグタイマーの制限時間、ミリ秒)


> 2.モータドライバ中にトルクのリファレンスが設定されていると思いますが,この値を1の角速度のように指令値として設定することは可能でしょうか.もしくは摩擦・慣性補償のように,追加で入力を与えることは可能でしょうか.

制御モードを速度制御にして、角速度指令とトルク指令を両方与えることで、速度制御をしつつ追加のトルクを与えられます。
(YP-Spurに実装されている重力補償は、この方法でトルク指令値を与えています。)




ちなみに、YP-Spurを通しても、角速度指令、トルク指令をそれぞれ与えることができます。
YP_set_wheel_vel (車輪角速度の最大値設定)
YP_set_wheel_accel (車輪角加速度の最大値設定)
YP_wheel_vel (車輪角速度指令)
YP_wheel_torque (車輪トルク指令)

また、パラメータファイル中で TORQUE_OFFSET 0 と設定しておき、
double toq[2] = {右車輪の追加トルク, 左車輪の追加トルク}
YP_set_parameter_array(YP_PARAM_TORQUE_OFFSET, toq);
のようにトルクを与えると、角速度指令に加えて任意のトルクを与えられます。


他に不明な点があれば、メーリングリスト宛にご返信下さい。
よろしくお願いいたします。

// Atsushi WATANABE
// Ph.D. Researcher
// Advanced Telecommunications Research Institute International (ATR)
// Intelligent Robotics and Communication Laboratories
// E-mail:
atsushi dot w at ieee dot org
/
atsushi dot w at atr dot jp



2014年6月26日 17:48 YUUKI SUGANO <
rr0024rh at ed dot ritsumei dot ac dot jp
>:
> 渡辺様
>
> お世話になっております.
> 立命館大学川村研究室
> 菅野です.
>
>
> 先日はご回答頂きまして有難うございました.
> YP-spurを使用せず制御する方法を質問させて頂いたのですが,
> 高機能なものを使用するのではなく,モータを直接(角速度またはトルク)制御したいと考えております.
> それによって,軌道制御等の静的な制御ではなく,動的な制御を行うことを目標としております.
>
> そこで,2点確認させて頂きたいのですが,
>
> 1.お送り頂きましたバイト配置とエンコード方式を利用し,COMポートで通信を行うことで,各モータの角速度を受け取り,リファレンスの角速度を入力としてモータドライバに入力できるということで宜しいでしょうか.
>
> 2.モータドライバ中にトルクのリファレンスが設定されていると思いますが,この値を1の角速度のように指令値として設定することは可能でしょうか.もしくは摩擦・慣性補償のように,追加で入力を与えることは可能でしょうか.
>
> お手数おかけしますが,ご回答のほどよろしくお願い致します.
>
>
> ---------------------------------------
> 立命館大学
> 理工学部 ロボティクス学科 4回生
> 運動知能研究室 ポテンシャル班
>
> 菅野勇希
>
> 学籍番号: 2250110042-4
> E-mail:
rr0024rh at ed dot ritsumei dot ac dot jp

>
> ---------------------------------------
>

References