New Method and Portable Measurement Device for the Calibration of Industrial Robots

This paper presents an automated calibration method for industrial robots, based on the use of (1) a novel, low-cost, wireless, 3D measuring device mounted on the robot end-effector and (2) a portable 3D ball artifact fixed with respect to the robot base. The new device, called TriCal, is essentially a fixture holding three digital indicators (plunger style), the axes of which are orthogonal and intersect at one point, considered to be the robot tool center point (TCP). The artifact contains four 1-inch datum balls, each mounted on a stem, with precisely known relative positions measured on a Coordinate Measuring Machine (CMM). The measurement procedure with the TriCal is fully automated and consists of the robot moving its end-effector in such as a way as to perfectly align its TCP with the center of each of the four datum balls, with multiple end-effector orientations. The calibration method and hardware were tested on a six-axis industrial robot (KUKA KR6 R700 sixx). The calibration model included all kinematic and joint stiffness parameters, which were identified using the least-squares method. The efficiency of the new calibration system was validated by measuring the accuracy of the robot after calibration in 500 nearly random end-effector poses using a laser tracker. The same validation was performed after the robot was calibrated using measurements from the laser tracker only. Results show that both measurement methods lead to similar accuracy improvements, with the TriCal yielding maximum position errors of 0.624 mm and mean position errors of 0.326 mm.


Introduction
The difference between robot repeatability and robot accuracy is well known in academia, but industrial clients of robot manufacturers often confound the two concepts, based on the personal experience of the third author, who is also cofounder of Mecademic, a manufacturer of compact, high-precision industrial robots, and instigator of RoboDK, a software for offline programming and calibration of industrial robots. Yet, while the position repeatability of most six-axis industrial robots is 0.1 mm or better, even the smallest and most precise robot arms such those from Mecademic can make positioning errors of more than 1 mm, unless calibrated.
Robot calibration is the process of replacing the nominal mathematical model of a robot with another set of equations, usually much more complex (e.g., assuming non-zero elasticities for the joints), which describes with less error the relationship between the joint values and the end-effector pose of the real robot [1,2]. To identify the parameters of the new mathematical model (lengths, angles, elasticities, etc.), the full or partial pose of the robot end-effector is measured for various sets of robot joint values (e.g., a hundred, random, or specially selected). The results are then fed to an optimization algorithm that identifies the parameters that minimize the errors between the actual pose measurements and the ones calculated by using the new mathematical model. Ideally, the calibration must be made by the robot manufacturer, who has suitable installations involving high-accuracy measurement devices, such as an optical tracker, a laser tracker, or even a Coordinate Measuring Machine (CMM) [3]. The main advantage of in-house calibration, however, is that the new mathematical model is embedded directly in the robot controller. Thus, almost no extra steps or knowledge are required when using an in-house calibrated robot (in comparison to using a non-calibrated robot).
Unfortunately, not all clients realize immediately that they need calibration. Indeed, in applications that require offline programming, such as material removal, the need for calibration might be obvious. In other applications, such as inspection, calibration might be avoided but only by spending hours of tuning the robot path, each time a new part shape is to be inspected. Furthermore, while some manufacturers do offer on-site calibration services, most have to rent a laser tracker from a local provider of metrology services. This is why, many researchers, both from academia and industry, have worked on the development of portable, low-cost measurements tools for on-site robot calibration.
Various measurement tools have been implemented into calibration experimentations throughout time. For robot users, eye-in-hand devices such as touch probes [4], optical sensors [5], and ballbars [6] tend to be more affordable and easier to implement in comparison to external measurement devices such as laser trackers [7][8][9], mechanical CMMs [10], optical CMMs [11], theodolites [12], and measurement arms [13]. However, the effectiveness of eye-in-hand devices is still challenged when considering the comparison of the end-result accuracy obtained through external devices.
Perhaps the simplest and oldest, low-cost measurement strategy in robot calibration is to constrain the position of the robot's tool-center-point (TCP), vary the orientation of the robot end-effector, and record the corresponding robot joint values [14]. Instead of manually constraining the robot TCP to a mechanical coupling (e.g., a ball in a socket), in [15], we explored the embedded force-torque sensors in some collaborative robot arms, by mounting a special kinematic fixture and automatically performing the coupling using force control. For all other robots, we proposed in [16] a measuring device used to automatically drive the robot TCP to coincide with the center of a datum ball. 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.
On the one hand, instruments similar to the device proposed in [16] already exist, namely ROSY [17] by Teconsult GmbH, Germany (based on two cameras), Laser LAB [18] by Wiest AG, Germany (based on five laser sensors) and ZIS Calibration Unit [19] from ZIS Industrietechnik GmbH, Germany (based on a 3-degree-of-freedom mechanism requiring a physical contact). However, not only is the accuracy of these three 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 tool tip, 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. More recently, researchers have proposed another similar device based on three Keyence laser displacement sensors and cite multiple other recent research developments on the design of such high-accuracy 3D sensors [22]. Finally, the company IBS Precision Engineering (The Netherlands) 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 USD 15,000), because they need to be built with great accuracy and calibrated before use. For example, we could not find a way to identify the measurement reference frame of our Trinity probe with respect to its fixture, which is simply a cylindrical shaft. We believe that these are excellent measuring solution for machine tools, but somewhat inadequate for industrial robots, at least in factory settings.
In the remainder of this paper, we present the measurement device, the 3D ball artifact and the communication setup in Section 2, and then describe the measurement procedure in Section 3. Next, the accuracy of the measurement process is analysed in Section 4. Then, the robot modelling and parameter identification method are described in Section 5. The identified parameters and validation results are presented in Section 6. Finally, conclusions are made in Section 7.  Figure 1 shows the new measurement device, called TriCal, and part of the experimental setup involving the 3D ball artifact (partially visible) and a six-axis KUKA KR6 R700 sixx industrial robot.

