力制御機能のSPEL+プログラミング

概要

力制御機能とは、弊社の力覚センサーを用いて、与えられた目標の力またはトルクを達成するようにロボットを制御する機能です。
力制御機能のプログラミングは、次の手順で実行します。
実行する座標系を設定する
パラメーターを設定する
力制御機能を実行する

力制御機能の座標系

力制御機能は、フォース座標系にしたがって動作します。
力制御機能は、センサーが検出した力, トルクからフォース座標系が受けた力, トルクを計算し、それにしたがってフォース座標系を移動, 回転させるようにロボットを制御します。
フォース座標系の原点は、実際に接触して、力が発生する部分を指定してください。(例: ワークの端点など)
また、フォース座標系の方向は、アプリケーションによって異なります。常に鉛直下方向に力を加えるなど、ロボットの姿勢に関わらず一定の方向で力制御機能を実行する場合は、ベース座標系やローカル座標系を指定してください。
ロボットの把持するワークの、ある方向に力を加えるなど、ロボットの姿勢にしたがって変化する方向に力制御機能を実行する場合は、ツール座標系やカスタム座標系を指定してください。
力制御機能は、フォース座標系で指定したFx~Tzの6軸に対して実行できます。

力制御機能のパラメーター

力制御機能のパラメーターは、フォースコントロールオブジェクトの各プロパティーで設定します。
プログラム実行前にGUIで設定します。GUIでの設定の詳細は、次の項を参照してください。
ソフトウェア編 [ロボットマネージャー] - [ツール]メニュー
- [ツール]-[ロボットマネージャー]-[フォースデータ]パネル

またプログラム実行中、動的に変化させたい場合は、FSetステートメントを使用して設定します。

  • CoordinateSystemプロパティー
    力制御機能を実行するフォース座標オブジェクトを指定します。

    CoordinateSystemプロパティーのみを変更することで、同じ制御特性を持った力制御機能を別の座標系で実行できます。

  • Enabledプロパティー
    力制御機能を実行する軸をFx~Tzについて指定します。

    並進方向だけ力制御機能を実行する場合はFx~Fzを有効にし、Tx~Tzを無効にするなど、アプリケーションで必要な軸のみ力制御機能を有効にできます。

  • TargetForceプロパティー
    各軸の力制御機能の目標とする力、またはトルクを設定します。

    ロボットは、設定された力を検出するように動きます。そのため正の値を設定した場合、フォース座標系の正の方向に力がかかるように負の方向に向かって移動することに注意してください。

    フォース座標系の正の方向に押し付けを行う場合は、負の目標力を設定してください。

    TargetForceプロパティーに0を設定すると、力がかからない状態になるようにロボットは動作します。外力に倣うような動作ができます。

  • Springプロパティー
    力制御機能の仮想弾性係数を設定します。

    Springプロパティーを設定すると、仮想的な“ばね”があるかのように力制御機能は動作し、外力が加われば力が つりあう位置まで移動し、加わっていた外力がなくなれば元の位置に戻ろうとします。

    値が大きくなるにしたがい、硬い“ばね”が設定されたように動作します。“0”を設定すると、仮想的な“ばね”は存在せず、力にしたがってどこまでも移動するように動作します。

  • Damperプロパティー
    力制御機能の仮想粘性係数を設定します。

    Damperプロパティーの値が小さくなるにしたがって、力制御機能は力の変化に早く反応しますが、姿勢、ハンド、ワークなどの環境により、ロボットの動作が振動的になります。Damperプロパティーの調整は、デフォルト値を段階的に小さくするように調整してください。

  • Massプロパティー
    力制御機能の仮想慣性係数を設定します。

    Massプロパティーの値が大きすぎる場合、目標力に整定するまでのオーバーシュートが大きくなり、ハンチングの期間が長くなります。Massプロパティーの値とDamperプロパティーの値は、並進1:1~10:1程度、回転1:1~1000:1程度になるように設定すると、安定的な制御となる場合が多くなります。

    ただし、アプリケーションや動作環境によっては、振動的になる場合や、これ以外の比率が適切である場合がありますので、注意してください。

    Damperプロパティーに対して、Massプロパティーの値が小さすぎる場合は、力制御機能実行時にエラーになる可能性があります。

  • TargetForcePriorityModeプロパティー
    力制御機能の目標力優先モードを設定します。

    メカ的な剛性など動作環境によっては、時間が十分経過しても目標力に到達しない場合があります。その場合、目標力優先モードを有効にすることで、目標力に到達するようにより大きく動くようになります。ただし、仮想弾性係数, 仮想粘性係数, 仮想慣性係数の設定通りの動作ではなくなります。通常は、目標力優先モードを無効にし、特性を十分に理解し必要な場合のみ使用してください。

  • LimitSpeedプロパティー
    力制御機能の実行中にロボットのハンド先端が動作する速度の最大値を設定します。

    設定は、並進速度, 回転速度, ジョイント速度の3つを指定します。力制御機能の実行中は設定された最大速度以上の速度は自動的に制限されます。強い力で押し付けをするなど、Highパワーモードで動作する必要があるが、低速度で動作させたい場合などに有効です。

  • LimitAccelプロパティー
    力制御機能の実行中に、ロボットのハンド先端が動作する加速度の最大値を設定します。

    設定は、並進加速度, 回転加速度, ジョイント加速度の3つを指定します。力制御機能の実行中は、設定された最大加速度以上の加速度は自動的に制限されます。

