May 25, 2019, 01:20:22 AM
Robotforum | Industrial Robots Community

 200ic - Correcting a Tool Frame by Jog amount ?

normal_post Author Topic:  200ic - Correcting a Tool Frame by Jog amount ?  (Read 449 times)

0 Members and 1 Guest are viewing this topic.

March 12, 2019, 04:17:35 PM
Read 449 times



Please forgive me if this question has been answered before, I've been searching for a while without success. I'm a software engineer but I have only superficial knowledge of the TP language, but enough to work my way around.

I'm looking for a quick way to calibrate our 200ic's tool offset after a tool replacement. They are 3d printed so they have slight variations, but we have pretty tight tolerances and it's a very complex station. We have over 200 points and I'd really like to avoid correcting each of them manually.

Basically what I'd like to do is to have some sort of calibration routine where I would manually jog into a known point, then subtract the position of the stored point and the manual position and apply the difference to the tool offset.

I've spoke to Fanuc Canada but they've been really unhelpful. The've sent me partial code that shows how to enable cartesian representation via $PR_CARTREP=0/1 but with the part in between missing. I figured I'd ask here instead of getting half-answers.

This is what they sent:

How should I proceed from there ?

« Last Edit: March 13, 2019, 05:03:21 AM by seb »
Fanuc 200iC v7.70

Today at 01:20:22 AM
Reply #1



March 12, 2019, 04:57:23 PM
Reply #1

Fabian Munoz

Hi seb

Welcome to the robot forum.

As far as I'm concerned you have a new tool. I dont know the shape of your tool but why cant you follow one of the processes that Fanuc offers to teach a tool frame ?

March 12, 2019, 05:50:32 PM
Reply #2


Hi Fabian,

To give a little background this robot was purchased 8 years ago, and my task was to develop the software that controls the station. Unfortunately the company that made the station and did all the robot side does not exist anymore. I ended up taking over the maintenance aspect and learned how to edit and touch-up the TP programs for our needs, but I'm a bit stumped as to what would be the best course of action.

The tool offsets are the same since the station was built and I have no idea if I need to use the same original location where those were originally set, or if I can do that at my desired target point.

To give an idea:

This is our loading station, and we have 120 parking station blocks just like it. As an example the tool needs to drop inside and in between the plates and then retract. As you can see the pitch, yaw and roll are very important. This is what I want to correct for all stations in one go.

I've searched a bit more, and I don't think I could use the normal procedures (ie 3-point, 6-point) because of the tool shape and because it needs to be adjusted within the block. The current offset most likely was entered manually:

X: -28.000, Y: 0.000, z: 205.000, W, P and R are all 0.000

So I guess I do need to calculate the difference (in cartesian coords) between the teach point inside the block and the actual jogged position. That's the part i'm not sure how to do.

Is there no way to get the difference or do some arithmetic between two points natively ? Something like PR[n] - $CURPOS or something ?

« Last Edit: March 12, 2019, 07:27:06 PM by seb »

March 12, 2019, 08:09:37 PM
Reply #3


You need to update your tool frame, not your tool frame offsets.  Once the frame has been updated to work with one point, it should work with all of the rest of them without having to touch up any points.  The easiest way to update your frame would be through direct entry, adjusting it till the tool can fit into your fixture.

March 13, 2019, 04:52:09 AM
Reply #4


Sorry, yes I meant the tool frame. I've used the wrong term. This is what I want to adjust:

I've updated the title accordingly.

See, there's ~0.2-0.3mm space between the tool and the fixture's lamellae. I won't discuss the issues of that design here, my job is just get it to work. Someone found a way to jam the original stainless steel tool quite nicely in the past so the new one is made out of brittle plastic and designed to break in order to protect the arm if a collision happens. But with that small of a wiggle room, one false movement and the tool or lamellae breaks, and I then have to start over with a new one that has slightly different specs.

This is why I was hoping to avoid eyeballing and guessing values, and instead copy the fixture "middle" point coordinates from my original Load procedure into a new routine, offset it vertically, and then slowly jog into the correct position for that new tool and calculate the difference to apply to the tool frame.

While it works conceptually, calculating the difference using the actual POSN values does not work because of the coordinate representation is apparently not right for what I want to do, at least according to Fanuc Canada.

Am I grasping at straws ? I'm sure there is a way to do this or I'm missing something really simple. Punching the values into the SETUP Frames panel at the end is no problem - I'd just like to be able to do this basic arithmetic (Last column should be called New Tool Frame, wrong term again):


Again, sorry if am not using the proper terminology. I had to learn as I went and the available documentation is quite lacking.

If there is any other information I can provide please let me know.

« Last Edit: March 13, 2019, 05:54:27 AM by seb »

March 13, 2019, 11:33:42 AM
Reply #5

Fabian Munoz


Just to have it clear the repeatability of your robot is +/- 0.02 mm.