The TriCal Measurement Device
The main part of TriCal is an aluminum triaxial mount with three Ø 8-mm cylindrical channels with clamps, seen clearly in Figures 2 and 3. The axes of these channels are orthogonal and intersect at one point, which will be defined as the robot tool center point (TCP). Indeed, the tool reference frame that will be defined in the robot is along the axes of these channels. A Sylvac S_Dial WORK NANO digital indicator is fixed to each of the three channels. A disk-shaped tip is attached to each In the remainder of this paper, we present the measurement device, the 3D ball artifact and the communication setup in Section 2, and then describe the measurement procedure in Section 3. Next, the accuracy of the measurement process is analysed in Section 4. Then, the robot modelling and parameter identification method are described in Section 5. The identified parameters and validation results are presented in Section 6. Finally, conclusions are made in Section 7. Figure 1 shows the new measurement device, called TriCal, and part of the experimental setup involving the 3D ball artifact (partially visible) and a six-axis KUKA KR6 R700 sixx industrial robot.

The TriCal Measurement Device
The main part of TriCal is an aluminum triaxial mount with three Ø8-mm cylindrical channels with clamps, seen clearly in Figures 2 and 3. The axes of these channels are orthogonal and intersect at one point, which will be defined as the robot tool center point (TCP). Indeed, the tool reference frame that will be defined in the robot is along the axes of these channels. A Sylvac S_Dial WORK NANO digital indicator is fixed to each of the three channels. A disk-shaped tip is attached to each digital indicator, instead of the typical ball tip, providing a flat contact surface, orthogonal to the axis  A major improvement in our new TriCal is the use of a master ball for mastering the digital indicators and defining the TCP (Figure 2a) that is larger than the datum balls (the precision balls of the 3D ball artifact). The use of this bigger master ball eliminates the need for a large kinematic platform that holds the master ball in the first version of TriCal [16]. Instead, a kinematic mount in the form of a trihedral socket is directly embedded in the center of the triaxial mount (Figures 2b and  3b). When the master ball is placed in the socket (Figure 2a), the center of the ball defines the TCP and allows all digital indicators to be mastered. Furthermore, a removable rare-Earth magnet (not shown in Figure 2) can be placed in the socket, thus restraining the ball when needed. This magnet is only used (1) when measuring with a CMM the coordinates of the TCP with respect to the mounting surface of TriCal, by probing the master ball, and (2) for attaching an SMR (spherically-mounted reflector) during measurements with a laser tracker. During mastering, it suffices to orient TriCal upwards and the magnet is not needed; the force of gravity acting on the master ball is much larger than the equivalent of the forces applied by the three digital indicators.
Since the measurement range of each indicator is 12.5 mm, the radius of the master ball must be about 6 mm larger than the radius of the datum balls that are to be probed (Figure 1), to allow a symmetric measurement range for the complete TriCal device. Datum balls are readily available in sizes of 0.5 in, 0.75 in, and 1 in. As for the diameter of the master ball, we want to be able to validate our results with a laser tracker and spherically-mounted reflectors (SMRs) come only in diameters of A major improvement in our new TriCal is the use of a master ball for mastering the digital indicators and defining the TCP (Figure 2a) that is larger than the datum balls (the precision balls of the 3D ball artifact). The use of this bigger master ball eliminates the need for a large kinematic platform that holds the master ball in the first version of TriCal [16]. Instead, a kinematic mount in the form of a trihedral socket is directly embedded in the center of the triaxial mount (Figures 2b and 3b). When the master ball is placed in the socket (Figure 2a), the center of the ball defines the TCP and allows all digital indicators to be mastered. Furthermore, a removable rare-Earth magnet (not shown in Figure 2) can be placed in the socket, thus restraining the ball when needed. This magnet is only used (1) when measuring with a CMM the coordinates of the TCP with respect to the mounting surface of TriCal, by probing the master ball, and (2) for attaching an SMR (spherically-mounted reflector) during measurements with a laser tracker. During mastering, it suffices to orient TriCal upwards and the magnet is not needed; the force of gravity acting on the master ball is much larger than the equivalent of the forces applied by the three digital indicators.
Since the measurement range of each indicator is 12.5 mm, the radius of the master ball must be about 6 mm larger than the radius of the datum balls that are to be probed (Figure 1), to allow a symmetric measurement range for the complete TriCal device. Datum balls are readily available in sizes of 0.5 in, 0.75 in, and 1 in. As for the diameter of the master ball, we want to be able to validate our results with a laser tracker and spherically-mounted reflectors (SMRs) come only in diameters of 0.5 in, 0.875 in, and 1.5 in, with the smallest and largest diameter being the most popular. Indeed, as mentioned in the previous paragraph, during validation, we will place an SMR in the trihedral socket for the master ball, so both balls must have the same diameter. Therefore, we choose 1.5 in for the diameter of the master ball (and of the SMR) and 1.0 in for the diameter of the datum balls, which gives a difference in their radii of 6.350 mm.
The placement of the digital indicators along the cylindrical channels is extremely important in order to allow optimal use of the 12.5-mm measurement range of each indicator. This placement could have been restrained by implementing a physical stopper along the channels of the triaxial mount, but we chose not to do so, to allow for more flexibility (e.g., potentially use other digital indicators). Since we are going to use 1-in datum balls for the ball artifact, the indicators must be placed so that when a 1-in ball is centered at the TCP, the indicators are retracted halfway, i.e., approximately 6 mm. Since we want the indicators to display "0" in the latter situation, when the master 1.5-in ball is placed in the socket, each indicator must be set to display 0.25 in, i.e., 6.350 mm. This is called the mastering ( Figure 2).
To know that each indicator is properly positioned along its axis, after the mastering, when you remove the master ball, each indicator must display −6.150 mm (6.350-12.500). In practice, however, this would require too many trials and errors. Furthermore, the 11.5 mm diameter of the disk-shaped tips provides another limitation. In order to have a plane-sphere contact, the center of the datum ball must not be farther than 5.750 mm from the axes of any of the indicators during the first contact. In other words, it is safer to assume that even when properly assembled, TriCal can only be used to measure the relative position of 1-in precision balls centered as far as 5 mm away from the TCP of TriCal.
The remaining elements of TriCal (see Figures 1 and 2a) are an aluminum mounting bracket for the triaxial mount that ends with a QC-11 tool changer from ATI, and another aluminum mounting bracket for optional steel weight disks. Thus, the total weight of the TriCal can range from 1.3 kg to 7 kg.

