## 2 Materials and Methods
### Ground Truth Trajectory  
The calibration procedure proposed in this work requires the development of several motion experiments conducted in a controlled, clean and structured area, without obstacles on the floor and with plain and clean surrounding walls. During these motion experiments the odometry and the ground truth (or real) trajectory of the mobile robot are registered for offline calibration analysis. The trajectory estimated with the odometry is based on relative onboard information that is prone to cumulative systematic errors (see Section 2.4). The trajectory estimated from the precise information provided by the onboard LIDAR (providing 1.081 points per scan and a radial distance range up to 30 m) and processed with SLAM [8] is assumed as the ground truth trajectory of the mobile robot [20] because the absolute LIDAR information gathered in this clean conditions is not prone to systematic errors. The trajectory estimated with the odometry is based on relative onboard information that is prone to cumulative systematic errors (see Section 2.4) while the ground truth trajectory estimated with the precise onboard LIDAR is based on an absolute description of the structured environment around the mobile robot that is not prone to systematic errors. This procedure to obtain the ground truth trajectory was used previously in [20]. In case an accurate onboard LIDAR is not available, it will be necessary to obtain the ground truth trajectory using other means such as an external laser tracker [27; 28] or external cameras [29]. Figure 6a shows a representation of the odometry and ground truth trajectories, which are usually different because of the existence of systematic odometry errors. The values represented are: the starting point of the mobile robot \((x_{i},\ y_{i},\ \theta_{i})\), the motion command applied \(M=(v,\alpha,\omega,t_{r})\), the true final position and orientation estimated with SLAM \(\left(xgt_{f},\ ygt_{f},\ \theta gt_{f}\right)\), and the final position and orientation of the mobile robot estimated with the odometry \(\left(x_{f},\ y_{f},\ \theta_{f}\right)\). In each motion experiment the mobile robot also registers all intermediate information needed to replicate the offline computation of the odometry and ground truth trajectories in order to perform the calibration of the odometry. The information registered is (see Figure 6b): a vector containing the sequence of instantaneous angular velocities of the three wheels and the elapsed time \(E(k=1\ldots n)=[t(k),[\omega_{a}(k),\omega_{b}(k),\omega_{c}(k)]]\), where \(n\) is the number of velocity samples available; a vector containing the position of the mobile robot estimated by the odometry \(O(k=1\ldots n)=[t(k),[x(k),y(k),\theta(k)]]\); and a vector containing the ground truth position \(GT(p=1\ldots m)=[t(p),[xgt(p),ygt(p),\theta gt(p)]]\) estimated with SLAM. Please note that \begin{table}
\begin{tabular}{c c c c} \hline \hline \(\frac{\text{AM}^{-1}}{\text{AR}_{b}}\) & \(\text{I}_{\text{g}_{\star}=0.195\text{ m}}\) & \(\frac{\text{AM}^{-1}}{\text{AR}_{b}}\) & \(\frac{\text{AM}^{-1}}{\text{AR}_{b}}\) & \(\frac{\text{AM}^{-1}}{\text{AR}_{b}}\) \\ \hline \(\left[\begin{array}{cc}0.1461&0.1461&0.1461\\ -0.0843&-0.0843&-0.0843\\ -0.4325&-0.4325&-0.4325\end{array}\right]\) & \(\left[\begin{array}{cc}-0.5774&0.0000&0.0000\\ 0.3333&0.0000&0.0000\\ 1.7094&0.0000&0.0000\end{array}\right]\) & \(\left[\begin{array}{cc}0.0000&0.0493&-0.0493\\ 0.0000&-0.0285&0.0285\\ 0.0000&-0.1461&0.1461\end{array}\right]\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Sensitivity of \(M^{-1}\) to the values of the nominal kinematic parameters of the wheel \(a\).