# A Self-Calibration Method for Robot End-Effector Using Spherical Constraints
## 2 The Error Model
### Geometric Error  
Robot geometric errors stem from a variety of factors. During manufacturing, insufficient machining precision in the mechanical structure can result in dimensional and shape deviations in components such as links and joints. Transmission errors may also occur due to clearances or deformations in the drive system, including reducers or gears. Over time, prolonged use or the impact of end-effector loads can lead to slight loosening or deformation of joints, affecting their positional accuracy. Improper handling or inaccurate calibration during installation can introduce pose deviations. Additionally, environmental factors such as fluctuations in temperature and humidity can cause variations in component dimensions, further compromising the robot's accuracy. Thus, it is crucial to develop a geometric error model and identify kinematic parameters to ensure the end-effector's positioning accuracy. In the D-H model, geometric errors between two adjacent links can be represented by \(\Delta\theta_{i}\), \(\Delta d_{i}\), \(\Delta\beta_{i}\), \(\Delta a_{i}\) and \(\Delta\alpha_{i}\). Typically, \(\Delta\beta_{i}\) does not exist and \(\Delta d_{i}\
eq 0\). However, when the axes of two adjacent joints are nearly parallel, \(\Delta d_{i}\) becomes zero while \(\Delta\beta_{i}\) becomes non-zero. The theoretical transformation matrix between two adjacent coordinate systems differs from the actual transformation matrix by a deviation \(\mathrm{d}T_{i}\). Assuming the theoretical homogeneous transformation matrix is \(T_{i}^{N}\), the actual homogeneous transformation matrix is given by Equation (3). \[T_{i}^{R}=T_{i}^{N}+\mathrm{d}T_{i} \tag{3}\]  
Figure 2: KUKA KRS R1400 robot D–H coordinate system. By performing a total differential on \(\mathrm{d}T_{i}\), Equation (4) is derived. \[\mathrm{d}T_{i}=\frac{\partial T_{i}^{N}}{\partial\theta_{i}}\mathrm{d}\theta_{i }+\frac{\partial T_{i}^{N}}{\partial d_{i}}\mathrm{d}d_{i}+\frac{\partial T_{i} ^{N}}{\partial a_{i}}\mathrm{d}a_{i}+\frac{\partial T_{i}^{N}}{\partial a_{i} }\mathrm{d}\alpha_{i}+\frac{\partial T_{i}^{N}}{\partial\beta_{i}}\mathrm{d} \beta_{i} \tag{4}\]  
The differential transformation of the coordinate frame consists of a combination of differential translation and differential rotation, which can occur in any order. Therefore, \(\mathrm{d}T_{i}\) can be expressed as Equation (5), where \(\Delta_{i}\) represents the differential operator for the i-th coordinate, accounting for the coordinate system variations caused by geometric errors. \[\mathrm{d}T_{i}=\Delta_{i}T_{i}^{N} \tag{5}\]  
Based on differential kinematics [17], Equation (6) is obtained. \[\Delta_{i}= \begin{bmatrix}0&-\delta z&\delta y&\mathrm{d}x\\ \delta z&0&-\delta x&\mathrm{d}y\\ -\delta y&\delta x&0&\mathrm{d}z\\ 0&0&0&0\end{bmatrix}  \tag{6}\]  
By converting the differential operator into a column vector, we have Equation (7). \[\Delta_{i}= \begin{bmatrix}\mathrm{d}x_{i}\\ \mathrm{d}y_{i}\\ \mathrm{d}z_{i}\\ \delta x_{i}\\ \delta y_{i}\\ \delta z_{i}\end{bmatrix} = \begin{bmatrix}0&0&c\theta_{i}&-d_{i}\delta\theta_{i }&a_{i}s\alpha_{i}s\theta_{i}-d_{i}c\alpha_{i}c\theta_{i}\\ 0&0&s\theta_{i}&d_{i}c\theta_{i}&-a_{i}s\alpha_{i}c\theta_{i}-d_{i}c\alpha_{i }s\theta_{i}\\ 0&1&0&0&a_{i}c\alpha_{i}\\ 0&0&0&c\theta_{i}&-c\alpha_{i}s\theta_{i}\\ 0&0&0&s\theta_{i}&c\alpha_{i}c\theta_{i}\\ 1&0&0&0&s\alpha_{i}\end{bmatrix} \cdot \begin{bmatrix}\mathrm{d}\theta_{i}\\ \mathrm{d}d_{i}\\ \mathrm{d}a_{i}\\ \mathrm{d}\beta_{i}\end{bmatrix} =G_{i}\cdot\mathbf{X}_{i} \tag{7}\]  
In the above Equation (7), \(\Delta_{i}\) represents the error of the i-th coordinate frame relative to the (i \(-1\))-th coordinate frame, \(G_{i}\) is the geometric error transmission matrix, and \(\mathbf{X}_{i}\) is the geometric error vector. It is important that \(\mathrm{d}d_{i}\) and \(\mathrm{d}\beta_{i}\) cannot exist simultaneously, meaning that \(G_{i}\) is a \(6\times 4\) matrix, and \(\mathbf{X}_{i}\) is a \(4\times 1\) vector.