# Using Full Pose Measurement for Serial Robot Calibration
## 9 Discussion  
In this study, an open-chain robotic manipulator with \(N\) revolute joints was calibrated using three different methods and two different sets of data: 3D positions only, and full 6D poses. All three methods share the same strategy for determining link twists \(\mathbf{\tilde{\kappa}}\). Then, in Method 1, the error function \(Err_{pos}\) in (10) was minimized, and the remaining DH parameters \((\mathbf{\tilde{\epsilon}},\mathbf{\tilde{r}},\mathbf{\tilde{d}})\) were found by using 3D data only. In Method 2, a search for the zero offsets \(\mathbf{\tilde{\epsilon}}\) was performed separately by minimizing \(Err_{rot}\) in (17), which depends only on the orientation part of full 6D data. Once the zero offsets were known, the remaining DH parameters \((\mathbf{\tilde{r}},\mathbf{\tilde{d}})\) were found by minimizing \(Err_{pos}(\mathbf{r},\mathbf{d})\) in (10) using only the positional part of 6D data. Such an approach reduces the dimensionality of the search space when compared with minimization of \(Err_{pos}\) in Method 1. In addition, by using angles \(\psi_{k}\) of relative rotations \(\mathbf{D}_{k}\) in error function \(Err_{rot}\) in (17) and relative distances \(L_{k}\) between pairs of 3D points in error function \(Err_{pos}\) in (10), the proposed strategy decouples robot calibration from registration of the robot frame to the world frame. Different calibration strategies yielded different sets of fitted DH parameters which, in turn, led to different end-effector errors. This is expected, as the optimizer which uses different error functions and different sensor data usually converges to different solutions for the same kinematic model. It should be noted that both Methods 1 and 2 are equally valid and it is a matter of practicality which one is more useful. In Method 2, two different approaches to registration were used. Rotation \(\mathbf{\Omega}_{1}\) from the first approach minimizes distances between the sensor's 3D positions and robot's TCP points for \(K\) robot arm configurations [30]. Rotation \(\mathbf{\Omega}_{2}\) is calculated as the mean rotation \(\overline{\mathbf{\Omega}}\) of \(K\) relative rotations \(G_{k}\mathbf{R}_{k}^{-1}\) and, thus, minimizes angular distances between orientations of TCP frame and orientations provided by sensor. Therefore, one may expect that \(\mathbf{\Omega}_{2}\) is better than \(\mathbf{\Omega}_{1}\) in aligning robot orientations with sensor orientations. Indeed, end-effector angular errors \(\overline{\rho}\) shown in Figure 3b,d are smaller for \(\mathbf{\Omega}_{2}\) in Registration 2 (red line) than for \(\mathbf{\Omega}_{1}\) in Registration 1 (blue line). When it comes to the positional errors \(\overline{v}\), the situation is exactly opposite. Both translation vectors \(\mathbf{\tau}_{1}\) and \(\mathbf{\tau}_{2}\) are calculated in (19). Since \(\mathbf{\Omega}_{2}\) does not depend on positional data, the transformation \((\mathbf{\Omega}_{2},\mathbf{\tau}_{2},)\) does not minimize (in the least-square sense) the distances between sensor 3D positions and robot TCP points for \(K\) robot arm configurations. Transformation \((\mathbf{\Omega}_{1},\mathbf{\tau}_{1},)\) does minimize the distances, and therefore is expected to better align the sensor 3D positions with the robot TCP. Indeed, end-effector position errors \(\overline{v}\) shown in Figure 3a,c are smaller for \(\mathbf{\Omega}_{1}\) in Registration 1 (blue line) than for \(\mathbf{\Omega}_{2}\) in Registration 2 (red line). Analysis of the plots in Figure 3 suggests the optimal strategy: instead of choosing either the first \((\mathbf{\Omega}_{1},\mathbf{\tau}_{1},\,)\) or the second \((\mathbf{\Omega}_{2},\mathbf{\tau}_{2},\,)\) registration, take the best part from both. Use \(\mathbf{\Omega}_{2}\) to transform orientations \(\mathbf{R}_{k}\) of robot end-effector and use \((\mathbf{\Omega}_{1},\mathbf{\tau}_{1},\,)\) to transform robot TCP \(\mathbf{t}_{k}\).