The 3D Ball Artifact
The 3D ball artifact is essentially a very rigid fixture with several 1-in datum balls positioned at precisely known locations in space (not just in one plane). Obviously, the more the datum balls, and the greater their distribution in the workspace of the robot, the better the performance of the calibration. However, for the proposed calibration system to be of any practical value, the artifact must be relatively portable and compact, as it must be carried by an operator and fit both on a medium-size CMM and in an existing robot cell.
Since we use extensively the BuildPro collection of modular fixtures and tables from Valtra, which allow precise positioning, we chose to employ BuildPro heavy-duty riser blocks for the body of the artifact. Specifically, we selected one 7.8-kg and two 5.7-kg riser blocks and arranged them as shown in Figures 4 and 5 to allow a maximum horizontal distance between two of the datum balls, and maximum height for the top datum ball. The vertical location of the two short riser blocks and of the fourth datum ball were selected through discretization and simulation in RoboDK [20], in order to allow a wide range of measurement orientations. As for the datum balls, these are manufactured by Micro Surface Engineering. The complete artifact weighs approximately 20 kg.
For validation purposes, three magnetic nests for 1.5-in SMRs are also attached to the artifact. Their centers define the world reference frame, x w y w z w , as shown in Figure 4. The locations of the four datum balls with respect to that reference frame are then measured on a Mitutoyo CRYSTA-Apex C 544 CMM and are presented in Table 1.
Sensors 2020, 20, x FOR PEER REVIEW 6 of 15 describe in the following section, the main measurement procedure (the so-called auto-centering) essentially consists of moving the robot end-effector iteratively until all digital indicators measure (almost) zero displacement.

