フォースモニター機能のSPEL+プログラミング

概要

フォースモニター機能とは、弊社の力覚センサーを用いて力またはトルクを計測する機能です。
結果を用いて、アプリケーション作成時のパラメーター調整や、ワークごとに作業でかかった力の記録や管理ができます。
フォースモニター機能のプログラミングは、次の手順で実行します。

  1. 実行する座標系を設定する
  2. パラメーターを設定する
  3. フォースモニター機能を実行, 計測する

フォースモニター機能の座標系

フォースモニター機能は、フォース座標系にしたがって動作します。

フォースモニター機能は、力覚センサーが検出した力, トルクから、フォース座標系が受けた力, トルクを計算し、その値を取得したり、平均値やピーク値を計算したりします。

フォース座標系の原点は、実際に接触し、力が発生する部分を指定してください。(例: ワーク端点など)

また、フォース座標系の方向は、アプリケーションによって異なります。ロボットの姿勢に関わらず常に一定の方向の力を計測する場合はベース座標系やローカル座標系を指定してください。ロボットの把持するワークの進行方向など、ロボットの姿勢にしたがって変化する方向の力を計測する場合は、ツール座標系やカスタム座標系を指定してください。
フォースモニター機能は、フォース座標系で指定した、次の合計8次元のデータが計測できます。

  • Fx~Tzの6軸
  • Fmag: 並進力の合成力
  • Tmag: トルクの合成トルク

フォースモニター機能のパラメーター

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

  • ForceSensorプロパティー
    フォースモニター機能を実行する力覚センサー番号を指定します。
  • CoordinateSystemプロパティー
    フォースモニター機能を実行するフォース座標オブジェクトを指定します。
  • Fmag_Axesプロパティー
    Fx~Fz のどの軸を合成してFmagを計算するかを指定します。
    XY平面に平行な方向に加わっている力を計測する場合は、XYを指定するなど、計測したい方向を指定します。
  • Tmag_Axesプロパティー
    Tx~Tz のどの軸を合成してTmagを計算するかを指定します。
  • LPF_Enabledプロパティー
    フォースモニター機能でローパスフィルターを実行する軸をFx~Tmagについて指定します。
    ノイズ軽減やインパルス的な力覚センサーの値は、無視するような場合に使用します。
  • LPF_TimeConstantプロパティー
    フォースモニター機能で実行するローパスフィルターの時定数を指定します。
    値を大きくすると、よりノイズを軽減しますが、力覚センサー値への追従性が悪くなります。

フォースモニター機能の実行

フォースモニター機能では、次の操作を実行できます。

  • 力覚センサー値の取得
  • 力覚センサー値の記録
  • 平均値の取得
  • ピーク値の取得
力覚センサー値の取得
フォースモニターオブジェクトの、Forceプロパティーを実行し、力覚センサー値を取得できます。
使用例:
FGet FM1.Forces, rVar()
実数型配列変数rVarに、Fx~Tmagまでの8次元の力覚センサー値を取得します。
取得する力覚センサー値は、最新の値です。
平均値の取得
フォースモニターオブジェクトの、AvgForceClearプロパティーを実行し、力覚センサーの平均値計算を開始します。
開始後、AvgForceステータスにより平均値を取得できます。
使用例:
FSet FM1.AvgForceClear, True, True, True, True, True, True, True, True
FGet FM1.AvgForces, rVar()
実数型配列変数rVarに、Fx~Tmagまでの8次元の力覚センサーの平均値を取得します。
AvgForceステータスを実行する前には必ずAvgForceClearプロパティーで平均値計算を開始してください。計算を開始していない場合は、“0”が取得されます。
一度AvgForceステータスを実行すると平均値の計算は停止されます。連続して平均値を取得する場合は、平均値を取得する度に、再度平均値計算を開始してから平均値を取得してください。
また平均値計算を開始し、1分以上経過してからAvgForceステータスを実行した場合エラーになります。1分以内に実行するか、再度平均値計算を開始してください。
ピーク値の取得
フォースモニターオブジェクトの、PeakForceClearプロパティーを実行し、力覚センサーのピーク値計算を開始します。
開始後、PeakForceステータスによりピーク値を取得できます。
使用例:
FSet FM1.PeakForceClear, True, True, True, True, True, True, True, True
FGet FM1.PeakForces, rVar()
実数型配列変数rVarに、Fx~Tmagまでの8次元の力覚センサーのピーク値を取得します。
PeakForceステータスを実行する前には必ずPeakForceClearプロパティーで平均値計算を開始してください。計算を開始していない場合は、“0”が取得されます。
一度PeakForceステータスを実行すると、ピーク値の計算は停止されます。連続してピーク値を取得する場合は、ピーク値を取得する度に、再度ピーク値計算を開始してからピーク値を取得してください。
力覚センサー値の記録
フォースモニターオブジェクトの、RecordStartプロパティーを実行すると、力覚センサー値をファイルに記録できます。
これにより、各作業の情報をファイルに保存することができます。
使用例:
FSet FM1.Label, "ForceLog"
FSet FM1.RecordStart, 30, 0.1
RecordStartプロパティーで30秒間、0.1秒間隔でファイルに力覚センサー値などの記録を開始します。記録開始の前に、ファイル名はLabelプロパティーに設定したラベルと開始時刻から決定します。記録開始後、プログラムは次のステートメントへ進みます。