フォーストリガー機能のSPEL+プログラミング

概要

フォーストリガー機能とは、弊社の力覚センサーを用いて計測した力、またはトルクが、設定された条件になったことを検出する機能です。
結果を用いて、処理の開始, 終了, 分岐などが行えます。
フォーストリガー機能のプログラミングは、次の手順で実行します。

  1. 実行する座標系を設定する
  2. パラメーターを設定する
  3. フォーストリガー機能を実行する
  4. 結果を取得する

フォーストリガー機能の座標系

フォーストリガー機能は、フォース座標系にしたがって動作します。

フォーストリガー機能は、力覚センサーが検出した力, トルクからフォース座標系が受けた力, トルクを計算し、その値が設定された条件を満たしたかどうかを監視します。

フォース座標系の原点は、実際に接触し、力が発生する部分を指定してください。(例: ワークの端点など)
また、フォース座標系の方向は、アプリケーションによって異なります。ロボットの姿勢に関わらず常に一定の方向の力を監視する場合は、ベース座標系やローカル座標系を指定してください。

ロボットの把持するワークの進行方向など、ロボットの姿勢にしたがって変化する方向の力を監視する場合は、ツール座標系やカスタム座標系を指定してください。

フォーストリガー機能は、フォース座標系で指定した、次の合計8次元のデータが監視できます。

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

フォーストリガー機能のパラメーター

フォーストリガー機能のパラメーターは、フォーストリガーオブジェクトの各プロパティーで設定します。

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

  • ForceSensorプロパティー
    フォーストリガー機能を実行する力覚センサー番号を指定します。
  • CoordinateSystemプロパティー
    フォーストリガー機能を実行するフォース座標オブジェクトを指定します。
  • Operatorプロパティー
    フォーストリガー機能としての条件達成を、各軸の条件全てを達成したときか、どの軸の条件を達成したときかを指定します。
  • TriggerModeプロパティー
    力, トルクを監視するか、力, トルクの変化量を監視するかを指定します。
    変化量を指定した場合は1秒あたりの変化量を監視します。力覚センサーのノイズ影響を受けやすいため、ローパスフィルターを併用してください。
  • Fmag_Axesプロパティー
    Fx~Fzのどの軸を合成してFmagを計算するかを指定します。
    XY平面上に加わっている力を監視する場合は、XYを指定するなど、監視したい方向を指定します。
  • Tmag_Axesプロパティー
    Tx~Tz のどの軸を合成してTmagを計算するかを指定します。
  • Enabledプロパティー
    フォーストリガー機能を実行する軸をFx~Tmagについて指定します。
    アプリケーションで必要な軸のみフォーストリガー機能を有効にすることができます。
  • Polarityプロパティー
    各軸の力, トルクが、上下限値の範囲内になったときか、範囲外になったときかの、どちらを条件達成とするかを指定します。
    規定外の力が加わったことを検出する場合などは、範囲外を指定します。
    力が範囲内に収まったことを検出する場合などは、範囲内を指定します。
  • UpperLevelプロパティー
    フォーストリガー機能の上限値を設定します。
    設定値以下か、設定値を超えるかを監視します。
  • LowerLevelプロパティー
    フォーストリガー機能の下限値を設定します。
    設定値以上か、設定値未満かを監視します。
  • LPF_Enabledプロパティー
    フォーストリガー機能でローパスフィルターを実行する軸をFx~Tmagについて指定します。
    ノイズ軽減やインパルス的な力覚センサーの値は、無視するような場合に使用します。
  • LPF_TimeConstantプロパティー
    フォーストリガー機能で実行するローパスフィルターの時定数を指定します。
    値を大きくすると、よりノイズを軽減しますが、力覚センサー値への追従性が悪くなります。

フォーストリガー機能の実行

フォーストリガー機能は、Till, Wait, Trap, Findで指定します。

各命令の基本的な機能は、次のマニュアルを参照してください。
"Epson RC+ 8.0 SPEL+ ランゲージリファレンス"