Measurement Procedure
During the measurement phase, the robot must probe each of the four datum balls with different end-effector orientations. Each probing of a datum ball is essentially an automated procedure for bringing the robot TCP at the center of the datum ball.
Before the measurement phase, the digital indicators are mastered with the 1.5-in master ball, placed manually onto the TriCal nest ( Figure 2). Once the master ball in place, each indicator is set to 6.350 mm.
As already mentioned, it is crucial to measure on a CMM the axes of the cylindrical channels and the center of the master ball while in the trihedral socket, all with respect to the tool changer. Then, a tool reference frame is defined such that its center coincides with the center of the master ball Sensors 2020, 20, x FOR PEER REVIEW 6 of 15 describe in the following section, the main measurement procedure (the so-called auto-centering) essentially consists of moving the robot end-effector iteratively until all digital indicators measure (almost) zero displacement.

Measurement Procedure
During the measurement phase, the robot must probe each of the four datum balls with different end-effector orientations. Each probing of a datum ball is essentially an automated procedure for bringing the robot TCP at the center of the datum ball.
Before the measurement phase, the digital indicators are mastered with the 1.5-in master ball, placed manually onto the TriCal nest ( Figure 2). Once the master ball in place, each indicator is set to 6.350 mm.
As already mentioned, it is crucial to measure on a CMM the axes of the cylindrical channels and the center of the master ball while in the trihedral socket, all with respect to the tool changer. Then, a tool reference frame is defined such that its center coincides with the center of the master ball

Communication System
An extremely important advantage of TriCal is that the device is wireless, thanks to the embedded Bluetooth technology in the Sylvac digital indicators. The Bluetooth signals coming from each indicator are converted to virtual serial ports with the use of Sylvac's V-MUX (Virtual Multiplexer) software in a PC. The PC then communicates with the robot via Ethernet. As we will describe in the following section, the main measurement procedure (the so-called auto-centering) essentially consists of moving the robot end-effector iteratively until all digital indicators measure (almost) zero displacement.

