Self-Calibration of an Industrial Robot Using a Novel Affordable 3D Measuring Device

This work shows the feasibility of calibrating an industrial robot arm through an automated procedure using a new, low-cost, wireless measuring device mounted on the robot’s flange. The device consists of three digital indicators that are fixed orthogonally to each other on an aluminum support. Each indicator has a measuring accuracy of 3 µm. The measuring instrument uses a kinematic coupling platform which allows for the definition of an accurate and repeatable tool center point (TCP). The idea behind the calibration method is for the robot to bring automatically this TCP to three precisely-known positions (the centers of three precision balls fixed with respect to the robot’s base) and with different orientations of the robot’s end-effector. The self-calibration method was tested on a small six-axis industrial robot, the ABB IRB 120 (Vasteras, Sweden). The robot was modeled by including all its geometrical parameters and the compliance of its joints. The parameters of the model were identified using linear regression with the least-square method. Finally, the performance of the calibration was validated with a laser tracker. This validation showed that the mean and the maximum absolute position errors were reduced from 2.628 mm and 6.282 mm to 0.208 mm and 0.482 mm, respectively.


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. 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.

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 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. 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.   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.  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.  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.

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. 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 p W T be the position vector of {T} with respect to {W}, and let d ij 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, Tables 1 and 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.

Sources of Errors Uncertainty
Accuracy of each digital indicator ID-C112XB 3.00 µm Tolerance on diameter of measuring balls 2.50 µm Tolerance on diameter of contact point spheres of indicators NA Maximum angular deviation of digital indicators (machining) 0.122 • Projected angular deviation considering ε = 0.010 mm 0.02 µm Combined maximum error~9 µm Table 2. Sources of errors related to the measuring procedure.

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.
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: and the parameters are presented in Table 4.
−90 0 72 q 6 + 180 - The homogeneous matrix linking each successive pair of frames of the robot is represented as: where α i−1 , a i−1 , θ i , and d i are the D-H parameters, sθ i = sin θ i , cθ i = cos θ i , R Q is the homogeneous rotation matrix around axis Q, D Q is the homogeneous translation matrix along Q, and T j i is the homogeneous matrix representing the pose of frame {i} with respect to frame {j}. The rotation parameter, β i−1 , 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. Table 4. Tool and base nominal parameters. The calibration model includes a total of 31 parameter errors: 26 kinematic parameters and 5 non-kinematic parameters, as seen in Tables 5 and 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 δd 2 or δd 3 should be included in the calibration model. Therefore δd 2 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.

Frame x (mm) y (mm) z (mm)
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 χ B and χ T 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 (q, τ): 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., x mes , y mes , z mes ) and the position obtained by calculating the forward kinematics (i.e., x, y, z) of the calibrated model is: where J is the Jacobian matrix of x. 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 J + 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 O 1 [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 σ i 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).

Results
In this section, a dispersion analysis of the identification procedure using multiple optimized sets of robot configurations of various sizes is introduced. Then, the performance of the calibration using a set of 75 optimized robot configurations for identification is presented. Next, the performance of this new method is compared to an earlier calibration method using the same calibration device. Finally, the results of this new calibration method are compared with the results of other works performed on the same robot.

