## 3 Experimental Results
### Robot Error Compensation Results  
As mentioned in Section 2.4, we utilized the non-linear correction algorithm to compensate for the robot error. Figure 14 demonstrates the robot error experiment setup. First, the checkerboard (side of each square is 20 mm) is placed on the worktable; then, the worktable center point is considered to be the centroid and does not have an error (meaning in the worktable center point, \(E_{x}=E_{y}=0\)).  
Figure 14: Initial position of robot and conveyor and gripping position.  
Figure 13: Repetition error and error percentage of the 6-DoF pose estimation system: (a) translations of X, Y, and Z axes, and (b) rotations of RX, RY, and RZ axes.  
The worktable center point is set to be the base point, where the error is 0 for both the \(X\) and \(Y\) axes (Figure 15). The theory position of the other points (blue dots in 0) in the region of interest (red-dashed rectangle in 0) will be setup according to the base point and will be inputted into the controller. After the robot moves to the input position, the error is observed and measured, which is the displacement between the supposed input position (blue dot) and the actual moving position, by using the caliper. There are total of 198 points that were measured in the study.  
Using the input positions, the matrix \(A\) was calculated by recalling Equation (21). The matrix \(B\) is the error measured between the input and the actual position, recalling Equation (22) to obtain matrix \(C\)--the coefficient matrix:  
\[C=\left[\begin{array}{ccc}1.03\times 10^{-6}&-4.95\times 10^{-7}\\ 2.25\times 10^{-7}&6.48\times 10^{-7}\\ -4.55\times 10^{-7}&-9.55\times 10^{-8}\\ 3.69\times 10^{-7}&2.43\times 10^{-7}\\ -2.21\times 10^{-4}&2.77\times 10^{-4}\\ 3.11\times 10^{-5}&-2.03\times 10^{-4}\\ 2.98\times 10^{-4}&3.01\times 10^{-4}\\ -0.20&-0.03\\ -0.12&-0.27\\ 44.69&17.46\end{array}\right] \tag{28}\]  
After applying the coefficient matrix to the calculation, the robot's positioning accuracy significantly improved. 0a shows the robot error before using the compensation function. As can be seen, the error of the robot was very large, up to 39.69 mm on the \(X\)-axis and 45.45 mm on the \(Y\)-axis. The average error without correction was 10.55 and 20.86 mm on the \(X\)-axis and the \(Y\)-axis, respectively. On the other hand, 0b demonstrates the sharp enhancement of the robot positioning. Compared to before compensation, the average translation errors can now reduce by over 20 times with the \(X\)-axis and 40 times with the \(Y\)-axis, to 0.49 and 0.37 mm on average, respectively. The maximum errors were also downgraded to 3.47 and 2.50 mm for the \(X\) and \(Y\) axes, respectively.  
Figure 16 visualizes the positions of all the points which were considered in the experiment. As shown in the figure, the real measurement positions (the red circle) of the input have a larger error compared to the input positions (the black square). However, after compensation using the non-linear correction algorithm, the robot positions (the blue triangle) have come closer to the input positions, and this statement is proven by  
Figure 15: Positioning errors of the robot on the XY plane (**a**) before compensation and (**b**) after compensation.  
the fact that the blue triangle points almost coincide with the black square points. This result indicates that the robot error can be solved by applying the coefficient function by software compensation.