Measurement Procedure
During the measurement phase, the robot must probe each of the four datum balls with different end-effector orientations. Each probing of a datum ball is essentially an automated procedure for bringing the robot TCP at the center of the datum ball.
Before the measurement phase, the digital indicators are mastered with the 1.5-in master ball, placed manually onto the TriCal nest ( Figure 2). Once the master ball in place, each indicator is set to 6.350 mm.
As already mentioned, it is crucial to measure on a CMM the axes of the cylindrical channels and the center of the master ball while in the trihedral socket, all with respect to the tool changer. Then, a tool reference frame is defined such that its center coincides with the center of the master ball and its axes coincide with the axes of the channels. Of course, since the axes are not perfectly orthogonal and concurrent, we used a 3D metrology software (PolyWorks) to find the best fit.
Once the tool reference frame is correctly defined, it is easy to jog the robot along the axes of the three digital indicators. After characterization (Figure 4), the artifact is placed in the robot cell in its prescribed location ( Figure 5). In our case, since we use a BuldingPro welding table and fixtures that have precision holes equally spaced with tolerance of about 40 µm and surfaces with flatness of about 0.3 mm per 1 m, we know the positions of the datum balls with respect to the robot's base frame with good accuracy (better than 1 mm). Furthermore, we have precise knowledge of the robot tool reference frame as it was measured on a CMM. Finally, a robot like the one used in our study typically has position errors that are less than 4 mm, before calibration. Therefore, even without calibration, the robot can bring its TCP well within the 5-mm measurement range of TriCal from the center of each datum ball. Thus, there is no need for manually teaching the positions of the datum balls and the whole measurement sequence can be programmed off-line.
Once the TriCal is positioned onto a datum ball using only the inherent position accuracy of the non-calibrated robot, an automated centering sequence is launched. Essentially, the measurements from the indicators are read in the PC and a linear motion command with the respective displacements relative to the tool reference frame is sent to the robot. The sequence is repeated several times, until all three indicators read displacements of less than 3 µm. Then, the robot joint values are retrieved in the PC and recorded. The auto-centering sequence lasts 30 s on the average. The robot then backs the TriCal away, moves it to a different approach pose, then brings it to the datum ball with a different orientation, and finally the auto-centering procedure is launched again. Each of the four datum balls is probed with several different orientations.
The complete 3D environment was modeled in RoboDK [23] and the whole measurement procedure was implemented in the same software. Thus, 3D interferences were accounted for and avoided. Python scripts were written for interfacing with the indicators, for the auto-centering procedure (Figure 6), and for the complete measurement sequence. Note that RoboDK already comes with the necessary "plugins" to control a KUKA robot over Ethernet. Thus, the whole measurement procedure is fully automated and executed from RoboDK, except for the mastering of TriCal.
The whole procedure is summarized in Table 2.

1.
Attach 3D ball artifact, preliminarily inspected on a CMM, to the robot's base support, in a precisely known location.

2.
Attach TriCal, preliminarily adjusted with the desired total weight and inspected on a CMM, to the flange of the industrial robot.

3.
Start robot in manual mode, reorient TriCal upwards and then manually master the three digital indicators.

4.
Switch robot to automatic mode and run RoboDK on PC connected to the robot.

5.
Execute Python code for probing each of the four datum balls with 20 different orientations, preliminarily determined through observability analyses. Each probing is based on the auto-centering procedure outlined in Figure 5. Once all 80 joint targets are recorded, identify the 31 robot parameters. 6.
Once these 31 robot parameters identified, use RoboDK to calculate so-called fake targets for each new desired end-effector pose. procedure was implemented in the same software. Thus, 3D interferences were accounted for and avoided. Python scripts were written for interfacing with the indicators, for the auto-centering procedure (Figure 6), and for the complete measurement sequence. Note that RoboDK already comes with the necessary "plugins" to control a KUKA robot over Ethernet. Thus, the whole measurement procedure is fully automated and executed from RoboDK, except for the mastering of TriCal.

Measurement Accuracy
In this section, we will estimate the accuracy of the complete system and measurement procedure. However, since the rated position repeatability of the robot used (or any similar small robot with a payload between 1.3 kg and 7 kg) is 30 µm, there is no need for complex analyses-a quick verification shows that our measurement accuracy is several times better than 30 µm. A summary of the validation is given in Table 3. Table 3. Procedure for measuring the precision of TriCal.
Place the 1.5-in master ball in the trihedral socket of the triaxial mount.

