## 4 Calibration Experiment  
### Repeated Positioning and Calibration Experiment of Single Robot  
The experiment uses the 1600 ABB robot to carry out the repeated calibration experiment of the base coordinates of the single robot (\(i=1\)). The lower computer communicates with the wire sensor through the MODBUS protocol through the single chip microcomputer (the chip is STM32F103 ZET6). As shown in Figure 6, the robot is controlled to different positions through the teach pendant (in order not to lose generality, there are 14 groups of teaching point measurement, \(j=1,2,\cdots,14\)), the rope length which output by the sensor and tool end adapter position shown on the teach pendant are recorded (Figure 7). After that, adjust the calibration tooling to continue the measurement, and the recorded data is shown in Table A1. \begin{table}
\begin{tabular}{c c c c c} \hline
**Comparison Condition** & **Accuracy** & **Cost** & **Human Factor** & **Workspace Limitation** \\ \hline Handshake & o & + & - & - \\ Coordinate measuring & + & - & + & + \\ machine & & & & \\ Three-point & o & + & + & + \\ measurement & & & & \\ \hline \end{tabular}
\end{table} 
Table 1: Comparison of the three calibration methods for dual-robot. The 14 items of data in Table 1 are divided into two groups (7 items of data in each group), and the objective function is constructed to calculate the optimal value of \(p_{k(B_{i})}\) in Formula (5). \(L_{1j,k}\) is the rope length output by the wire sensor and \(t_{1j}\) is the position of the robot end adapter. \[ \begin{cases}S_{k\_1}=\sum\limits_{j=1}^{7}\left(\left\|t_{1j}-p_{k\_1(B_{1})} \right\|-L_{1j,k}\right)^{2}\\ S_{k\_2}=\sum\limits_{j=8}^{1}\left(\left\|t_{1j}-p_{k\_2(B_{1})}\right\|-L_{1j,k}\right)^{2}\end{cases}  \tag{10}\]  
In Formula (10), \(S_{k\_1}\) and \(S_{k\_2}\) are the objective functions of the first seven groups and the last seven groups of data corresponding to the calibration point \(p_{k}\). \(p_{k\_1(B_{1})}\) and \(p_{k\_2(B_{1})}\) are the value of \(p_{k(B_{1})}\) calculated corresponding to the two groups of data. The objective function is written by MATLAB 2022b, and the optimal value of the objective function is calculated by genetic algorithm. Set the number of optimization variables to 3 and set the number of initial populations to 50. In order to find the local optimal value, the definition domain is set to \([1400,-400,50]\ \sim[1600,-50,350]\), and other conditions are defaulted. The final result is rounded to three decimal places. Figure 6: Single robot calibration measurement view. Figure 7: Single robot tool end adapter location diagram: (**a**) calibration point \(k=1\); (**b**) calibration point \(k=2\); (**c**) calibration point \(k=3\). \[p_{1\_1(B_{1})=}[1557.915,-172.479,293.644]\]  
\[p_{2\_1(B_{1})=}[1549.650,-176.344,186.724]\]  
\[p_{3\_1(B_{1})=}[1553.236,-356.504,83.975]\]  
\[p_{1\_2(B_{1})=}[1554.390,-172.439,293.414]\]  
\[p_{1\_2(B_{1})=}[1548.649,-175.940,185.964]\]  
\[p_{1\_2(B_{1})=}[1553.048,-355.722,83.659]\]  
Write a MATLAB program to calculate \(H_{B_{1}}^{G}\) corresponding to the above two groups of data through Formulas (6), (8), (9), named \(H_{B_{1}}^{G}\) and \(H_{B_{1}}^{G}\). \[H_{B_{1}^{1}}^{G}= \begin{bmatrix}0.058&-0.85&0.026&1564.579\\ 0.848&0.055&-0.068&-189.606\\ 0.077&0.036&0.996&99.142\\ 0&0&0&1\end{bmatrix} \]  
\[H_{B_{1}^{2}}^{G}= \begin{bmatrix}0.049&-0.853&0.025&1562.684\\ 0.852&0.047&-0.047&-187.948\\ 0.053&0.032&0.998&94.137\\ 0&0&0&1\end{bmatrix} \]  
In order to better evaluate the error of this calibration experiment, the error \(\Delta\) is defined as:  
\[\Delta= \begin{bmatrix}\Delta_{p},\Delta_{a}\end{bmatrix}  \tag{11}\]  
In Formula (11), \(\Delta_{p}\) is the calibration error in the position and \(\Delta_{a}\) is the calibration error in the angle.