RefPos ステータス
適用
ロボットオブジェクト Robot
解説
1個目の変数に、力制御ありの指令位置を返します。2個目の変数に、力制御の影響をのぞいた位置制御のみの指令位置を返します。
用法
FGet Robot.RefPos, Point1 ,Point2
Point1
ポイントデータを示す変数Point2
ポイントデータを示す変数
詳細説明
位置制御指令位置と力制御を含む指令位置を返します。
位置制御指令位置は、本来の動作コマンドが動こうとした仮想的な軌道を示します。
力制御を含む指令位置は、位置制御指令位置に力制御による移動量を加算した軌道で、ロボットが実際に動作している軌道です。
2つの指令値の差分を見ることにより、本来の軌道からどれだけ移動しているかが分かります。これは想定される移動量以上に移動していないかチェックすることや、移動する傾向を分析する場合に有効です。
使用例
力制御によって一定以上移動したことを検出してロボット動作を停止します。
Function RefPosTest
FSet FCS1.Orientation, FG_TOOL ' フォース座標データの設定
FSet FC1.CoordinateSystem, FCS1 ' フォース座標データを指定
FSet FC1.Fx_Spring, 0 ' Fxの仮想弾性係数を設定
FSet FC1.Fx_Damper, 1 ' Fxの仮想粘性係数を設定
FSet FC1.Fx_Mass, 10 ' Fxの仮想慣性係数を設定
FSet FC1.Fx_Enabled, True ' Fxの力制御を有効に設定
Xqt RefPosCheck ' 監視用の別タスク起動
Move P0 FC1 ' 力制御あり のMove動作
Quit RefPosCheck ' 監視用の別タスクを終了
Fend
Function RefPosCheck
Do
FGet Robot.RefPos, P1, P2 ' RefPos取得
If Abs(CX(P1) - CX(P2)) 50 Then ' 差分が50以上かチェック
Print "Err" ' 差分が大きすぎるときエラー
AbortMotion All ' 動作を停止する
EndIf
Wait 0.1
Loop
Fend
参照
ロボットオブジェクト Robot