TriggerMode (FMR#) プロパティー
適用
フォース動作制限オブジェクトFMR#
解説
フォース動作制限の監視対象を設定、または返します。
即時実行
いいえ
用法
FGet Object.TriggerMode, iVar
FSet Object.TriggerMode, iValue
Object
オブジェクト名
オブジェクトは、FMR(数値), FMR(ラベル)のどちらかとして指定します。iVar
プロパティーの値を示す整数変数iValue
プロパティーの新しい値を示す整数値、または式
値
iValue
定数名 | 値 | 内容 |
---|---|---|
FG_ABS_COORD_SYS | 0 | RobotLocalプロパティーで選択したベースまたはローカル座標系を基準として、現在の位置姿勢を監視します。 |
FG_REL_COORD_SYS | 1 | RobotLocalプロパティーで選択したベースまたはローカル座標系を基準として、監視開始時の位置姿勢から、現在の位置姿勢までの移動量を監視します。 |
FG_REL_TOOL | 2 | 監視開始時のツール座標系から、現在の位置姿勢までの移動量を監視します。 |
FG_REL_POINT | 3 | DatumPointで指定した位置から、現在の位置姿勢までの移動量を監視します。 |
FG_FRC_CORRECTION | 4 | 力制御機能の補正量を監視します。 |
FG_ABS_JOINT | 5 | 各関節角度を監視します。 |
FG_REL_JOINT | 6 | 監視開始時の各関節角度からの関節の回転量を監視します。 |
詳細説明
フォース動作制限の監視対象を設定、または返します。
- FG_ABS_COORD_SYS
RobotLocalプロパティーで指定したベースまたはローカル座標系から見た、現在の位置姿勢を監視対象とします。LowerLevelとUpperLevelはRobotLocalで指定したローカル座標系における値として固定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化しません。動作開始位置にかかわらず、常にある範囲に入ることや、出ることを条件とする場合に使用します。
位置は基準とするベースまたはローカル座標系における現在のX, Y, Zで判定します。指定軸にXを指定した場合、下図のように、ローカル座標系におけるX方向の位置を判定します。
姿勢は基準とするベースまたはローカル座標系とツール座標系のRot_Axesプロパティーで指定した軸(X, Y, Z)のなす角度か、任意軸の回転量のいずれかで判定します。指定軸にXを指定した場合、下図のように基準座標系のXと現在のツール座標系のX軸のなす角度を判定します。
- FG_REL_COORD_SYS
監視開始時と現在のツール位置姿勢について、RobotLocalプロパティーで指定したベースまたはローカル座標系での相対移動量を監視対象とします。LowerLevelとUpperLevelは開始位置を基準として設定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化します。ビジョンシステムや、フォーストリガー機能などにより開始位置を求めるなど、動作や監視の開始位置が変化する場合において、あるローカル座標系において、指定方向に指定距離以上動いたことを検出する場合に使用します。
位置は基準とするベースまたはローカル座標系における監視開始時から現在位置へのX, Y, Zの移動量で判定します。指定軸にXを指定した場合、下図のように、ローカル座標系におけるX方向の移動量を判定します。
姿勢は監視開始時と現在のツール座標系のRot_Axesプロパティーで指定した軸(X, Y, Z)のなす角度か、任意軸の回転量のいずれかで判定します。指定軸にXを指定した場合、下図のように開始時のX軸と現在のX軸のなす角度を判定します。
- FG_REL_TOOL
監視開始時のツール座標系から現在位置までの相対移動量を監視対象とします。LowerLevelとUpperLevelは開始位置を基準として設定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化します。ビジョンシステムや、フォーストリガー機能などにより開始位置を求めるなど、動作や監視の開始位置が変化する場合において、開始時のツール座標系において、指定方向に指定距離以上動いたことを検出する場合に使用します。
位置は監視開始時のツール座標系における監視開始時から現在位置へのX, Y, Zの移動量で判定します。指定軸にXを指定した場合、下図のように、開始時のツール座標系におけるX方向の移動量を判定します。
姿勢は監視開始時と現在のツール座標系のRot_Axesプロパティーで指定した軸(X, Y, Z)のなす角度か、任意軸の回転量のいずれかで判定します。指定軸にXを指定した場合、下図のように開始時のX軸と現在のX軸のなす角度を判定します。
- FG_REL_POINT
DatumPointプロパティーで指定したポイントデータからみた現在位置までの相対移動量を監視対象とします。LowerLevelとUpperLevelは指定したポイントデータを基準として設定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化しません。ただし、動作開始前にポイントデータを更新すると、動作毎に開始位置に依存する監視を実現できます。FG_REL_COORD_SYSやFG_REL_TOOLでは、開始時の位置に依存して監視範囲を変更できますが、下記のプログラムのように複数の動作命令に監視のためのTillを指定する場合、監視は動作命令毎に行われます。そのため、複数の動作命令を実行する間例えば1つ目の動作開始位置を基準として位置を監視することはできません。
Move P1 FC1 Till FMR1 Move P2 FC1 Till FMR1
その場合はFG_REL_POINTを使用し、1つ目の動作前に、動作開始位置をDatumPointプロパティーで指定するポイントに保存してください。
P1 = Here Move P1 FC1 Till FMR1 Move P2 FC1 Till FMR1
ビジョンシステムや、フォーストリガー機能などにより開始位置を求めるなど、動作や監視の開始位置が変化する場合において、さらに複数の動作の間、ある位置からの移動量を監視する場合に使用します。また、1つの動作命令であって、開始位置からオフセットした位置を基準として監視する考える場合に使用できます。
位置はDatumPointに指定したポイントデータから現在位置へのX, Y, Zの移動量で判定します。指定軸にXを指定した場合、下図のように、指定したポイント座標系におけるX方向の移動量を判定します。
姿勢はDatumPointに指定したポイントデータと現在のツール座標系のRot_Axesプロパティーで指定した軸(X, Y, Z)のなす角度か、任意軸の回転量のいずれかで判定します。指定軸にXを指定した場合、下図のように指定したポイントデータのX軸と現在のX軸のなす角度を判定します。
- FG_FRC_CORRECTION
力制御機能による補正量を監視対象とします。補正量はフォース座標系における、本来の動作コマンドが動こうとした仮想的な指令位置(RefPos)と力制御機能による補正を含む指令位置との差分です。フォース座標系はフォースコントロールオブジェクト(FC)のCoordinateSystemプロパティーで指定したフォース座標系オブジェクト(FCS)に従います。力制御機能による補正が、想定範囲から逸脱することを検出できます。
位置はフォース座標系のFx, Fy, Fz方向の補正量をX, Y, Zとして判定します。指定軸にXを指定した場合、下図のように、Fx方向の移動量を判定します。
姿勢はRefPosとCurPosのRot_Axesプロパティーで指定した軸(X, Y, Z)のなす角度か、任意軸の回転量のいずれかで判定します。指定軸にXを指定した場合、下図のようにRefPosのX軸とCurPosのX軸のなす角度を判定します。
- FG_ABS_JOINT
各ジョイントの現在の関節位置を監視対象とします。LowerLevelとUpperLevelはロボットの関節位置に固定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化しません。動作開始位置にかかわらず、常にある範囲に入ることや、出ることを条件とする場合に使用します。
- FG_REL_JOINT
各ジョイントについて、監視開始時の位置から現在の関節位置までの移動量を監視対象とします。LowerLevelとUpperLevelは監視開始位置を基準として設定されるため、外から見た制限範囲は、監視開始時のロボットの位置姿勢によって変化します。ビジョンシステムや、フォーストリガー機能などにより開始位置を求めるなど、動作や監視の開始位置が変化する場合において、開始時から指定したジョイントが指定角度以上動いたことを検出する場合に使用します。
使用例
FG_ABS_COORD_SYSを指定してベース座標系において、力制御機能を有効にしながらZ位置が100[mm]以下になるまで移動する例です。
Function ABS_COORD_SYS_Test
Motor On
Go Here :Z(150) ' 初期位置としてZ=150[mm]に移動
FSet FCS1.Orientation, FG_BASE ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_ABS_COORD_SYS
' 指定座標系における位置を監視するように設定
FSet FMR1.RobotLocal, 0 ' 位置の座標系として0(ベース)を設定
FSet FMR1.PosZ_Enable, True ' Z方向の監視を有効
FSet FMR1.PosZ_Levels, -100, 100 ' Z方向の範囲を-100~100[mm]に設定
FSet FMR1.PosZ_Polarity, FG_IN ' 範囲内になることを達成条件として設定
Move Here -Z(100) FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_REL_COORD_SYSを指定してローカル1座標系において、力制御機能を有効にしながらローカル1のZ位置に±100[mm]以上動いた場合停止する例です。例には記載しませんが、開始位置はビジョンシステムで検出するなど動作毎に変化することを想定しています。
Function REL_COORD_SYS_Test
Motor On
FSet FCS1.Orientation, FG_LOOCAL, 1 ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_REL_COORD_SYS
' 指定座標系における移動量を監視するように設定
FSet FMR1.RobotLocal, 1 ' 位置の座標系としてローカル1を設定
FSet FMR1.PosZ_Enable, True ' Z方向の監視を有効
FSet FMR1.PosZ_Levels, -100, 100 ' Z方向の範囲を-100~100[mm]に設定
FSet FMR1.PosZ_Polarity, FG_OUT ' 範囲外になることを達成条件として設定
Move P0 FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_REL_TOOLを指定して、力制御機能を有効にしながら開始時のツール座標系のZ方向に+100[mm]以上動いた場合停止する例です。例には記載しませんが、開始位置はビジョンシステムで検出するなど動作毎に変化することを想定しています。
Function REL_TOOL_Test
Motor On
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_REL_TOOL
' ツール座標系における移動量を監視するように設定
FSet FMR1.PosZ_Enable, True ' Z方向の監視を有効
FSet FMR1.PosZ_Levels, 100, 200 ' Z方向の範囲を100~200[mm]に設定
FSet FMR1.PosZ_Polarity, FG_IN ' 範囲内になることを達成条件として設定
Move Here +TLZ(200) FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_REL_POINTを指定して、開始時の位置を基準として、力制御機能を有効にした動作命令を複数実行する間、1つ目の開始時のツール座標系のZ方向に±100[mm]以上動いた場合停止する例です。例には記載しませんが、各ポイントはビジョンシステムで検出するなど動作毎に変化することを想定しています。
Function REL_POINT_Test
Motor On
Go P1 ' 初期位置としてP1へ移動
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_REL_POINT
' ポイントからの移動量を監視するように設定
FSet FMR1.DatumPoint, P1 ' 基準位置としてP1を設定
FSet FMR1.PosZ_Enable, True ' Z方向の監視を有効
FSet FMR1.PosZ_Levels, -100, 100 ' Z方向の範囲を-100~100[mm]に設定
FSet FMR1.PosZ_Polarity, FG_OUT ' 範囲外になることを達成条件として設定
Move P2 FC1 Till FMR1
Move P3 FC1 Till FMR1
Move P4 FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_FRC_CORRECTIONを指定して、力制御機能を有効にした動作命令を複数実行する間、Fz方向に±100[mm]以上動いた場合停止する例です。
Function FRC_CORRECTION_Test
Motor On
Go P1 ' 初期位置としてP1へ移動
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_FRC_CORRECTION
' 力制御補正量を監視するように設定
FSet FMR1.PosZ_Enable, True ' Z方向の監視を有効
FSet FMR1.PosZ_Levels, -100, 100 ' Z方向の範囲を-100~100[mm]に設定
FSet FMR1.PosZ_Polarity, FG_OUT ' 範囲外になることを達成条件として設定
Move P2 FC1 Till FMR1
Move P3 FC1 Till FMR1
Move P4 FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_ABS_JOINTを指定して、力制御機能を有効にした動作命令を複数実行する間、J5が-5[deg]以上に動いた場合停止する例です。
Function ABS_JOINT_Test
Motor On
Go JA(0, 0, 0, 0, -90, 0) ' 初期位置としてJ5を-90[deg]へ移動
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_ABS_JOINT ' 関節位置を監視するように設定
FSet FMR1.J5_Enable, True ' J5の監視を有効
FSet FMR1.J5_Levels, -5, 100 ' J5の範囲を-5~100[mm]に設定
FSet FMR1.J5_Polarity, FG_IN ' 範囲内になることを達成条件として設定
Move P1 FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
FG_REL_JOINTを指定して、力制御機能を有効にした動作命令を複数実行する間、J5が±30[deg]以上に動いた場合停止する例です。例には記載しませんが、開始位置はビジョンシステムで検出するなど動作毎に変化することを想定しています。
Function FG_REL_JOINT_Test
Motor On
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fz_Spring, 0 ' Fzの仮想弾性係数を設定
FSet FC1.Fz_Damper, 1 ' Fzの仮想粘性係数を設定
FSet FC1.Fz_Mass, 10 ' Fzの仮想慣性係数を設定
FSet FC1.Fz_Enabled, True ' Fzの力制御機能を有効に設定
FSet FMR1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FMR1.TriggerMode, FG_REL_JOINT ' 関節移動量を監視するように設定
FSet FMR1.J5_Enable, True ' J5の監視を有効
FSet FMR1.J5_Levels, -30, 30 ' J5の範囲を-5~100[mm]に設定
FSet FMR1.J5_Polarity, FG_IN ' 範囲内になることを達成条件として設定
Move P2 FC1 Till FMR1
' Tillによって終了条件を監視しながら力制御機能を有効にしたMove動作を実行
Fend
参照
DatumPointプロパティー, RefPos, RobotLocalプロパティー, フォース動作制限オブジェクトFMR#