2.
Master all three digital indicators.

3.
Measure the position of the master ball with the CMM.

4.
Remove the master ball.

5.
Automatically position a 1-in datum ball attached to a highly precise six-axis robot until all three indicators are at zero. 6.
Measure the position of the datum ball with the CMM. 7.
Move the datum ball away. 8.
Repeat step 5-7 two more times.
The sphericity and diameter tolerance of the 1-in datum balls and of the 1.5-in master ball used in this work are ±1.27 µm. The accuracy of the digital indicators is 1.8 µm. Finally, the Mitutoyo CRYSTA-Apex C 544 CMM used for characterization of TriCal has an uncertainty of 1.9 µm.
If we were to use TriCal as a 3D measurement device, i.e., for measuring the precise offset of the center a 1-in datum ball with respect to the tool reference frame, then we must also measure the orthogonality of the three channels in the tri-axial mount of TriCal, or more importantly the orthogonality of the planar surfaces of the three disk-shaped tips, which we did. However, recall that we do not need TriCal to be accurate; we only need it be precise. Essentially, we need that when TriCal is centered over a 1-in datum ball such that all three indicators display "0.000", the center of that datum ball is extremely close to the TCP, which is the center of the 1.5-in master ball during mastering. Therefore, we built the setup shown in Figure 7 and performed the following measurements on a CMM.

Robot Modeling and Parameter Identification
The robot kinematic parameters are modeled according to the Modified Denavit-Hartenberg (MDH) convention [25]. An additional parameter, 1 i   , defines the skewness between the axes of the second and third joint [26]. The robot nominal MDH parameters are presented in Table 4. The homogeneous matrix transformation for each joint frame is calculated as, We first position the 1-5-in master ball in the trihedral socket of TriCal and master all three digital indicators (i.e., set them to 6.350 mm). Then, we measure the position of the master ball with the CMM. This is the actual TCP of TriCal. (We used a similar setup to measure that same TCP but with respect to the tool changer of the complete TriCal assembly.) We then removed the master ball and mounted one of the datum balls on a very small and highly precise robot arm-Mecademic's Meca500 [24]. We then used another auto-centering procedure to move the datum ball until all indicators shows a maximum displacement of ±3 µm. We then measured the datum ball with the CMM. We repeated the last phase three times (i.e., measured the datum ball after three auto-centering sequences). The maximum deviation measured between the positions of the datum ball and the position of the master ball was about 2 µm.
Even if we consider the errors in the positions of the datum balls on the artifact (Figure 4) due to the 1.9 µm measurement uncertainty and the minor deflections of the artifact, our measurement procedure is clearly several times more accurate than the repeatability of the robot itself. In fact, it is even more accurate than a measurement with a laser tracker.

Robot Modeling and Parameter Identification
The robot kinematic parameters are modeled according to the Modified Denavit-Hartenberg (MDH) convention [25]. An additional parameter, β i−1 , defines the skewness between the axes of the second and third joint [26]. The robot nominal MDH parameters are presented in Table 4.
The homogeneous matrix transformation for each joint frame is calculated as, where i is the frame number, and the matrix transformations include the rotation matrices corresponding to the twist angle α i−1 , the joint angle θ i , and the rotation parameter β i−1 , along with the translation matrices corresponding to the link length a i−1 and the link offset d i . The tool and base frame transformation matrices, T 6 T (χ T ) and T W 0 (χ B ), respectively, are calculated as: The tool frame is calculated with respect to the robot flange and the base frame is calculated with respect to the world frame. The tool and base reference frame parameters are shown in Table 5.

