1. Introduction
In the past two decades, metrology equipment and methods for industrial robot arm calibration [
1] have progressed tremendously, fueled by an ever-increasing demand for higher accuracy. Most manufacturers no longer want to teach robot poses manually and rely solely on the high repeatability of industrial robots. This approach is inflexible and time-consuming.
One alternative to reduce the costs associated with this method is to use offline programming software to plan the robot movements. However, because industrial robots are precise but not accurate, this method often results in poor accuracy when the program is transferred to the real robot and requires numerous touchups. Therefore, a calibration procedure is required to increase the robot’s accuracy. Unfortunately, most calibration methods involve expensive measuring devices such as laser trackers. However, this problem can be solved by designing new calibration instruments and methods that, hopefully, provides similar results after calibration at a low cost.
The ideal robot calibration method should be fully-automated, executable on-site, quick to set up and perform and, of course, highly effective. At the same time, the measuring instruments used for robot calibration should not only be accurate (volumetric accuracy better than 0.1 mm), but also easy to use and affordable.
Current robot calibration methods can be classified into two main categories: open-loop methods and closed-loop methods [
2]. Open-loop methods make use of external metrology equipment to measure the partial or full pose of the robot’s end-effector when identifying the robot’s parameters. Over time, researchers have used different metrology systems such as acoustic sensors [
3], mechanical coordinate-measuring machines (CMM)s [
4], theodolites [
5], laser trackers [
6,
7,
8], optical CMMs [
9], combinations of the latter two [
10], and ballbars [
11] for open-loop calibration. These instruments allow for good calibration performances but have significant drawbacks. They require training and are more expensive than devices used for closed-loop calibration. Finally, the measurements can be time-consuming, unless fully-automated, which is not always possible [
12].
Closed-loop calibration, also known as self-calibration or autonomous calibration, can be defined as the automated process of identifying the robot’s parameters by using its internal sensors only [
13] and possibly a sensor attached to the robot’s end-effector. Researchers have used various devices mounted on a robot’s flange such as ballbars [
14], touch probes [
15], optical sensors [
16], and cable transducers [
17] to use as internal sensors. However, the efficiency of such methods has never been excellent.
In this paper, a novel self-calibration method is presented using a new 3D measuring sensor attached to the robot’s flange. The method is almost as effective as the standard calibration procedure involving a laser tracker, but is more affordable. The measuring principle is similar to that proposed in [
18]. However, instead of manually constraining the robot’s tool center point (TCP) to a mechanical coupling (e.g., a ball in a socket), the proposed measuring device is used to automatically drive the robot’s TCP to coincide with the center of a datum sphere. This seemingly minor difference is in fact a significant improvement since no frequent manual back-and-forth jogging or force control capability is required and the method can be fully-automated. Furthermore, three datum spheres instead of one are used for measurements, and they form a permanent world reference frame. Thus, the robot’s accuracy is improved with respect to this physical reference frame, not with respect to some imaginary frame as usually done.
On the one hand, instruments similar to the proposed position measuring device already exist, namely ROSY [
19] by Teconsult GmbH, Bayreuth, Germany (based on two cameras) and Laser LAB by Wiest AG, Neusäß, Germany (based on five laser sensors). However, not only is the accuracy of these two devices relatively poor (as low as 0.1 mm) but they are used as error measurement devices rather than replacements of a position’s physical constraint. This means that the robot’s TCP is never exactly at the center of the datum sphere, but as far away as 10 mm. While this offset is taken into account in the calibration, it is not measured with high accuracy.
On the other hand, far more accurate devices based on the same principle have been used for calibrating machine tools. Some researchers have proposed a device called the R-Test [
20], which uses three analog linear probes and has an uncertainty of 1.7 μm for a measurement range of less than 0.5 mm. A very similar device has also been proposed in [
21], but using four probes. Later, these researchers expanded upon their “chase-the-ball” concept by calibrating a five-axis machine [
22]. Finally, the company IBS Precision Engineering (Stuttgart, Germany) offers the Trinity contact-free probe, which can measure the offset of the center of a special datum sphere (expensive and fragile) within a range of up to 3.5 mm (still too small for robotics) and with an accuracy of less than 0.001 mm. Unfortunately, all these devices are relatively expensive (the Trinity costs about
$15,000), because they need to be built with great accuracy and calibrated before use. They are an excellent measuring solution for machine tools, but inadequate for industrial robots.
In contrast, our device (
Figure 1) is based on three off-the-shelf digital indicators which have an accuracy of 3 μm. Such devices have already been used for measuring repeatability, i.e., for measuring offsets, albeit very small ones [
23]. However, our device is not used to measure offsets with high accuracy, but only to iteratively guide the robot’s TCP towards the center of a datum sphere until all indicators are nearly zeroed. For that reason, it does need tight manufacturing tolerances. However, it requires an affordable means of defining the TCP (the location at which all indicators are zeroed). Therefore, the main novelty of our device and approach is the design and use of a special calibrator plate for defining this TCP.
The proposed measuring device and its accessories (ball plate, kinematic coupling platform) are affordable (cost about $5000) and inexpensive to repair (in the event of a collision), but can be used to position the robot’s TCP onto the center of a datum sphere with an offset of less than the repeatability of the robot (in our study, 0.010 mm). This means that if the coordinates of sufficiently many datum spheres are measured on a CMM, our measurement scheme can be as accurate as when using a laser tracker. Of course, in practice, dozens of such spheres cannot be used, so an important objective is to find a reasonably low number of datum spheres. This keeps the performance of this approach comparable to the performance of robot calibration using a laser tracker.
This device was first described in [
24], where it was used to calibrate a small industrial robot. However, the results for the robot’s position accuracy after calibration were rather poor when validated in the robot’s whole workspace. In this paper, there have been significant improvements compared to our previous work. Firstly, the post-calibration results are greatly improved due to the use of a comprehensive mathematical model for the robot. This mathematical model is more complete with the addition of a parameter for consecutive parallel axes. Using this parameter in combination with the level 3 non-kinematic parameters on joints 2–6 yields much better calibration results in the entire workspace of the robot. In other words, it is demonstrated that the measuring device, when used in combination with an appropriate mathematical model and an optimal set of robot configurations, can provide calibration results in the complete workspace of the robot that are more than five times better than the results that were presented in our previous paper. Secondly, a novel methodology was used to validate the performance of each set of parameters found, which is to do multiple identifications (i.e., more than 2000 identifications) of the robot’s parameters. Usually, the authors present the results of their calibration with only one identification of the parameters, which might have been the best results achieved after multiple optimizations, or just plain luck. Besides, most authors present validation results in only a few poses (typically less than 100). This new method to characterize the calibration performance of a measuring instrument gives much more credibility to the results as it shows the impact of the number of configurations selected and what is the range of post-calibration accuracy that can really be achieved with such a device. When a device like the TriCal is used in industry, it is not possible to validate the performance of the calibration with a laser tracker due to budget constraints. Therefore, the engineer must rely on the probabilities that the calibration will be successful. Our new method provides insight into how to evaluate the probabilities of a successful calibration based on the number of measurements.
This paper is structured as follows. First, the proposed device and reference artifacts, the measuring procedure and uncertainty estimation, and the method and the theory used for identifying the robot’s parameters are described in
Section 2.
Section 3 presents the experimental results. Finally, the discussion and conclusion are presented in
Section 4.
2. Materials and Methods
2.1. TriCal and Its Accessories
TriCal, the novel device used in our work (
Figure 1), is mounted on the flange of a robot and measures the relative position of stationary 12.7 mm (0.5 in) precision balls (
Figure 2) with the help of three digital indicators. It is, however, important to understand that the accuracy of TriCal is not uniform. The device is highly accurate only when the center of the ball is in the vicinity of the TCP, where all digital indicators show no more than a few micrometers. In other words, TriCal is a device used only to bring the robot’s TCP to a known position with respect to the robot’s base.
TriCal (
Figure 1) consists of three Mitutoyo ID-C112XB indicators (Kanagawa Prefecture, Japan). Each indicator has an accuracy of 0.003 mm and a measuring range of 12.7 mm. The indicators are supported by an aluminum conical bracket and are orthonormal to each other. Finally, three magnetic nests for 12.7 mm balls (from Hubbs Machine and Manufacturing) are fixed at the extremities of the conical bracket.
Each digital indicator is connected through a statistical process control (SPC) cable to a Mitutoyo U-WAVE-T wireless transmitter which transmits the measurements to a Mitutoyo U-WAVE-R wireless receiver. The receiver, which is connected through a universal serial bus (USB) cable to a personal computer (PC), stores the data from the transmitters as soon as a measurement changes. This outcome is achieved by setting the transmission parameters to “Event Driven Mode.” In order to retrieve the measurements stored in the receiver’s memory, an American Standard Code for Information Interchange (ASCII) string is sent from MATLAB 2014a. The information acquired in MATLAB is then sent to the robot’s controller via a local area network. The communication setup between the robot, the PC and TriCal is presented in
Figure 3.
As already mentioned, TriCal is used to bring a virtual TCP to a specific position. Therefore, a crucial step is the ability to precisely define this TCP with respect to the TriCal’s body. This is achieved through the use of a special kinematic coupling platform (
Figure 4), which is essentially a star-shaped aluminum fixture holding a magnetic nest in its center (from Hubbs Machine and Manufacturing, Cedar Hill, AL, USA) and three vee-blocks (from Bal-tec, Los Angeles, CA, USA) at its extremities. The purpose of the kinematic platform is to locate a 12.7 mm precision ball at the TCP of the device described in the previous section, in a highly repeatable manner. Once the kinematic platform is positioned over the measuring device, as shown in
Figure 4, all three digital indicators are zeroed (with their “set” buttons). It has been demonstrated that this TCP position is highly repeatable by coupling and decoupling the kinematic platform from the TriCal’s body multiple times and reading the measurement values on the three digital indicators. Those values were still 0.000 mm every time the kinematic coupling platform was constrained between the vee-grooves. The same configuration, out of the three possible mating configurations, must be used for the repeatability to be 0.000 mm. Therefore, the location of the TCP can be measured precisely by a CMM by making sure that the same configuration is used.
Finally, an arbitrary number of datum spheres is required for gathering measurements with the TriCal. In this paper, for simplicity, only three datum spheres are used, because their relative positions can be measured promptly using a ballbar from Renishaw (Gloucestershire, UK). Furthermore, the placement of those three datum spheres is not optimized with respect to the robot’s base. The problem of choosing the optimal number of datum spheres and their optimal placement will be studied in the future.
The ball plate (
Figure 2) used in this study is composed of an aluminum triangular platform with three magnetic nests for 12.7 mm balls mounted on risers from Renishaw. The plate is mounted on an articulating platform from Thorlabs (Newton, NJ, USA), which allows the operator to vary the orientation of the platform. The nests are placed approximately 300 mm apart so that the exact distance between them can be measured with a telescoping ballbar from Renishaw. Furthermore, nests and balls are utilized instead of tooling balls, so that they are used to easily validate our work with a ION laser tracker from FARO (Lake Mary, FL, USA), by replacing the balls with 12.7 mm spherically mounted reflectors.
2.2. Measurement Procedure
The measurement procedure can be divided into two main operations: semi-automated steps and a fully-automated centering procedure. Note that several semi-automated steps are needed only the first time the device is used on a particular robot cell. The whole calibration process was executed on an ABB IRB 120 robot equipped with the new measuring device, as depicted in
Figure 2. This particular setup will be referred to as setup 1 (measurements for identification).
The measuring device is used to gather measurements, but before it can be used safely and in an automated fashion, three semi-automated steps should be executed. The first semi-automated step is performed to define a reference position on each of the digital indicators by using the kinematic platform. To do so, three 12.7 mm precision balls are positioned on the magnetic nests of the measuring device. Then, the vee-grooves of the kinematic platform are mated to the precision balls. The operator resets each indicator to zero (0.000) when the platform is fully-constrained onto the measuring device. This step takes approximately one minute to complete.
The second semi-automated step is performed to identify the position of the TCP with respect to the wrist of the robot. This procedure requires four robot configurations. To register each of the required joint targets, the operator must jog the robot until the three stems of TriCal are in contact with any one of the three precision balls of the ball plate. Then, the operator can start an automated centering procedure. This procedure is programmed both in MATLAB and in RAPID and is explained later. Its purpose is to move the measuring device until all three digital indicators display “0.000”. Once reached, the current joint target (robot configuration) is saved in the robot’s controller. This process is repeated three times on the same precision ball that was selected for the first measurement. The position of the TCP with respect to the wrist can be found by minimizing the Cartesian errors at the end-effector. This can be accomplished by using the forward kinematic equations and an approximate TCP position, as is usually done by industrial robot manufacturers to identify the TCP location. The second semi-automated step takes approximately 15 min to complete.
Once the TCP has been found, it is used to identify the positions of each of the three precision balls on the ball plate in the robot’s internal coordinate system. The measuring device must be brought to each of the three balls by jogging. Then, on each ball, the automated centering procedure is executed. When all three indicators show “0.000”, the robot pose is saved. The step takes approximately 20 min.
As soon as the semi-automated steps are completed, the measurements can be collected automatically on each of the three 12.7 mm precision balls through an automated centering procedure (i.e., once the robot’s TCP coincides with the center of one of the three balls, we take the angle readings of the six joints). The algorithm is shown in Algorithm 1. For the experiment, the maximum error, ε, was set at 0.010 mm. Ideally, this value should be 0. However, if the value is below the robot’s position repeatability, the time to measure one configuration will double in some cases. At ε = 0.010 mm, each robot configuration takes approximately 20 s to be measured.
Algorithm 1 Automated Centering Procedure |
1: Procedure AutoCenter() # is the desired joints configuration to measure 2: MAX_EPSILON 0.010 # 0.010 mm = position repeatability 3: Move the robot to # from MATLAB to Controller 4: Wait 1 s # to ensure effective communication 5: Send data request # from MATLAB to U-WAVE-R 6: Measurement of indicator along the tool X # from U-WAVE-R to MATLAB 7: Measurement of indicator along the tool Y # from U-WAVE-R to MATLAB 8: Measurement of indicator along the tool Z # from U-WAVE-R to MATLAB 9: 10: while(norm()) >= MAX_EPSILON do 11: Move the robot’s TCP by vector # from MATLAB to Controller 12: Wait 1 s # to ensure effective communication 13: Send data request # from MATLAB to U-WAVE-R 14: Measurement of indicator along the tool X # from U-WAVE-R to MATLAB 15: Measurement of indicator along the tool Y # from U-WAVE-R to MATLAB 16: Measurement of indicator along the tool Z # from U-WAVE-R to MATLAB 17: 18: return Actual joints configuration # from Controller to MATLAB |
The only measurements that can be collected with Setup 1 are the positions of the centers of the three balls with respect to {W}. Let
be the position vector of {T} with respect to {W}, and let
dij be the distance measured between the centers of balls
i and
j (
i = 1, 2, 3;
j = 1, 2, 3;
i ≠
j). The three position vectors that can be measured, which represent the centers of balls 1, 2, and 3, are:
where:
and:
The distances between each pair of magnetic nests were measured with a Renishaw QC-20W ballbar. The rationale for using a ballbar instead of a traditional CMM is that it is more accurate but also much cheaper.
A total of 360 randomly-generated robot configurations (120 robot configurations per precision ball) were subsequently measured with this experimental setup.
The measurement uncertainties of this new calibration method are caused by the inaccuracy of the digital indicators, the mechanical tolerances on each component, the experimental conditions and the measuring procedure. Specifically,
Table 1 and
Table 2 show the uncertainty estimation associated with each source of errors for the measuring device and the measuring procedure, respectively. The TriCal is used as a constraining device, thus some of the sources of errors are negligible or can be reduced significantly by adjusting the parameters and conditions of the calibration process. For instance, the maximum angular deviation (0.122°) of the digital indicators might seem important. However, when considering that the robot constrains the measuring device within 0.010 mm with respect to the center of the 12.7 mm precision ball, the projected source of error is orders of magnitude smaller than the other sources of errors. Also, if the calibration can be performed in a temperature-controlled environment, the sources of error related to thermal expansion can be neglected. Furthermore, if more time can be spent on the calibration, the automated centering tolerance
ε can be lowered to 0, thus reducing the sources of errors. In these conditions, and assuming the fact that those errors represent a worst case scenario (i.e., all those sources of errors add up), the measuring device’s absolute accuracy is approximately 9 µm, which is less than the robot`s repeatability (10 µm). It is important to note that the uncertainty associated with the hysteresis and the friction of very small end-effector displacements was not quantified within the automated centering error. The negative effects of this type of uncertainty can be diminished by moving the robot with larger movements. More precisely, the robot end-effector can be moved away significantly from the target precision ball, with the condition that it should maintain contact with it. Then, using the measurements on the three indicators, another single movement attempt can be made to move the end-effector directly on the target within the desired tolerance. This procedure can be repeated until the robot is finally at the desired location. However, the calibration would take more time to perform. The combined maximum error would be less than 27 µm if the sources of errors of the measuring procedure are added to those of the measuring device.
2.3. Calibration Model and Identification Method
An accurate identification of the robot calibration model’s parameters is crucial to improve the absolute position accuracy. The measurements set used for identification should also be optimal for the identification method that is employed. To that end, an observability optimization was performed on a large pool of robot configurations to select the optimal configurations for the identification process. Then, the method of least squares was used to identify the robot parameters using the optimized robot configurations.
The robot was modeled using the Denavit-Hartenberg (D-H) parameters as per Craig’s convention [
25]. Furthermore, an additional parameter was added to consider consecutive parallel axes [
26].
Figure 5 shows all the link frames. The base frame is denoted by {0}. The robot’s nominal parameters are shown in
Table 3.
The homogeneous matrix linking each successive pair of frames of the robot is represented as:
where
are the D-H parameters,
,
RQ is the homogeneous rotation matrix around axis
Q,
DQ is the homogeneous translation matrix along
Q, and
is the homogeneous matrix representing the pose of frame {
i} with respect to frame {
j}. The rotation parameter,
, addresses the problem of the proportionality of the model [
27]. To obtain the homogeneous matrices of the base frame {0} with respect to the world frame {W}, and of the tool frame {T} with respect to the flange frame {6}, the following equation was used:
and the parameters are presented in
Table 4.
The calibration model includes a total of 31 parameter errors: 26 kinematic parameters and 5 non-kinematic parameters, as seen in
Table 5 and
Table 6. The parameter errors associated with link 1 are not considered, because they are dependent on the base parameters. Also, axes 2 and 3 are parallel, so only one of either
δd2 or
δd3 should be included in the calibration model. Therefore
δd2 was arbitrarily chosen for removal. The tool parameters are also not included for identification because the position of the tool is measured with a 3-axis CMM with respect to the robot’s last axis frame. Note that these parameters do not need to be measured frequently, as long as TriCal is manipulated with care. The tool orientation parameters cannot be incorporated into the model because the measuring instrument provides only three-dimensional position measurements.
The compliance in each gearbox is modeled as a linear torsional spring, as presented in [
6]. The compliance in the gearbox of the first joint is not included because no torque is applied to this joint when the robot is not moving, as the joint axis is vertical. The torque on each of the other five joints is calculated with the iterative Newton-Euler algorithm [
25].
First, let us define the vector of all constant parameters of the robot model to be:
where
and
are the vectors of the parameters of the base and the tool, respectively. Then, by using forward kinematics, the pose of {T} with respect to {W} can be expressed as a function of the constant parameters (
) and the variable parameters (
):
Now, the position vector of the homogeneous matrix can be defined to be:
By assuming that the parameter errors are small, the difference between the position measurements of one configuration (i.e.,
and the position obtained by calculating the forward kinematics (i.e.,
x,
y,
z) of the calibrated model is:
where
is the Jacobian matrix of
. The concatenation of all the
n measurements that are used for identification is expressed as:
which can also be written as:
To find the variation of the parameters
, the identification Jacobian must be inverted. However, since the identification Jacobian is not square, the following equation is used:
which is equivalent to:
where
is the expression of the Moore–Penrose inverse.
Next, an observability assessment was performed in order to obtain the best sets for identifying the robot’s parameters. The observability index
O1 [
28] was selected for optimization as it had been previously demonstrated to give better results when the robot model incorporates non-kinematic parameters [
29]. The mathematical formula for this observability index is:
where
n is the number of configurations in the set,
m is the number of parameters of the model, and
are the singular values of the identification Jacobian matrix. To optimize the observability index of a set of
n robot configurations, the DETMAX algorithm was used [
30] on a large initial pool of
N robot configurations. When the DETMAX algorithm finishes, it outputs a set of
n robot configurations with an optimal observability index. The robot’s parameters are then identified using this optimal set of robot configurations with the least squares optimization method, as presented in Equations (11)–(15).
4. Discussion
In this paper a novel low-cost, three-dimensional automated measuring device (TriCal) and a robot calibration procedure were presented. TriCal was used to calibrate a six-axis serial industrial robot. It was shown that the TriCal device is nearly as good as a laser tracker for calibrating a small industrial robot. Namely, it was possible to reduce the absolute position errors to 0.482 mm (maximum), as verified in more than 500 random robot configurations.
The cost of the new 3D measuring device is significantly lower than any other used for robot calibration in industry. For example, a laser tracker typically costs more than $100,000, while TriCal’s prototype costs approximately $5000. Moreover, an annual calibration of a laser tracker, let alone a repair, costs thousands of dollars whereas an accident involving TriCal would incur repair costs of no more than several hundred dollars.
In addition to its low acquisition costs, TriCal is less sensitive to variations in atmospheric conditions than a laser tracker. In an industrial environment where temperature, humidity and vibrations cannot be controlled, the TriCal is a safe alternative for field calibration. The TriCal device can even be purposed for measuring position repeatability for bigger robots.
The TriCal is arguably among the best measuring tools for performance evaluation and calibration of industrial robots, especially for small and medium enterprises that cannot afford an expensive measuring device for the sole purpose of robot calibration. We are in the process of commercializing this tool.
One very important study that remains to be done, however, is on the optimal number and placement of the datum spheres. Ideally, these datum spheres must be fixed on the same plate on which the robot is fixed, and their positions should be measured on a CMM, with respect to the actual base of the robot. These datum spheres should remain part of the robot cell, even after calibration. They can be used for automated periodical validation of both the accuracy and the repeatability of the industrial robot.