この記事ではFANUCのロボットのUser Frameについて説明します。
座標表示の切り替え
POSNをクリックし、ロボットの座標を確認しましょう。
WORLD座標を表示切り替えます。
COORDを押すと、いまTOOLなのかWORLDなのかUSERなのかも切り替えます。
WORLD座標
まずTableを追加します。
ロボットを少し場所を変えますね。
User Frameを設定などする前に、まずWORLD 座標を簡単に説明します。Teach PendantでWORLD座標表示に切り替えます。
XとYはAXIS1から基準の座標になります。
そして横から見ますとZはAXIS2を基準としています。
心の中で覚えてください。
User Frameとは?
When working with a robot, it is often desirable to align the Cartesian axes with your intended work area. This may be at a different position or angle than the base of the robot (World Frame) so the option of User Frames is used.
A User Frame is a redefined coordinate system allowing the operator to change where the intersection of the axes is located (origin) as well as the direction of each.
X, Y, and Z remain at right angles to one another but their positive directions from the newly defined origin are chosen.
User Frame(UF)設定
MENU>SETUP>Framesで操作します。
いまTeach Pendant上ではTool Frameになっていますが、Other>User FrameでUser Frame設定画面に切り替えます。
画面がUser Frame設定に変わりました。
DETAILボタンをクリックします。
そうするとUser Frame1の詳細設定画面に変わります。
Three Point Method
METHOD>Three Pointを設定します。
まずCommentにわかりやすい名前を入れましょう。
次はUser FrameのOrient Origin Point・X Direction Point・Y Direction Pointを設定します。
Robotをテーブルのかどに移動しましょう。
このような感じですね。本来なら色々な補助ツールを使って、User Frameの座標を精密に設定する必要がありますが、ここではコンセプトを教えるためだけなのでざっくりで行きます。こんな感じですね。
Teach Pendant上でOrient Origin Pointを選んでるかもう一度確認し、SHIFT+RECORDで
位置を補保存します。保存されたPointはUNINIT>RECORDEDに変わります。
Xも同じような作業をします。
もちろんYにも。
3つのPointにもセットされたところで、Teach Pendant上では”New position calculated”のメッセージが出てきて、状態もRECORDEDからUSEDに変わります。
Work Cell Treeから先に設定したUser Frameをクリックします。
そうするといまTableのかどに小さなXYZ座標が見えますね。それはあなたのUser Frameです。
赤い座標をクリックします。
EDIT UFrameで細かい調整するにも可能です。
POGRAM
User Frameが作成したところで、プログラムから動かしてみよう。
CREATEボタンをクリックします。
プログラム名は…まぁ適当でいいです。本場ならちゃんとわかりやすい名前にしましょうね。
EDITします。
POINT追加
この画面で直接ロボットにPointを教えて保存することができます。
まずロボットの行き先へ移動します。
POINTのボタンをクリックします。
とりあえずJ P[] 100% FINEでよいです。
それらの意味はまた別の記事で説明します。
それでP[1]が記録されました。
POINT2,3,4,5,6,7…実際にも同じな作業です。
これで全部のPOINTが追加されました。
でもロボットプログラムは作業が終わったあとに最初のPOINTに戻るようにしましょう。
テスト
Tool BarにあるPlayボタンでシミュレーションしてみましょう。
ロボットがそのとおりPOINT間移動してくれますね。
SHIFT+COORDでいまの状態を確認できます。
Tool2、User1は2番目のツールと1番目のUser Frameを使用しています。
左にあるWork Cell Treeと一致していますね。
POINT Detail確認
先のプログラムに戻り、設定されたPOINTを選び、POSITIONボタンをクリックします。
いまP[1]がUF1 UT2のPointになっています。つありUser Frame1、User Tool2のことです。
このXYZはUser Frame1に対する相対座標だと思ってください。
つまり下図のようですね。User Frameの原点からX300、Y186のようなイメージです。
POSINWORLD座標にも表示に変えられます。
The Power Of User Frame
では実際User Frame設定するとなにがよいのか、見てみましょう。
例えば、いまTableの位置が下図のように変わりました。
本来なら先にロボットでTeachingした6点をもう全部やり直しする必要があります。
User Frameが設定してる場合だと、そこまでしなくてもOKです。
まずSETUP>Frame Menuに入ります。
User Frame1を選び、CLEARします。
Clear Current frame?の確認文字が出てきます。YESです。
そしてUser Frameを先のStep通りもう一度Teachingし直しすれば、ロボットは同じのPointに移動するができます。
User Frame x Position Register
次は作業Tableが2つあると考えとしよう。
少しロボットに近い場所に調整します。
User Frame 追加
ロボットを動かしてもう1つのUser Frameを追加します。
そしてプログラム画面開いて、先TeachingしたPoint行きます。Positionボタンをクリックします。
先ほどにも確認しましたが、TeachingされたPは全部UF1とUT2のものです。
つまり、新しいUser Frameを追加してもこのデータではロボットが動きません。無理やりやるとUser Frame番号違いますよみたいなエラーになります。
Position Re-Teach
ここでPositionを一回再Teachingしましょう。
まず現在のPointをAll削除します。
EDCMD>DELETEします。
全部を選んで…YESします。
Position Register追加
DATAボタンをクリックします。
TYPE>Position Regをクリックします。
いくつのPointをTeachingしましょう。
操作はSHIFT+RECORDでPointを保存します。
プログラム修正
次はプログラムの修正ですね。先追加したMYPATHを開きます。
今度はL PR[] 100mm/sec FINEにします。
いま使用してるのTool=2,User=2ですね。
ですが、PR[1]を詳細に見ますと、いまはUF:F UT:Fになっています。
つまりUser Frame・Tool Frameに関係なくなりましたね、このPR。
ではプログラム内で、
UFRAME_NUM=1
UTOOL_NUM=2
OVERRIDE=100%
のコードを入れます。
そうすると、プログラム実行する前にまずUser Frameが1になり、Tool Frameが2になり、Overrideは100%になります。
プログラム走るとTable2からTable1に移動しPOINT移動するようになりますね、ロボットが。
UF2に切り替える、方法1
プログラム中にUFを切り替える方法がたくさんありますね。方法1はLine4-8のPoint移動をCOPY PASTEし、途中でUF=2のコードを入れます。
EDCMD>Copy/Cutします。
SELECTボタンをクリックします。
全部選び、COPYします。
一番したにPASTEします。
Paste before this line?
LOGICを押します。
それで貼り付けましたね。
あとはUFRAME_NUM=2に変更すればOKです。
UF2に切り替える、方法2
FOR LOOPを使用します。
EDCMD>FOR/ENDFORを選びます。
コードのLine1にFORを入れます。
次はは一番したにENDFORを入れます。
UFRAME_NUM=R[1]に変更すればOKです。
テスト
ちゃんとTable1書いてたからTable2に移動しもう一度書きますね。
最後
少し長くなりましたが、ここでUser Frameはどういう動きや設定なのかわかりましたでしょうか?
このシリーズではFANUCのロボットとROBOGUIDEの使用について勉強用のメモになります。あくまでも個人的に書いてたものなので、実際使うときには安全に注意し、経験あるエンジニアと一緒に作業してくださいね。