Frame
x A total of 31 independent parameter errors that are to be identified are included in the complete robot model. The error parameters include 26 kinematic parameters and 5 joint stiffness parameters (c 2 , c 3 , . . . , c 6 ) as listed in Tables 6 and 7. Indeed, several possible errors are not identified due to redundancies. The first link errors (δα 0 , δa 0 , δd 1 , δθ offs1 ) are dependent on the base frame. Furthermore, the axes of joints 2 and 3 are parallel, so only one of either δd 2 or δd 3 should be included model. Finally, since the tool reference frame is precisely measured on a CMM, we do not consider the tool frame parameters into the identification process. Thus, the 31 independent parameters retained are the 6 errors in the coordinates of the base frame, the 19 errors of the MDH parameters of frames 2 to 6 except for δd 2 , the skewness parameters between the axes of joints 2 and 3, and the 5 stiffness parameters for joints 2 to 6. Table 6. Base and Tool Calibration Parameters.

Frame
x Table 7. Robot Calibration Kinematic and Joint Stiffness Parameters. 4 + δθ o f f s,4 + c 4 τ 4 n/a 5 α 4 + δα 4 a 4 + δa 4 d 5 + δd 5 q 5 + θ o f f s,5 + δθ o f f s,5 + c 5 τ 5 n/a 6 α 5 + δα 5 a 5 + δa 5 d 6 + δd 6 q 6 + θ o f f s, 6 + δθ o f f s,6 + c 6 τ 6 n/a The gearbox of each joint is modeled iteratively in order to identify the stiffness parameters. The gearbox model includes a linear torsional spring coefficient along with the external torque applied to each robot joint, except for the stiffness model of the first joint which is ignored, because of no external torque is applied on joint 1 in our setup. The Newton-Euler [25] algorithm was applied in order to find the external torque of the joints.
With a given set of joint angles, and the initial known parameters, the homogeneous transformation matrix can be calculated with forward kinematic calculations through each frame transformation matrix.
The constant parameter vector of the complete robot model includes all MDH parameters (link twists α, link lengths a, link offsets d and joint offsets θ offs ), all six stiffness coefficients (c) and all base (χ B ) and tool frame (χ T ) parameters.
Variable parameters are considered to be the input joint configuration vector given as, and the torques applied to the joint gearbox (τ). The kinematic chain of the robot is calculated through consecutive link transformations: The transformation chain is completed through implementing the world and tool frames. The final version of the transformation matrix is calculated as, The homogeneous matrix transformation is calculated as the estimated position through The difference between the measured position data and the estimated position calculations gives the absolute value of the error parameter vector: Identification of the new robot parameters starts with obtaining the position Jacobian matrix, J, by differentiating the error vector equations around the robot nominal parameters as, where ρ 1 , ρ 2 , . . . , ρ m are the 31 independent elements of vector ρ. Let ρ = [ρ 1 , ρ 2 , . . . , ρ m ] T . For n robot measurements, the linearized equation of the position error vector ∆x is given by multiplying the Jacobian matrix with the deviation of the calibration parameters: In our case, the parameter deviation ∆ ρ. must be the output of the equations since we know the position error vector ∆x and the Jacobian matrix elements. The Jacobian matrix is inverted with Moore-Penrose inverse and the equation becomes, leaving the deviation parameter vector as the result of the equation An observability estimation is made, in order to find the optimal set of joint angles for parameter identification. The aim of using an observability index is to reach better identification in the non-kinematic parameters. Observability index O1 [27] was used, where a previous study showed better results comparing to other observability index equations [28]. The equation is presented as, where n is the number of joint sets used in measurements, m is the number of calibration parameters (31 in our case), σ are the singular values taken from the Jacobian matrix. The output joint angles are chosen using the DETMAX algorithm [29]. The algorithm consists of rearranging an initial set of n joint angles by adding from and extracting to the N configuration pool, until getting the best observability index inside the n joint set.

