Universal Robots Forum

How to program multiple of the same thing

Topic title is weird, no idea how to describe it.

I have a fixture, picture attached. Robot arm is at the bottom. Each rectangle contains the same printed circuit board for a gluing application. Machine is a CB3. Currently, I have 3 planes set up, one for each spot. I do the programming on the center one because in program mode it seems to be referenced only to the base. Then in the code I change the plane.

However, if the plane isn’t set up just right, there could be errors. Since I mathematically know the position and orientation of each spot, is there a way to enter that information to make it exact?

I’ve done offsets using pose addition, but that was only in 1 direction and had now angular changes. I’ve looked into the trans function, but details seem limited and I don’t quite understand it, especially since I never learned any sort to matrix math.

1 Like


First of all, you don’t have to set three planes for each of them. You can only set one but offset it.

These tree same shaped items should share the same circle center but only with rotation difference for each of them, perhaps 30 degrees.

Therefore, you could set a custom plane(feature) such as plane_A in the robot based on the circle center, X and Y direction.

Teach your waypoints and path relative to the plane_A for the middle item. For example, the feature set as the plane_A under the moveL or moveP commands.

Then, offset the plane_A with certain angle so you can run the same path codes for the middle item but have an offset movement for the right or left item.

For example, if each item’s difference is Z-axis 30 degrees rotation, you can call the script code pose_trans(plane_A, p[0,0,0,0,0,d2r(30)]) to rotate the plane_A 30 degrees each time or use plane_A[5]=plane_A[5]+d2r(30) to get the same result. By doing so, you get the right item path. Follow steps above but with d2r(-30) offset to get the left item path.


Thank you Sya. I think that has potential to work. Is it possible to set a plane at the origin of the base? The fixtures are designed to be based around that so all the tool paths are the same.

Hi @nnaylor:

You can try to set the base plane as a variable and what I said above changes from pose_trans to pose_add such as pose_add(base, p[0,0,0,0,0,d2r(30)]).

I guess it should work.

HI Sya,

My initial test using this method did appear to work. Now I’ll have to implement it and see how it goes with a program.


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.