## 2 Materials and Methods
### Iterative odometry Calibration Procedure  
This paper proposes the application of an iterative calibration procedure to tune or adjust the effective value of the kinematic parameters of the mobile robot: \(R_{a},\ R_{b},\ R_{c},\ r_{a},\ r_{b},\ r_{c},\ \delta_{a},\delta_{b},\delta_{c}\), used to compute the \(M^{-1}\) matrix. These kinematic parameters have been described in Section 2.2 and represented graphically in Figure 2. The planned result of the iterative calibration procedure is a better match between the odometry and ground truth mobile robot trajectories. Figure 8 depicts the flowchart of the iterative odometry calibration procedure. The iterative process starts with the nominal or theoretical values of the kinematic parameters of the mobile robot \((R_{a},R_{b},R_{c},\ r_{a},r_{b},r_{c},\ \delta_{a},\delta_{b},\delta_{c})\), which are used to compute a first estimation of the \(M^{-1}\) matrix. Then, the iterative process uses the initial position and orientation of the mobile robot \((x_{i},y_{i},\theta_{i})\) and the sequence of angular rotational velocities of the wheels obtained from the encoders \(E(k=1\ldots n)=\left[t(k),[\omega_{a}(k),\omega_{b}(k),\omega_{c}(k)]\right]\) to compute the odometry trajectory \(O(k=1\ldots n)\) of the mobile robot and estimate the final position and angular orientation of the mobile robot \(\left(x_{f},y_{f},\theta_{f}\right)=O(k=n)\). Then, the cost function is used to compare this estimate of final position and orientation of the mobile robot \(\left(x_{f},y_{f},\theta_{f}\right)\) with its true position and orientation \(\left(xgt_{f},\ ygt_{f},\ \theta gt_{f}\right)=GT(p=m)\). The iterative minimization function evaluates the cost function and decides between repeating the loop with new values of the kinematic parameters or stopping the iterative minimization search. The final result of this iterative procedure is an improved or corrected \(M^{-1}\) matrix ready to better estimate the odometry of the mobile robot APR-02. The nonlinear minimization functions evaluated in this paper are based on gradient search and genetic algorithms (GA). In both cases, the inputs and genome of the minimization functions are the initial values of the kinematic parameters \(param_{i}\) defined as:  
\[param_{i}=(0.195,\,0.195,\,0.195,\,0.148,\,0.148,\,0.148,\,60.000,\,180.000, \,300.000) \tag{15}\]  
And the upper (\(param_{ub}\)) and lower (\(param_{lb}\)) bounds proposed to guarantee the physical interpretation of the results:  
\[param_{ub}=(0.220,\,0.220,\,0.220,\,0.158,\,0.158,\,0.158,\,62.000,\,182.000, \,302.000) \tag{16}\] \[param_{lb}=(0.170,\,0.170,\,\,0.170,\,0.138,\,0.138,\,0.138,\,58.000, \,178.000,\,298.000)\]  
The specific search functions used in this paper are:  
**Fmin search function**. The implementation of a gradient search nonlinear minimization to calibrate the odometry is based on the Matlab function \(fmincon.m\), which is a nonlinear multivariable function that attempts to iteratively find the local unconstrained minimum of an objective multivariate cost function summarized in a value \(CF\) evaluated within specific bounds. In this calibration application, the search will use \(param_{i}\) as the initial population and \(param_{lb}\) and \(param_{ub}\) as the lower and upper bounds of the iterative  
Figure 8: Flowchart of the complete calibration procedure. search. The stopping criteria of this iterative search is a change in \(CF\) less than the default value of the parameter StepTolerance (\(10^{-10}\)) with a maximum constraint violation less than the default value of the parameter Constraint Tolerance (\(10^{-6}\)) before reaching the maximum number of iterations that is usually defined as the number of variables of \(param_{i}\) multiplied by 100 (900). **GA search function**.