Move ステートメント

解説
力制御機能を有効にした、直線補間動作を行います。

用法
Move P# [FC#] [ROT] [CF] [CP] [Till | Find] [!並列処理!] [SYNC]

  • P#
    動作の目標位置を示すポイントデータを指定します。

  • FC#
    フォースコントロールオブジェクトを指定します。

  • CF
    力制御機能を継続します。省略可能です。

詳細説明
通常のMove命令に、フォースコントロールオブジェクトをパラメーターとして付加することで力制御機能を有効にしたMove動作を行います。動作中の力によって軌道が変わるため、同じ命令を実行しても同一の軌道を描くとは限らず、目標位置とは違う位置で停止することがあります。

力制御機能は、フォースコントロールオブジェクトの各プロパティーに基づいて動作します。フォースコントロールオブジェクトの各プロパティーを確かめてから実行してください。

力制御機能の実行中は、フォースコントロールオブジェクトのLimitSpeed、およびLimitAccelによって速度, 加速度が制限されます。各プロパティーの詳細は、該当項目を参照してください。

CFパラメーターを付加することで、力制御機能を次の動作まで継続することができます。これにより、本来のMove動作の軌道生成が終了した時点でステートメントは次へ進みますが、力制御機能は有効なまま継続させることができます。また、CPパラメーターを付加するときは、CFパラメーターを付加しなければなりません。CPパラメーターが付加されている場合、通常のパスモーションに加えて、力制御機能が継続されます。

またCFパラメーターによる力制御機能の継続は、フォースコントロールオブジェクトの変化に、以下の様な制約があります。

プロパティー名 前動作のパラメーター 後動作のパラメーター 変化の可否
Enabled False True OK
True False NG
LimitAccel OK
NG
LimitSpeed OK
NG
TargetForcePriorityMode False True NG
True False NG
CoordinateSystem FCSX FCSX OK
FCSX FCSY NG

またCFパラメーターが付加されている場合、直後に通常動作を行うことはできません。力制御機能を有効にした後に通常動作コマンドを実行したい時は、CFパラメーターを付加しないか、FCEndステートメントを実行して、力制御機能を終了させてください。
Till修飾子を付加することで通常動作と同じように、ある条件によって動作を停止させることができます。Till修飾子の詳細は、下記マニュアルと、フォーストリガーオブジェクトの解説を参照してください。
"Epson RC+ 8.0 SPEL+ ランゲージリファレンス" Till
力制御機能の実行中のTillは、通常動作を停止させてから力制御機能による速度を減速します。また、CFパラメーターが付加されている場合は、動作コマンドを停止させますが、力制御機能は継続されます。力制御機能も停止したい場合は、CFパラメーターを付加しないか、FCEndステートメントを実行してください。

力制御機能の実行中に一時停止した場合、力制御機能を再開することはできません。一度動作を終了してから次の動作を行うようにしてください。
以下のコマンドは、力制御機能の実行中に使用できません。FCEndステートメントを実行して、力制御機能を終了させてから実行してください。

Arm

ArmClr

ArmSet

Base

Brake

Calib

CP

ECP

ECPClr

ECPSet

Elbow

Encreset

Hand

Here

Home

J1Angle

J1Flag

J2Flag

J4Flag

J6Flag

Local

LocalClr

Mcal

Motor

Power

PTPTime

SFree

TLClr

TLSet

Tool

WaitPos

Where

Wrist

スカラ型ロボット(RSシリーズ含む)の場合、FCオブジェクトの参照するFCSオブジェクトの設定に関わらず、次の場合に、力制御機能を実行できません。

  • ベース座標系、または選択されているツール座標系のVかWのパラメーターが、0でないとき
  • FCオブジェクトのTx_EnabledプロパティーかTy_Enabledプロパティーが、Trueのとき

FCオブジェクトの参照するFCSオブジェクトのOrientationプロパティーに、ローカル座標系を設定しているときは、次の場合にも、力制御機能を実行することができません。

  • FCSオブジェクトの参照する番号のローカル座標系のVかWのパラメーターが、0でないとき

FCオブジェクトの参照するFCSオブジェクトのOrientationプロパティーにカスタム座標系を設定しているときは、次の場合にも、力制御機能を実行することができません。

  • OrientationプロパティーのVかWのパラメーターが、0でないとき