力制御機能の実行

力制御機能は、力制御機能のみを動作命令として実行するか、位置制御の動作命令に修飾パラメーターを付加することで位置制御と力制御機能を同時に実行します。力制御機能を実行した場合、力覚センサーの出力によって動作は常に変化するため、位置制御の目標位置に到達せず、同じ命令を実行しても毎回違う位置で終了します。

力制御機能のみを実行する場合は、FCKeepステートメントを実行します。また力制御機能を組み合わせることができる動作命令は、Move, BMove, TMove, CVMove, FCSMove, Arc, Arc3ステートメントです。
力制御機能を実行する場合は、各ステートメントにフォースコントロールオブジェクトを修飾パラメーターとして付加します。

Moveに力制御機能を組み合わせる例:

Move P1 FC1

各ステートメントの詳細は、次のマニュアルを参照してください。

  • "Epson RC+ 8.0 SPEL+ ランゲージリファレンス"
  • "Epson RC+ 8.0 オプション Force Guide 8.0 SPEL+ランゲージリファレンス"
    力制御機能を有効にした動作命令の詳細は、次のマニュアルを参照してください。
  • "Epson RC+ 8.0 オプション Force Guide 8.0 SPEL+ランゲージリファレンス"
    - Move

力制御機能は、動作命令と同時に開始され、動作命令の開始時に計算された移動時間を経過すると停止します。CF修飾パラメーターを付加することで動作命令の終了後も力制御機能の実行を継続することができます。ただし、60秒以内に別の力制御機能が有効な動作命令か、力制御機能の停止命令を実行しない場合はエラーとなります。

動作命令実行後、力制御機能を有効にしたまま一定時間待機するなどの場合は、FCKeepステートメントを使用してください。

力制御機能は、Till修飾パラメーターや、フォーストリガー機能と組み合わせることで、既定の力になるまで動作するなど、動作の終了条件を設定することができます。

キーポイント


力覚センサーのドリフトによって誤差が蓄積されるため、力制御機能は力覚センサーをリセットしてから10分以内でなければ実行することができません。力制御機能は、使用する直前に必ず外力がない状態で力覚センサーをリセットし、できるだけ短時間の実行となるようにしてください。

キーポイント


ロボットの特異点近傍では、力制御能は実行できません。特異点近傍を避けて、力制御機能を実行してください。力制御機能実行中に、特異点近傍に接近した場合は、エラーが発生します。