Calibration Dispersion Analysis
Several parameter identifications were performed to assess the dispersion of the calibration results when using different set sizes. More precisely, a total of 360 robot configurations were initially measured using setup 1 (i.e., using TriCal as a constraining device on the three precision balls of the ball plate). Then, multiple sets containing between 20 and 100 robot configurations were formed using those 360 configurations. Thirty identifications were performed on each set size (i.e., in each identification, the number of robot configurations is the same, but not the configurations themselves). Furthermore, for each set, the observability index was optimized using the initial pool size of 360 randomly generated robot configurations.
The experimental setup on which the robot configurations were measured for validation purposes is shown in Figure 6, and it is referred to as setup 2. This setup still makes use of TriCal, but with a few modifications in order to be able to measure the position of the center ball with a laser tracker. First, the digital indicators were removed from the conical bracket. Then, the 12.7 mm precision ball of the calibrator was replaced by a 12.7 mm spherically mounted retroreflector (SMR), and the calibrator was locked onto the measuring device using a kinematic coupling and rubber bands (not shown). Using balls and an SMR of identical diameters makes it possible to measure exactly the same TCP position with the laser tracker. Finally, the 12.7 mm precision balls of the ball plate were replaced by 12.7 mm SMRs to measure the TCP with respect to exactly the same {W}. The laser tracker was placed at approximately two meters in front of the SMR 3. According to the manufacturer's specifications, this laser tracker has a point-to-point typical accuracy of 32 µm when using a 2.3 m horizontal scale bar measurement at a measurement distance of five meters from the laser tracker. It is also important to note that the laser tracker was used for validation purposes only, and not to acquire measurements to identify the robot parameters. measured using setup 1 (i.e., using TriCal as a constraining device on the three precision balls of the ball plate). Then, multiple sets containing between 20 and 100 robot configurations were formed using those 360 configurations. Thirty identifications were performed on each set size (i.e., in each identification, the number of robot configurations is the same, but not the configurations themselves). Furthermore, for each set, the observability index was optimized using the initial pool size of 360 randomly generated robot configurations.
The experimental setup on which the robot configurations were measured for validation purposes is shown in Figure 6, and it is referred to as setup 2. This setup still makes use of TriCal, but with a few modifications in order to be able to measure the position of the center ball with a laser tracker. First, the digital indicators were removed from the conical bracket. Then, the 12.7 mm precision ball of the calibrator was replaced by a 12.7 mm spherically mounted retroreflector (SMR), and the calibrator was locked onto the measuring device using a kinematic coupling and rubber bands (not shown). Using balls and an SMR of identical diameters makes it possible to measure exactly the same TCP position with the laser tracker. Finally, the 12.7 mm precision balls of the ball plate were replaced by 12.7 mm SMRs to measure the TCP with respect to exactly the same {W}. The laser tracker was placed at approximately two meters in front of the SMR 3. According to the manufacturer's specifications, this laser tracker has a point-to-point typical accuracy of 32 µm when using a 2.3 m horizontal scale bar measurement at a measurement distance of five meters from the laser tracker. It is also important to note that the laser tracker was used for validation purposes only, and not to acquire measurements to identify the robot parameters. The absolute position errors after calibration were measured with a laser tracker at 506 randomly-generated robot configurations in the complete robot workspace (Figure 7). The only constraint on these configurations is that the SMR is visible to the laser tracker.
The multiple means and standard deviations of the absolute position errors after calibration are displayed as quartiles on a box and whisker plot as shown in Figures 8 and 9, respectively. On those plots, the red crosses are outliers. It can be noted that the performance of the calibration varies significantly for different sets of robot configurations of the same size even when the observability index is optimized. This is especially true for smaller sets (i.e., sets composed of fewer robot configurations used in the identification). Also, the data shows a clear trend. The sets that contain more robot configuration for identification will generally give better calibration results. Consequently, at 75 configurations, the calibration results are similar to those of larger sets. Table 7 shows the descriptive statistics of the identified parameters for 30 sets of 75 robot configurations. According to these statistics, the identified parameters are stable with low standard deviations. This outcome correlates with the low dispersion in the calibration performances. The absolute position errors after calibration were measured with a laser tracker at 506 randomly-generated robot configurations in the complete robot workspace (Figure 7). The only constraint on these configurations is that the SMR is visible to the laser tracker.
The multiple means and standard deviations of the absolute position errors after calibration are displayed as quartiles on a box and whisker plot as shown in Figures 8 and 9, respectively. On those plots, the red crosses are outliers. It can be noted that the performance of the calibration varies significantly for different sets of robot configurations of the same size even when the observability index is optimized. This is especially true for smaller sets (i.e., sets composed of fewer robot configurations used in the identification). Also, the data shows a clear trend. The sets that contain more robot configuration for identification will generally give better calibration results. Consequently, at 75 configurations, the calibration results are similar to those of larger sets. Table 7 shows the descriptive statistics of the identified parameters for 30 sets of 75 robot configurations. According to these statistics, the identified parameters are stable with low standard deviations. This outcome correlates with the low dispersion in the calibration performances.