ここでは、フォーストリガー機能について説明します。フォーストリガーの監視は各ロボットについて同時に15個まで監視できます。1台のロボットについて、同時に16個以上使用できません。

  • Till
    Tillステートメントのイベント式にフォーストリガーオブジェクトを指定することでフォーストリガー機能を動作の終了条件に設定することができます。これにより、指定された条件の力になったとき、動作を終了することができます。

    使用例:

    Till FT1
    Move P1 FC1 Till
    

    TillステートメントによってTill条件にフォーストリガーが設定され、Move動作中にフォーストリガーオブジェクトFT1に設定した条件を達成したとき、Move動作は動作途中であっても停止し次のステートメントを実行します。

  • Trap
    Trapステートメントのイベント式にフォーストリガーオブジェクトを指定することで、フォーストリガー機能を割り込み処理の開始条件に設定します。これにより、常に力を監視して、指定された条件の力になったとき、割り込みを開始することができます。

    使用例:

    Trap 1, FT1 Goto TrapLabel
    

    Trapステートメントによってフォーストリガー機能が実行され、条件の監視が開始されます。フォーストリガーオブジェクトFT1に設定した条件を達成したとき、指定したラベルに移行します。

  • Wait
    Waitステートメントのイベント式にフォーストリガーオブジェクトを指定することで、フォーストリガー機能を待機の終了条件に設定します。これにより、指定された条件の力になるまで待機します。

    使用例:

    Wait FT1
    

    Waitステートメントによってフォーストリガー機能が実行され、条件の監視が開始されます。フォーストリガーオブジェクトFT1に設定された条件が達成されるまでプログラムを一時停止させ、条件が達成したときそのプログラムを再開します。

  • Find
    Findステートメントのイベント式にフォーストリガーオブジェクトを指定することで、フォーストリガー機能を動作中に座標を保存する条件に設定します。これにより、指定された力になった位置を記録できます。

    使用例:

    Find FT1
    P0=FindPos
    

    Findステートメントによってフォーストリガー機能が実行され、条件の監視が開始されます。フォーストリガーオブジェクトFT1に設定された条件が達成された位置をコントローラーは記憶し、FindPos関数で、その位置を取得します。

    フォーストリガー機能は、TriggeredPosステータスで条件達成時の位置が取得できます。そのため、Findは複数の条件を組み合わせたイベント式を指定する場合に有効です。TriggeredPosステータスでは、そのフォーストリガーオブジェクトに設定された条件を達成した位置を取得できます。FindPos関数では、条件を組み合わせたイベント式が達成された位置を取得できます。

監視を開始したフォーストリガーオブジェクトは、FDelステートメントで削除しないでください。またマルチタスクでは、フォーストリガーオブジェクトを指定したTill, Wait, Trap, Findを同時に実行しないようにプログラムを作成してください。

フォーストリガー機能の結果取得

フォーストリガー機能の実行後、FGetステートメントでフォーストリガーオブジェクトのステータスを指定することで、その結果を取得できます。取得した結果を使用して、作業の成否判定や、条件分岐が行えます。

ステータスは、フォーストリガー機能の実行時に初期化され、フォーストリガー機能の終了時に結果が設定されます。設定された結果は、フォーストリガー機能を再度実行するか、プロジェクトをロードするまで保持されます。

  • Triggeredステータス
    フォーストリガー条件の達成状態を返します。

    直前のフォーストリガー機能で条件が達成されている場合は、“True”を返します。これを用いて、力が一定以上になったかどうかを判定し、処理を分岐できます。

  • TriggeredAxesステータス
    フォーストリガー条件の達成状態を軸ごとに返します。

    どの軸の力が一定以上になったかどうかなど、より詳細な条件を判定し、処理を分岐できます。

  • TriggeredPosステータス
    フォーストリガー条件を達成した座標を返します。

    条件を達成した位置が指定の範囲内かなどを判定し、位置によって処理を分岐できます。