スカラ型ロボット(RSシリーズ含む)、6軸型ロボット(Nシリーズ含む)以外のロボットで力制御機能を実行することはできません。

力制御機能と軌道


  • MoveをFCとともに用いる

CFパラメーター、およびCPパラメーターを付加しない場合、1つの動作命令の終了ごとに、ロボットは位置決めされます。次の命令は、位置決めされた位置から目標位置までの軌道を計画します。
下図は、次のプログラムを実行したときの動作軌道です。

Move P1 FC1  
Move P2 FC1  

画像
1つ目のMoveは、初期位置P0から目標位置P1までの軌道(点線)を計画し、動作を開始します。
このとき力制御機能により補正されるため、ロボットは、P1’に移動します。(実線)
ロボットはP1’に位置決めされ、一度停止します。
2つ目のMoveは、位置決めされたP1’からP2までの軌道(点線)を計画しますが、1つ目のMoveと同様に力制御機能に補正されP2’へ移動します。(実線)

  • MoveをFC, Tillとともに用いる

下図は、次のTillを用いたプログラムを実行したときの動作軌道です。

Move P1 FC1 Till  
Move P2 FC1  

画像
1つ目のMoveは、初期位置P0から目標位置P1までの軌道(点線)を計画し、動作を開始します。
このとき力制御機能により補正されるため、ロボットはP1’に向けて移動します。(実線)
動作中、Till条件が成立した場合、計画した軌道上ではP1’’で停止しますが、力制御機能により補正されるため、ロボットは、P1’で停止し位置決めされます。
2つ目のMoveは、位置決めされたP1’からP2までの軌道(点線)を計画しますが、1つ目のMoveと同様に力制御機能に補正されP2’へ移動します。(実線)
1つ目のMove動作中にTill条件が成立しない場合は、“Move をFCとともに用いる”と同様に動作します。

  • MoveをFC, CFとともに用いる

CFパラメーターを付加する場合、1つの動作命令が終了しても力制御機能は継続され、ロボットは位置決めされません。次の命令は、本来計画した目標位置と次の目標位置から軌道を計画します。
下図は、次のプログラムを実行したときの動作軌道です。

Move P1 FC1 CF  
Move P2 FC1  

画像
1つ目のMoveは、初期位置P0から目標位置P1までの軌道(点線)を計画し、動作を開始します。このとき力制御機能により補正されるため、ロボットは、P1’に移動します。(実線)CFパラメーターが付加されているため、ロボットは位置決めされず、力制御機能を継続します。
2つ目のMoveは、1つ目のMoveの目標位置P1からP2までの軌道(点線)を計画します。そして、現在の位置 P1’にその相対移動量を加算した位置に向けて動作を開始します。(点線)このとき、1つ目のMoveと同様に力制御機能によって補正されP2’へ移動します。(実線)

  • MoveをFC, CF, Tillとともに用いる

下図は、次のプログラムを実行したときの動作軌道です。

Move P1 FC1 CF Till  
Move P2 FC1  

画像
1つ目のMoveは、初期位置P0から目標位置P1までの軌道(点線)を計画し、動作を開始します。このとき力制御機能により補正されるため、ロボットは、P1’に移動します。(実線)動作中、Till条件が成立した場合、ロボットは、計画した軌道に対する動作を停止します。(P1”)しかしCFパラメーターが付加されているため、ロボットは位置決めされず、力制御機能を継続します。
2つ目のMoveは、1つ目のMoveの計画した軌道上の停止位置P1”からP2までの軌道(点線)を計画します。そして、現在の位置P1’にその相対移動量を加算した位置に向けて動作を開始します。(点線)このとき、1つ目のMoveと同様に力制御機能によって補正されP2’へ移動します。(実線)

RefPosプロパティーを用いることで、計画した軌道上の現在位置、および実際の現在位置を取得することができます。ただしCFによって力制御を継続している場合、実際の現在位置は常に変化しつづけます。 これらを用いてTill条件成立による停止後に相対移動量を指定することができます。
下図は、次のプログラムを実行したときの動作軌道を示します。

Move P1 FC1 CF Till  
FGet Robot.RefPos, P2, P3  
Move P3 +X(100) FC1  