I understand modifying the tool coordinates will save you a lot of time. The problem that I have is you are assuming the Orig Pos in load Bay is correct How can yo prove it to me ?
When you wrote those number on the excel sheet, how many times did you measure the values ? is the result of the "difference" and average after 10 trials for example
Also, those number are for one part only (i'm assuming), did you try another part (or point) after you did your toll offset ? According to your method if -0.058, -0.339 and 0.788 are correct all the other 200 points should be perfect. Well I hope so, because if not, then we go back to the original question. How do you know the original position is correct.

Is there any way that yo can put a bit of a chamfer on the tooling so when the robot moves vertically there is a bit of given from the tool side

March 13, 2019, 12:57:17 PM
Reply #6


Global Moderator
Seb, what you are doing in the spreadsheet doesn't work because you are using numbers from 2 completely different coordinate systems. The tool frame is one coordinate system that defines to tool relative to the robot faceplate. The positions you show are where the tcp is located relative to your user frame.

An analogy would be giving someone directions and saying turn left, but if you are coming from a different direction then their left is your right.

The best thing would be to design a calibration fixture that allows you do do a proper 6 point Tool frame. If you want to jog, eyeball and back-calculate with a spreadsheet then you have to learn about geometry and matrix math in order to do the coordinate transformations.

Today at 01:20:22 AM
Reply #7



March 13, 2019, 06:43:28 PM
Reply #7


Repeatability hasn't been an issue in the past.

... And save me the grip of death/locked muscles having to hold that massive pendant, half-press the deadman, hold shift and jog buttons and squint for 50 hours :P

The robot has over 40,000 running hours using this point. (I've touched it up a few times when the original tool got banged-up). I've come to rely on it when testing the tool integrity after a collision.

I don't average it out but I usually do a couple repetitions to make sure there's no or minimal contact and then start a full test of all stations picks and drops and observe for a bit. Keep in mind though, in the past I touched-up the points themselves - not the tool frame, which is what I want to try now

 Is there any way that yo can put a bit of a chamfer on the tooling
Unfortunately it doesn't work. I'm applying a transform I got from one frame to the the separate tool frame so the coordinates don't quite line up, as pointed out by HawkME below


Yeah. That's what I'm trying to figure out how to solve. I thought there was a native or simple way instead of solving the kinematics.

I can't think of a way I could do that given that I need to line it up *within* the fixture and that it can only fit one way.

Would it be easier to achieve via a custom application ? I have the PCDK.

In the mean time I guess I'll have to eyeball values in direct entry for now and hope I don't misjudge. I'm still interested in suggestions and reading whatever info I can find on the side.

Thanks Fabien, HawkME
« Last Edit: March 13, 2019, 07:24:59 PM by seb »

March 13, 2019, 08:22:22 PM
Reply #8


Is your tooling orthogonal to the robot's face plate?  If so, you should be able to just make a point above your fixture's point (with a z user offset) and adjust the utool there without worrying about snapping off teeth from your tooling.  Just adjust your utool until you can safely jog in and out of the fixture without binding.

March 14, 2019, 01:48:58 AM
Reply #9


Global Moderator
If you go the 6 point TCP method then you teach the TCP first, then touch up all of your points to work with the new TCP. Then if the tool changes you should be able to redo the 6 point method and be good again. But, this assumes you have a good, repeatable process to teach the 6 point tcp.

Sent from my SM-G930V using Tapatalk

March 15, 2019, 05:02:04 PM
Reply #10


This tool is, yes. This is how I've been doing so far, but carefully jogging it in place then -> touch up the actual point.

then touch up all of your points to work with the new TCP[/b]. Then if the tool changes you should be able to redo the 6 point method and be good again. But, this assumes you have a good, repeatable process to teach the 6 point tcp.

I'll have to touch them all up anyway. The original tool was machined but hand-assembled with 13 parts and was not even square, or straight. However the technician that taught the original points treated them as being straight (making all of them wrong now that my tool is actually straight) and used linear movements relative to the robot center J1 pivot. It's basically like a stadium:


Worse, the 100 stations were epoxied by hand so some are uneven and slightly rotated, causing audible 'tinks' and friction. I solved the problem by copy-pasting and offsetting all of them to give me more control and compensate the entry/exit orientation.

I'll forego fixing the tool frame. I know my tool is accurate to ‎±0.1mm so I'll rely on that and just get the center point from the CAD model and proceed to fix the whole thing.

My plan was to *never* have to touch them up again as it's such a pain in the *** and hoped I could create a simple procedure that other employees could easily follow, as I might not always be working for this company. Fortunately, touching up the small variations by eye in the future after a tool replacement shouldn't be that difficult.

But for now that means I have to spend a lot of quality time with that damn thing.

Again, thanks for your replies!

Share via facebook Share via linkedin Share via pinterest Share via reddit Share via twitter