MotorControl(移動台車制御RTC)

概要

本コンポーネントは、OpenHRP3の速度指令から左右車輪の目標角速度を計算し、PD制御により左右車輪への出力を求めます。

当コンポーネントはOpenHRP3内での差動駆動型移動台車ロボットを走行させるために両輪のトルク値を算出するためのものであり、シミュレーション時のみの使用を想定しており、ロボット実機を走行させるためのコンポーネントではありません。

ロボット中心(差動駆動型移動台車ロボットの駆動輪を結ぶ車軸の中心と定義)の並進速度と旋回速度を入力し、内部で左右車輪(駆動輪)の目標回転角度と目標角速度を出力します。 また、内部で保持・算出している現在の車輪回転角度と角速度も用いて、PD制御にて両輪のモータトルク値を算出します。

二つのサービスポートから走行/停止などの指令、PD制御ゲインパラメータの動的変更指令と、Bump障害物検知指令を取得します。

本コンポーネントは、移動知能モジュール群に含まれます。

../../_images/motorcontrol.png

動作確認OS

  • Linux Ubuntu10.04 LTS
  • Windows 7

依存ライブラリ

または、 - OpenRTM-aist : OpenRTM-aist-1.1.0-RELEASE(C++) - OpenHRP3 : OpenHRP バージョン3-3.1.3

データポート

名前 フローポート データ型 説明
TargetVelocity InPort IIS::TimedVelocity 並進と旋回の目標速度[m/s]
InCurrentWheelAngle InPort TimedDoubleSeq 車輪回転速度[rad]
InSimulatedPosition InPort TimedDoubleSeq シミュレーション位置姿勢
OutSimulatedPositionToInventGUI OutPort TimedDoubleSeq シミュレーション位置姿勢
Torque OutPort TimedDoubleSeq 車輪回転速度[rad]
OutCurrentWheelAngle OutPort TimedDoubleSeq シミュレーション位置姿勢
OutSimulatedPositionToLocalization OutPort TimedDoubleSeq シミュレーション位置姿勢
InventGUIPorv ServicePort   走行/停止などの指令と、PD制御ゲインパラメータの動的変更指令などを取得する(未使用)
BumpProv ServicePort   Bump障害物検知指令を取得する(未使用)

コンフィギュレーション

名前 データ型 デフォルト値 設定範囲 説明
PGainL double 2.0 0.0以上 左車輪モータのPゲイン
PGainR double 2.0 0.0以上 右車輪モータのPゲイン
DGainL double 5.0 0.0以上 左車輪モータのDゲイン
DGainR double 5.0 0.0以上 右車輪モータのDゲイン
SimulatedOffsetX double 0.0 固有値 初期化時シミュレーション原点位置オフセット(△X[m])[※1]
SimulatedOffsetY double 0.0 固有値 初期化時シミュレーション原点位置オフセット(△Y[m])[※1]
SimulatedOffsetAngle double 0.0 固有値 初期化時シミュレーション原点姿勢オフセット(△θ[rad])[※2]
leftWheelID int 0 固有値 左駆動輪のID番号
rightWheelID int 1 固有値 右駆動輪のID番号
radiusOfLeftWheel double 0.1 固有値 初期化時 左駆動輪の車輪半径
radiusOfRightWheel double 0.1 固有値 初期化時 右駆動輪の車輪半径
lengthOfAxle double 0.441 固有値 初期化時 左右駆動輪間の長さ
radiusOfBodyArea double 0.45 固有値 初期化時ロボット車体全体を円で囲んだ場合の半径。安全を考慮したエリア定義用
※1 「シミュレーション位置オフセット」値
モデルの原点が「差動駆動型移動台車ロボットの駆動輪を結ぶ車軸の中心」と一致していない場合に、X,Y方向のズレを調整するためパラメータです。
※2 「シミュレーション姿勢オフセット」値
モデルをどの軸の正方向を姿勢角度が0度となるように定義しているかにより、OpenHRP3から取得する姿勢角度とオドメトリの姿勢角度でズレが生じます。例えば、X軸正方向を0度となるように定義してあれば問題無いが、Y軸正方向を0度となるように定義されていれば、オドメトリの姿勢角度と90度のズレが生じます。このずれの角度をオフセット値とし、補正を行うパラメータです。