画像
Till条件成立によって停止したときの計画した軌道上の停止位置P1”は、P3になります。P3を基準とし位置制御としての相対移動量を指定することができます。

  • MoveをFC, CF, CPとともに用いる

CFパラメーターを付加する場合、1つの動作命令が終了しても力制御機能は継続され、ロボットは位置決めされません。次の命令は本来計画した目標位置と次の目標位置から軌道を計画します。またCPパラメーターを付加する場合、1つの動作命令の減速開始と同時に制御は次のステートメントに移ります。これにより連続した複数の動作をつなげることができます。
下図は、次のプログラムを実行したときの動作軌道です。

Move P1 FC1 CF CP  
Move P2 FC1  

画像
1つ目のMoveは、初期位置P0から目標位置P1までの軌道(点線)を計画し、動作を開始します。このとき力制御機能により補正されるため、ロボットはP1’に移動します。(実線)
計画した軌道が減速を開始したとき (P1’’)、2つ目のMoveは、1つ目のMoveの目標位置P1からP2までの軌道(直線の点線)を計画し、1つ目のMoveの計画した軌道と合成します。(曲線の点線)ロボットは現在の位置P1’にその相対移動量を加算した位置に向けて動作を開始します。(点線)このとき、力制御機能は常に継続して補正するためP2’へ移動します。(実線)

  • MoveをFC, CF, CP, Tillとともに用いる

次のプログラムのようにフォースコントロールオブジェクト, CFパラメーター, CPパラメーター, Till修飾子を同時に用いた場合は次の様に動作します。

Move P1 FC1 CF CP Till  
Move P2 FC1  

1つ目のMoveが減速を開始するまでにTill条件が成立した場合は、“MoveをFC, CF, Tillとともに用いる”と同様に動作します。
1つ目のMoveが減速を開始するまでにTill条件が成立しない場合は、“MoveをFC, CF, Tillとともに用いる”と同様に動作します。減速開始と同時に次の動作命令が実行されるため、Tillの条件判定も同時に終了します。

使用例
力制御機能を有効にしたMove動作を実行する簡単なプログラム例です。
この例では、ツール座標系のX軸方向に力制御機能が有効になった状態で、Moveを実行します。

Function ForceMoveTest
  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の力制御機能を有効に設定

  Move P0 FC1                       ' 力制御機能を有効にしたMove動作
Fend

次にCFパラメーターを使ったプログラム例です。
この例では、現在位置からP0へ移動し、P1に移動するまでフォースコントロールオブジェクトFC1を用いて力制御機能を実行します。動作完了時に力制御機能も終了します。その後、P2へ移動し、P3へ移動するまでフォースコントロールオブジェクトFC2を用いて力制御機能を実行します。P3への移動が完了した時、CFパラメーターによって力制御機能が継続されますが、FCEndステートメントによって力制御機能は終了します。その後、P4へ移動してから5秒間経過するまでフォースコントロールオブジェクトFC3を用いて力制御機能を継続します。移動後に一定時間力制御機能を継続する場合はFCKeepステートメントを使用します。

FCkeep, FCendの詳細は、各ステートメントの説明を参照してください。

Function ForceMoveCFTest
  Move P0 FC1 CF
  Move P1 FC1

  Move P2 FC2 CF
  Move P3 FC2 CF
  FCEnd

  Move P4 FC3 CF
  FCKeep FC3, 5
Fend

次にTill修飾子を使ったプログラム例です。
TillにフォーストリガーオブジェクトFT1を設定し、力制御機能を有効にしたMove動作命令にTill修飾子を付加しています。P1への移動中にTillが成立したとき、Move動作、および力制御機能が中断され、ロボットは停止します。その後P2への移動中も同様です。P3への移動中にTillが成立した場合は、CFパラメーターが付加されているためMove動作は中断されますが、力制御機能は継続されます。そのためロボットは停止しません。その後、力制御機能を継続したままP4へ移動します。

Function ForceMoveTillTest
  Till FT1
  Move P1 FC1 Till     ' 動作も力制御機能も停止
  Move P2 FC2 Till     ' 動作も力制御機能も停止

  Move P3 FC3 CF Till  ' 動作は停止、力制御機能は継続
  Move P4 FC3
Fend

参照
Move, フォースコントロールオブジェクトFC#,フォーストリガーオブジェクトFT#, Till, FCKeep, FCEnd