Validation and Results
Initially, a large pool of feasible robot joint sets (attainable without collisions) corresponding to datum ball probing was generated according to the measurement setup. By using the observability index, 80 of these joint sets were selected for the actual measurements, 20 for each datum ball.
Once the 31 error parameters are identified, a validation is performed using a FARO laser tracker ( Figure 8). Firstly, the world reference frame with respect to the laser tracker frame is obtained by measuring the positions of the three magnetic nests on the 3D ball artifact. Then, the artifact is removed, and an SMR is positioned in the trihedral socket of TriCal with the help of a rare-Earth magnet. Recall that the center of the SMR corresponds exactly to the robot TCP. The robot is then sent to 500 random joint sets, with the only constraints of avoiding collisions and having the SMR face the laser tracker. An observability estimation is made, in order to find the optimal set of joint angles for parameter identification. The aim of using an observability index is to reach better identification in the nonkinematic parameters. Observability index O1 [27] was used, where a previous study showed better results comparing to other observability index equations [28]. The equation is presented as, where n is the number of joint sets used in measurements, m is the number of calibration parameters (31 in our case), σ are the singular values taken from the Jacobian matrix. The output joint angles are chosen using the DETMAX algorithm [29]. The algorithm consists of rearranging an initial set of n joint angles by adding from and extracting to the N configuration pool, until getting the best observability index inside the n joint set.

Validation and Results
Initially, a large pool of feasible robot joint sets (attainable without collisions) corresponding to datum ball probing was generated according to the measurement setup. By using the observability index, 80 of these joint sets were selected for the actual measurements, 20 for each datum ball.
Once the 31 error parameters are identified, a validation is performed using a FARO laser tracker ( Figure 8). Firstly, the world reference frame with respect to the laser tracker frame is obtained by measuring the positions of the three magnetic nests on the 3D ball artifact. Then, the artifact is removed, and an SMR is positioned in the trihedral socket of TriCal with the help of a rare-Earth magnet. Recall that the center of the SMR corresponds exactly to the robot TCP. The robot is then sent to 500 random joint sets, with the only constraints of avoiding collisions and having the SMR face the laser tracker. The measurements for identification with the TriCal and the measurements for validation with the FARO laser tracker are demonstrated in the Novel, affordable device for industrial robot calibration video found on YouTube [30].
The robot parameters as identified after measurements with the TriCal are presented in Table 8. Then the position errors after calibration (i.e., after using the identified parameters in Table 8) and measured with the laser tracker in 500 poses are presented in Figure 9. The measurements for identification with the TriCal and the measurements for validation with the FARO laser tracker are demonstrated in the Novel, affordable device for industrial robot calibration video found on YouTube [30].
The robot parameters as identified after measurements with the TriCal are presented in Table 8. Then the position errors after calibration (i.e., after using the identified parameters in Table 8) and measured with the laser tracker in 500 poses are presented in Figure 9. Finally, in order to compare the efficiency of the TriCal to that of the laser tracker, when it comes to robot calibration, we also performed an identification using measurements taken only with a laser tracker. Specifically, we took 80 measurements throughout the workspace of the robot, selected using the observability analysis described in Section 5. Then, the accuracy after calibration was measured in the same 500 poses used in the case of TriCal.
The final results are shown in Table 9. Note that in all tests, the weight of the end-effector was 6 kg, i.e., the maximum rated payload of the robot. As expected, the laser tracker leads to slightly better results, because the measurements used for identification are more evenly distributed throughout the workspace of the robot.

Conclusions
A practical method for on-site robot calibration based on a novel wireless 3D measurement device was presented. The method was tested on a KUKA KR6 R700 sixx industrial robot. It was found that the efficiency of the new method is close to that of a laser tracker, when it comes to calibrating a small industrial robot. To further improved the efficiency of our method, more research is needed on the design of the 3D ball artifact. A wider distribution of the datum balls is needed, and the artifact has to be more portable.
That said, the new device and the 3D ball artifact are several times less expensive than the most affordable laser tracker. Indeed, the cost of the new device is less than USD 5000. Furthermore, although not discussed in this paper, we may argue that our device is better suited to characterizing the repeatability of an industrial robot, as it is more precise at measuring micrometer displacements.
Author Contributions: The design of the TriCal device, its implementation in RoboDK, and all measurements on the CMM were made by O.S. The optimal design and location of the 3D ball artifact, the programming of the complete measurement procedures with TriCal and with the FARO laser tracker, and the elaboration of the calibration method were done by C.I. The work was directed and supervised by I.B. All authors have read and agreed to the published version of the manuscript.