Absolute Position Errors
The absolute position errors were plotted on the 2D scatter plot shown in Figure 10. The locations of the 10 biggest errors are encircled. Furthermore, two linear regression analyses were performed, one for the absolute position errors with respect to {0}, and the other with respect to the center of the calibration zone (CCZ). The CCZ is located at the center of gravity of the triangle formed by the three measurement positions. The regression analyses are shown in Figures 11 and 12, respectively. Finally, Figure 13 shows the distribution of absolute position errors after calibration as well as the descriptive statistics of the errors before and after calibration.    . Linear regression-Distance between the TCP and the origin of the base frame. Figure 11. Linear regression-Distance between the TCP and the origin of the base frame.  For all these analyses, the parameters of the model were identified with one optimized set of 75 robot configurations using setup 1 ( Figure 2) and validated by setup 2 (Figure 6) on the same 506 configurations as previously described (Figure 7). Figure 10 shows that the largest errors are primarily located at the extremities of the robot's workspace. The regression analysis presented in Figure 11 confirms the weak linear relationship between the distance from the TCP to the base of the robot and the absolute precision errors.
Naturally, errors are expected to be higher when the arm is fully extended. However, Figure 12 shows no linear relationship between the distance from the TCP to the CCZ and the absolute precision errors. In other words, this result shows that this calibration method provides good performance throughout the whole workspace even though the measurements are collected in a restricted volume in front of the robot. Table 8 shows a comparison between different measurement methods that were performed on the same IRB120 robot. Our method identifies the parameters of the robot model through  For all these analyses, the parameters of the model were identified with one optimized set of 75 robot configurations using setup 1 ( Figure 2) and validated by setup 2 (Figure 6) on the same 506 configurations as previously described (Figure 7). Figure 10 shows that the largest errors are primarily located at the extremities of the robot's workspace. The regression analysis presented in Figure 11 confirms the weak linear relationship between the distance from the TCP to the base of the robot and the absolute precision errors.

Comparison of TriCal with Other Calibration Methods
Naturally, errors are expected to be higher when the arm is fully extended. However, Figure 12 shows no linear relationship between the distance from the TCP to the CCZ and the absolute precision errors. In other words, this result shows that this calibration method provides good performance throughout the whole workspace even though the measurements are collected in a restricted volume in front of the robot. Table 8 shows a comparison between different measurement methods that were performed on the same IRB120 robot. Our method identifies the parameters of the robot model through For all these analyses, the parameters of the model were identified with one optimized set of 75 robot configurations using setup 1 ( Figure 2) and validated by setup 2 (Figure 6) on the same 506 configurations as previously described (Figure 7). Figure 10 shows that the largest errors are primarily located at the extremities of the robot's workspace. The regression analysis presented in Figure 11 confirms the weak linear relationship between the distance from the TCP to the base of the robot and the absolute precision errors.

Comparison of TriCal with Other Calibration Methods
Naturally, errors are expected to be higher when the arm is fully extended. However, Figure 12 shows no linear relationship between the distance from the TCP to the CCZ and the absolute precision errors. In other words, this result shows that this calibration method provides good performance throughout the whole workspace even though the measurements are collected in a restricted volume in front of the robot. Table 8 shows a comparison between different measurement methods that were performed on the same IRB120 robot. Our method identifies the parameters of the robot model through 30 optimized sets of 75 robot configurations measured with setup 1. With the TriCal, the performances were validated with the same 506 robot configurations in setup 2. In the case of C-Track, an optical CMM from Creaform (Lévis, QC, Canada), the TCP was a half-sphere with a retroreflective target, while in the case of the laser tracker, an SMR was used (as in the validation of setup 2) [9]. For the identification of the robot's parameters with the laser tracker and the optical CMM, the same least squares method and observability index optimization algorithm were used. Once again, in all three cases, the results were validated with a laser tracker. The data show that the performance of TriCal with three base-mounted spheres is slightly lower than the performance of the laser tracker or the optical CMM. However, the cost of the TriCal is also significantly lower. This comparison might seem unfair since the cost of building the prototype is compared against the acquisition cost of those measuring devices. However, the TriCal can easily be custom built.

Comparison of TriCal with Other Calibration Methods
In reality, all those calibration methods require expert knowledge and a significant amount of time. The time spent on each calibration method depends on many variables. Those variables are the number of configurations required for the identification of the robot's parameters, the number of configurations required for the validation of its accuracy after calibration, the setup time, which can vary depending on the work cell constraints, the experience of the user with the measuring technology, the speed of the robot, etc. Thus, a process time comparison between the different measuring technologies is subjective and inappropriate.

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.
Supplementary Materials: All procedures described in this paper, including the validation, are detailed in a six-minute video available at https://youtu.be/Tvj-IwQmVBw.
Author Contributions: M.G. designed the experiments; performed the experiments, analyzed the data and wrote the paper, while at the ÉTS. A.J. and I.B. helped with the writing, structure and organization of the paper, and supervised the work.