ID : 17609
ForceParam
機能
力制御機能のパラメータを設定します。
構文
ForceParam 力制御番号, 座標系, 目標制御力 [,Rate = 制御割合][,PosEralw = 位置偏差許容]
[,Eralw = 各軸偏差許容][,Damp = 粘性][,SpMax = 最大並進速度]
[,RSpMax = 最大回転速度][,Mass = 慣性][,Spring = 柔らかさ]
指定項目
- 力制御番号
- 力制御番号 (力制御機能のパラメータテーブル番号) 1~10を選択します。整数型データで指定します。
- 座標系
- 座標を[0 : ベース座標系]、[1 : ツール座標系]、[2 : ワーク座標系]より選択します。整数型データで指定します。
- 目標制御力
- ロボットを制御するための力で、設定した力以上は出力しません。この値を小さくすると、小さな外力に倣って動作するようになります。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。
- 制御割合
- X、Y、Z方向、X軸回り、Y軸回り、Z軸回りの制御割合を設定します。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。省略可能です。
通常、力制御したい方向は制御割合を100%にしてください。力制御したくない方向は制御割合を0%にしてください。 - 位置偏差許容
- 手先位置のサーボ偏差許容値を設定します。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。省略可能です。
- 各軸偏差許容
- 各軸のサーボ偏差許容値を設定します。ジョイント型データで指定します。省略可能です。付加軸は指定しても無効です。
- 粘性
- 速度に応じて増加する抵抗力の割合を設定します。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。省略可能です。
- 最大並進速度
- 手先並進速度制限値[mm/s]を設定します。整数型、単精度実数型、倍精度実数型、バリアント (Variant) 型、文字列型データで指定します。省略可能です。
- 最大回転速度
- 手先回転速度制限値[deg/s]を設定します。整数型、単精度実数型、倍精度実数型、バリアント (Variant) 型、文字列型データで指定します。省略可能です。
- 慣性
- 加速度に応じて増加する抵抗力の割合を設定します。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。省略可能です。
- 柔らかさ
- 位置に応じて増加する戻り力の強さの割合を設定します。ポジション型データ(X、Y、Z、RX、RY、RZ)で指定します。省略可能です。
解説
力制御機能のパラメータを設定します。
注意事項
- ロボット制御権を取得 (TakeArm) したタスクにて実行してください。ロボット制御権未取得の場合は、エラー[83501024 アームセマフォを取得できません。]が発生します。
- 力制御が有効の場合は、[力]のみ変更可能です。[粘性]、[慣性]、[柔らかさ]を変更したい場合は、ForceChangeTableを使用してください。
- [座標系]で[1 : ツール座標系]を選択した場合、ツール座標は、力制御有効設定 (ForceCtrl) 時のツール座標となります。力制御中にChangeToolは反映されますが、力制御中に変更すると挙動が不安定になるため、座標系は変更しないでください。
- [座標系]で[2 : ワーク座標系]を選択した場合、ワーク座標は、力制御有効設定 (ForceCtrl) 時のワーク座標となります。力制御中にChangeWorkは反映されますが、力制御中に変更すると挙動が不安定になるため、座標系は変更しないでください。
- 手先の位置、各軸偏差が設定した許容値を超えた場合、エラー[8320152E 力制御、手先位置偏差異常]が発生します。
- [粘性] は、[柔らかさ] にて設定した柔らかさ割合より小さい値を設定しないでください。柔らかさ割合より小さい値を設定した場合、ロボットが振動し、エラー停止する場合があります。
- パラメータの調整時は、[力]と[制御割合]を最初に設定してください。
- パラメータの調整は、スマートTPでもコマンドでもできます。併用すると、混乱により誤った設定を行う恐れがありますので、どちらかに統一して実施することをお勧めします。
- 力制御機能では制御したい方向と、Move命令などのロボット動作命令の動作方向が一致している場合は、指定した力通りに制御はできませんので、制御を開始したい位置まで移動したらMotionSkipでロボット動作命令をスキップさせてください。
- [接触判定力] または [接触判定モーメント] が [目標制御力]より大きい値に設定されている場合は、エラー[0x83201D13: 制御できない目標制御力が設定されています] が発生します。[接触判定力]、[接触判定モーメント] を変更したい場合は、ForceSensorParamを使用してください。
- [力制御制限力] または [力制御制限モーメント] が [目標制御力]より小さい値に設定されている場合は、エラー[0x83201D13: 制御できない目標制御力が設定されています] が発生します。[力制御制限力]、[力制御制限モーメント] を変更したい場合は、ForceSensorParamを使用してください。
用例
用例1
Sub Main 'プログラムを開始します。
Takearm keep = 1 'アームグループの制御権を取得します。
Move P,@E P2 'P2へ移動します。
ForceParam 1,1,P(100,100,0,100,100,100)'力制御番号、座標系、各要素の外力に対する
'閾値を設定します。
ForceCtrl ON,1 '力制御機能を有効にします。
Move L,@0 P3 'P3へ移動します。
:
'アンチャック動作を呼び出します。
:
Move L,@0 P2 'P2へ移動します。
ForceCtrl OFF '力制御機能を無効にします。
:
:
End Sub 'プログラムを終了します。
用例2
'ツール座標系でZ方向に10Nの力を加える
ForceParam 1, 1, P(0, 0, 10, 0, 0, 0), Rate = P(0, 0, 100, 0, 0, 0)
ID : 17609

