Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Frame offset using turntable on ABB controller

#1
Hello,
I have an ABB IRB2600 1.85/12 arm with a 2 axis IRBP A750 positioner table. When I output a program as joint moves (MoveJ), the system touches all targets as desired. However, when I output the program as linear moves (MoveL), there is an offset of 84mm in Z, 11mm in Y, and about 1.8mm in X.

The fact that simulation and reality for the MoveJ program matches suggests that the robot cell is well modeled in RoboDK. This makes sense as the TCP and positioner table were calibrated in RoboDK.

The simulation and reality of the MoveL program does not match which, I think means, there is a frame mismatch. However, I cannot find where I have a frame mismatched in my RoboDK station file. 

Please help. Perhaps there is an error on some frame of the positioner?


Attached Files
.rdk   ABB Cell_BuildTable mk25_clean.rdk (Size: 4.27 MB / Downloads: 20)
#2
If you output joint movements provided Joint data (MoveAbsJ in your ABB code) and it goes to the right location it means that the cell is well modeled in RoboDK. However, when you output linear movements (MoveL), you rely on the controller kinematics, including how the external axes are modeled and placed within the cell.

In this case, it is likely that your turntable is not placed in the right spot within your robot controller.

Looking at your project, the coordinate system of the IRBPA 750 Base represents the location of the base of the turntable with respect to the robot base:
X,Y,Z,q1,q2,q3,q4 = 908.553, 3481.296, -274.273,  0.70175787,  0.00085554,  0.00036257,  -0.71241493
I see that you calibrated it with RoboDK because there is the joint data you used to locate this coordinate system. This should be the same coordinate system seen by the controller.

I attached an image that shows the relevant location where you should input the coordinates of this base frame. It should be here:
  1. Go to the controller settings.
  2. Select Configuration file/section.
  3. Select the Motion tab.
  4. Select the Single entry.
  5. Locate the turntable mechanism (you probably have one entry if you only have one additional mechanism or external axis)
  6. Check the current values of the Base Frame X,Y,Z,q1,q2,q3,q4. They should be off by the amounts you observe (you mentioned 84mm in Z, 11mm in Y, and about 1.8mm in X). Keep in mind that slight orientation changes can have a big impact on the translation errors.
  7. Update the Base Frame X,Y,Z,q1,q2,q3,q4 values that you obtained with RoboDK (shown above).
  8. Reboot your robot controller (I'm not sure if this is required but I would reboot to make sure).
Let me know if this is not what you needed.
   
#3
Albert,
Thanks for the suggestion. Looking in RobotStudio I see the mechanical unit base frame X, Y, Z, q1, q2, q3, q4 is 0, 0, 0, 1, 0, 0, 0. That is, the unit is located at the world coordinate system. Furthermore, RobotStudio shows the robot arm base frame being a direct vertical offset, with no offset in X or Y.

   

In RoboDK, the frame coordinate system, IRBPA 750 Base, is located "on the ground" directly below the flange (with respect to the RobotStudio World) at:
[ 1344.97800000, -13.20300000, -89.93100000,  0.00753568,  -0.00086134,  0.00034858,  0.99997117 ]
This offset of 13 in Y and 89 in Z is pretty close to the offset I see in my tests. However, the IRBPA 750 Base frame is oriented at a 180 degree rotation around Z to that of RobotStudio.

If I implement the full translation and rotation to the Base Frame for the positioner in RobotStudio it creates inaccurate or unreachable movements. For small translations of the base frame (no rotations), the TCP position is modified, but relative to the robot world reference frame - so any correction in position at the -90 rotation of the positioner table creates a larger offset on the +90 rotation.

RobotStudio does show a frame at the positioner flange home position, so it should be equivalent to the RoboDK IRBPA 750 Base, just up in Z to match the flange. Is this the reference frame position that needs to match between RoboDK and RobotStudio?
#4
OK that makes sense. You should then update those values in the robot controller to the measured ones from the real setup.

To correct for the turntable flange rotation you can simply change the RZ rotation in the Tool frame of the Turntable parameters. See attached image.
   
  




Users browsing this thread:
1 Guest(s)