The system to handle individual robot deviations in the UR system is clever and enables replacement of robots and still with the possibility to reuse existing programs. An important way to ensure that all the work to create high precision programs could be value-stable. The calibration.conf file describes the individual robot characteristics via DH table from axis 1 to tool flange by the 6 lines of DH parameters.
But no information is describing the base of the robot. If there are deviations from dowel pins and base surface to axis 1 this information is not included in the information from factory calibration. Or am I missing something here?
If the user teach in a number of waypoints with robot A and then exchange to robot B with another calibration.conf the programs cannot be seamlessly be reused. A base calibration will be required to make sure that the program can be reused. Since the base for robot A was unknown the only option what I can see is to take a number of key waypoints from any original program for robot A, re-teach them with robot B and identify the transformation from robot A and B and apply this as a new base reference (feature field in move instruction dialog) in all programmed waypoints in the original program. Is this the preferred way to do it?
This base transform could of course be included in calibration.conf or in the installation setup (to avoid making changes in programs) but I could not find any place to put this information in any of these places.
Simply teaching a user coordinate frame feature in the installation file from three known points in the workspace, and referencing all the relevant moves in your program to that plane seems like it would achieve what you want? Then if the robot changes or moves, you just reteach those three points again.
Alternatively there is a built in function called program correction by key waypoints that works in the way you describe above.
You can read more about how to use it in the calibration manual:
Thank you ajp!
The functionality to re-teach robot base based on a set of key waypoints could be the trick. One problem though, this function seems only to be available if you use a program defined on another robot. It use probably the serial number to check if it the method should be available or not. The function would be useful on the same robot is altered by a changed calibration.conf but also if the robot relative position/orientation to the workcell is changed. Is this the intention to prohibit the use of the function is these situations?
I believe that if the calibration checksum has changed, the option will be available on the original robot. Have you tried this (back up the original first).
I have always used feature coordinate systems for a situation when the robot is on a trolley that can be moved between workcells.
Do you have a specific scenario in which key waypoint correction would be more effective than a feature frame?