# Systematic Odometry Error Evaluation and Correction in a Human-Sized Three-Wheeled Omnidirectional Mobile Robot Using Flower-Shaped Calibration Trajectories

^{*}

## Abstract

**:**

## 1. Introduction

#### New Contribution

## 2. Materials and Methods

#### 2.1. Omnidirectional Mobile Robot APR-02

#### 2.2. Odometry Trajectory

#### 2.3. Odometry Errors: Systematic and Non-Systematic

#### 2.3.1. Systematic Odometry Errors

#### 2.3.2. Non-Systematic Odometry Errors

#### 2.4. Systematic Odometry Error Sources in a Three-Wheeled Omnidirectional Mobile Robot

^{−16}[25]) is:

#### 2.5. Ground Truth Trajectory

#### 2.5.1. Distance and Angular Errors during a Trajectory

#### 2.5.2. Maximum Error in a Trajectory

#### 2.5.3. RMS Error in a Trajectory

#### 2.5.4. Cost Function Summarizing Trajectory Differences

#### 2.6. Iterative odometry Calibration Procedure

**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 $para{m}_{i}$ as the initial population and $para{m}_{lb}$ and $para{m}_{ub}$ as the lower and upper bounds of the iterative 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 $para{m}_{i}$ multiplied by 100 (900).

**GA search function**. The implementation of a genetic algorithms (GA) minimization to calibrate the odometry is based on the Matlab function ga.m, which will attempt to iteratively find the local unconstrained minimum of an objective multivariate cost function summarized in a value $CF$ evaluated within specific bounds. The inputs and outputs of the iterative search are the same as in the previous function. The initial population and bounds for the GA algorithm are defined using the Matlab function gaoptimset.m in the parameters InitialPopulation and PopInitRange. This iterative search stops if the average relative change in the best fitness of the cost function $CF$ is less than or equal to the default value of the parameter FunctionTolerance (10

^{−6}).

## 3. Systematic Odometry Error Evaluation and Correction

#### 3.1. Calibration Trajectories Depicting a Characteristic Flower-Shaped Figure

#### 3.2. Odometry Calibration Strategies and Results

**None**. This strategy provides a reference evaluation result of the cost function $C{F}_{VALIDATION}$ using the uncalibrated kinematic parameters to compute the odometry of the 5 repetitions of all calibration trajectories registered to validate the results.

**STA**. This strategy uses only the straight calibration trajectories corresponding to a forward motion and two additional motions at ±120° (Figure 9, trajectories: R1, R5 and R9). For example, STA-GA1 uses one repetition of the straight calibration trajectories and genetic algorithms, whereas STA-Fmin5 uses five repetitions of the straight calibration trajectories evaluated with the nonlinear multivariable function.

**STB**. This strategy uses only the curved clockwise and counterclockwise trajectories corresponding to a forward motion and two additional motions at ±120° (Figure 9, trajectories: B2, B6, B10, G12, G4 and G8).

**STC**. This strategy uses only the straight trajectories corresponding to a forward motion and eleven additional motions at ±30° (Figure 9, trajectories from R1 to R12).

**STD**. This strategy uses only the curved clockwise and counterclockwise trajectories corresponding to a forward motion and eleven additional motions at ±30° (Figure 9, trajectories from B1 to B12 and from G1 to G12).

**STE**. This strategy uses all the straight and curved paths that depict the characteristic flower-shaped figure (Figure 9, all calibration trajectories).

#### 3.3. Discussion of the Results Obtained with the Odometry Calibration Strategies

## 4. Discussion and Conclusions

## Author Contributions

## Funding

## Institutional Review Board Statement

## Informed Consent Statement

## Data Availability Statement

## Conflicts of Interest

## Appendix A

**Table A1.**Description of the motion commands and the corresponding target angular velocities of the wheels corresponding to the calibration trajectories shown in Figure 9.

Trajectory | Motion Command | Target Angular Velocities (rpm) | |||||
---|---|---|---|---|---|---|---|

$\mathit{v}\left(\mathit{m}/\mathit{s}\right)$ | $\mathit{\alpha}(\xb0)$ | $\mathit{\omega}\left(\mathit{r}\mathit{a}\mathit{d}/\mathit{s}\right)$ | $\mathit{d}\left(\mathit{m}\right)$ | ${\mathit{\omega}}_{\mathit{M}\mathit{a}}$ | ${\mathit{\omega}}_{\mathit{M}\mathit{b}}\text{}$ | ${\mathit{\omega}}_{\mathit{M}\mathit{c}}\text{}$ | |

R1 | 0.35 | 0 | 0 | 1.0 | −19.557 | 0.000 | 19.557 |

R2 | 0.35 | 30 | 0 | 1.0 | −11.291 | −11.291 | 22.583 |

R3 | 0.35 | 60 | 0 | 1.0 | 0.000 | −19.557 | 19.557 |

R4 | 0.35 | 90 | 0 | 1.0 | 11.291 | −22.583 | 11.291 |

R5 | 0.35 | 120 | 0 | 1.0 | 19.557 | −19.557 | 0.000 |

R6 | 0.35 | 150 | 0 | 1.0 | 22.583 | −11.291 | −11.291 |

R7 | 0.35 | 180 | 0 | 1.0 | 19.557 | 0.000 | −19.557 |

R8 | 0.35 | 210 | 0 | 1.0 | 11.291 | 11.291 | −22.583 |

R9 | 0.35 | 240 | 0 | 1.0 | 0.000 | 19.557 | −19.557 |

R10 | 0.35 | 270 | 0 | 1.0 | −11.291 | 22.583 | −11.291 |

R11 | 0.35 | 300 | 0 | 1.0 | −19.557 | 19.557 | 0.000 |

R12 | 0.35 | 330 | 0 | 1.0 | −22.583 | 11.291 | 11.291 |

G1 | 0.35 | 0 | 0.35 | 1.0 | −15.154 | 4.404 | 23.961 |

G2 | 0.35 | 30 | 0.35 | 1.0 | −6.888 | −6.888 | 26.986 |

G3 | 0.35 | 60 | 0.35 | 1.0 | 4.404 | −15.154 | 23.961 |

G4 | 0.35 | 90 | 0.35 | 1.0 | 15.695 | −18.179 | 15.695 |

G5 | 0.35 | 120 | 0.35 | 1.0 | 23.961 | −15.154 | 4.404 |

G6 | 0.35 | 150 | 0.35 | 1.0 | 26.986 | −6.888 | −6.888 |

G7 | 0.35 | 180 | 0.35 | 1.0 | 23.961 | 4.404 | −15.154 |

G8 | 0.35 | 210 | 0.35 | 1.0 | 15.695 | 15.695 | −18.179 |

G9 | 0.35 | 240 | 0.35 | 1.0 | 4.404 | 23.961 | −15.154 |

G10 | 0.35 | 270 | 0.35 | 1.0 | −6.888 | 26.986 | −6.888 |

G11 | 0.35 | 300 | 0.35 | 1.0 | −15.154 | 23.961 | 4.404 |

G12 | 0.35 | 330 | 0.35 | 1.0 | −18.179 | 15.695 | 15.695 |

B1 | 0.35 | 0 | −0.35 | 1.0 | −23.961 | −4.404 | 15.154 |

B2 | 0.35 | 30 | −0.35 | 1.0 | −15.695 | −15.695 | 18.179 |

B3 | 0.35 | 60 | −0.35 | 1.0 | −4.404 | −23.961 | 15.154 |

B4 | 0.35 | 90 | −0.35 | 1.0 | 6.888 | −26.986 | 6.888 |

B5 | 0.35 | 120 | −0.35 | 1.0 | 15.154 | −23.961 | −4.404 |

B6 | 0.35 | 150 | −0.35 | 1.0 | 18.179 | −15.695 | −15.695 |

B7 | 0.35 | 180 | −0.35 | 1.0 | 15.154 | −4.404 | −23.961 |

B8 | 0.35 | 210 | −0.35 | 1.0 | 6.888 | 6.888 | −26.986 |

B9 | 0.35 | 240 | −0.35 | 1.0 | −4.404 | 15.154 | −23.961 |

B10 | 0.35 | 270 | −0.35 | 1.0 | −15.695 | 18.179 | −15.695 |

B11 | 0.35 | 300 | −0.35 | 1.0 | −23.961 | 15.154 | −4.404 |

B12 | 0.35 | 330 | −0.35 | 1.0 | −26.986 | 6.888 | 6.888 |

## References

- Borenstein, J.; Koren, Y. Motion Control Analysis of a Mobile Robot. J. Dyn. Syst. Meas. Control
**1987**, 109, 73–79. [Google Scholar] [CrossRef][Green Version] - Borenstein, J.; Everett, H.R.; Feng, L.; Wehe, D. Mobile Robot Positioning: Sensors and Techniques. J. Robot. Syst.
**1997**, 14, 231–249. [Google Scholar] [CrossRef] - Borenstein, J.; Feng, L. Measurement and correction of systematic odometry errors in mobile robots. IEEE Trans. Robot. Autom.
**1996**, 12, 869–880. [Google Scholar] [CrossRef][Green Version] - Gargiulo, A.M.; di Stefano, I.; Genova, A. Model-Based Slippage Estimation to Enhance Planetary Rover Localization with Wheel Odometry. Appl. Sci.
**2021**, 11, 5490. [Google Scholar] [CrossRef] - Zwierzchowski, J.; Pietrala, D.; Napieralski, J.; Napieralski, A. A Mobile Robot Position Adjustment as a Fusion of Vision System and Wheels Odometry in Autonomous Track Driving. Appl. Sci.
**2021**, 11, 4496. [Google Scholar] [CrossRef] - Xue, H.; Fu, H.; Dai, B. IMU-Aided High-Frequency Lidar Odometry for Autonomous Driving. Appl. Sci.
**2019**, 9, 1506. [Google Scholar] [CrossRef][Green Version] - Palacín, J.; Martínez, D.; Rubies, E.; Clotet, E. Mobile Robot Self-Localization with 2D Push-Broom LIDAR in a 2D Map. Sensors
**2020**, 20, 2500. [Google Scholar] [CrossRef] [PubMed] - Lluvia, I.; Lazkano, E.; Ansuategi, A. Active Mapping and Robot Exploration: A Survey. Sensors
**2021**, 21, 2445. [Google Scholar] [CrossRef] [PubMed] - Xiao, K.; Yu, W.; Liu, W.; Qu, F.; Ma, Z. High-Precision SLAM Based on the Tight Coupling of Dual Lidar Inertial Odometry for Multi-Scene Applications. Appl. Sci.
**2022**, 12, 939. [Google Scholar] [CrossRef] - Sousa, R.B.; Petry, M.R.; Moreira, A.P. Evolution of Odometry Calibration Methods for Ground Mobile Robots. In Proceedings of the IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC), Ponta Delgada, Portugal, 15–17 April 2020; pp. 294–299. [Google Scholar] [CrossRef]
- Maddahi, Y.; Maddahi, A.; Sepehri, N. Calibration of omnidirectional wheeled mobile robots: Method and experiments. Robotica
**2013**, 31, 969–980. [Google Scholar] [CrossRef] - Lin, P.; Liu, D.; Yang, D.; Zou, Q.; Du, Y.; Cong, M. Calibration for Odometry of Omnidirectional Mobile Robots Based on Kinematic Correction. In Proceedings of the 14th International Conference on Computer Science & Education (ICCSE), Toronto, ON, Canada, 19–21 August 2019; pp. 139–144. [Google Scholar] [CrossRef]
- Li, Y.; Ge, S.; Dai, S.; Zhao, L.; Yan, X.; Zheng, Y.; Shi, Y. Kinematic Modeling of a Combined System of Multiple Mecanum-Wheeled Robots with Velocity Compensation. Sensors
**2020**, 20, 75. [Google Scholar] [CrossRef][Green Version] - Lu, Z.; He, G.; Wang, R.; Wang, S.; Zhang, Y.; Liu, C.; Chen, D.; Hou, T. An Orthogonal Wheel Odometer for Positioning in a Relative Coordinate System on a Floating Ground. Appl. Sci.
**2021**, 11, 11340. [Google Scholar] [CrossRef] - Savaee, E.; Hanzaki, A.R. A New Algorithm for Calibration of an Omni-Directional Wheeled Mobile Robot Based on Effective Kinematic Parameters Estimation. J. Intell. Robot. Syst.
**2021**, 101, 28. [Google Scholar] [CrossRef] - Bożek, A. Discovering Stick-Slip-Resistant Servo Control Algorithm Using Genetic Programming. Sensors
**2022**, 22, 383. [Google Scholar] [CrossRef] [PubMed] - Batlle, J.A.; Font-Llagunes, J.M.; Barjau, A. Calibration for mobile robots with an invariant Jacobian. Robot. Auton. Syst.
**2010**, 58, 10–15. [Google Scholar] [CrossRef] - Palacín, J.; Clotet, E.; Martínez, D.; Martínez, D.; Moreno, J. Extending the Application of an Assistant Personal Robot as a Walk-Helper Tool. Robotics
**2019**, 8, 27. [Google Scholar] [CrossRef][Green Version] - Penteridis, L.; D'Onofrio, G.; Sancarlo, D.; Giuliani, F.; Ricciardi, F.; Cavallo, F.; Greco, A.; Trochidis, I.; Gkiokas, A. Robotic and Sensor Technologies for Mobility in Older People. Rejuvenation Res.
**2017**, 20, 401–410. [Google Scholar] [CrossRef] [PubMed][Green Version] - Palacín, J.; Rubies, E.; Clotet, E.; Martínez, D. Evaluation of the Path-Tracking Accuracy of a Three-Wheeled Omnidirectional Mobile Robot Designed as a Personal Assistant. Sensors
**2021**, 21, 7216. [Google Scholar] [CrossRef] [PubMed] - Palacín, J.; Martínez, D.; Rubies, E.; Clotet, E. Suboptimal Omnidirectional Wheel Design and Implementation. Sensors
**2021**, 21, 865. [Google Scholar] [CrossRef] [PubMed] - Palacín, J.; Martínez, D. Improving the Angular Velocity Measured with a Low-Cost Magnetic Rotary Encoder Attached to a Brushed DC Motor by Compensating Magnet and Hall-Effect Sensor Misalignments. Sensors
**2021**, 21, 4763. [Google Scholar] [CrossRef] - Crowley, J.L. Asynchronous Control of Orientation and Displacement in a Robot Vehicle. In Proceedings of the 1989 IEEE International Conference on Robotics and Automation, Scottsdale, AZ, USA, 14–19 May 1989; pp. 1277–1282. [Google Scholar] [CrossRef]
- Feng, L.; Koren, Y.; Borenstein, J. Cross-Coupling Motion Controller for Mobile Robots. IEEE J. Control. Syst.
**1993**, 13, 35–43. [Google Scholar] [CrossRef] - Goldberg, D. What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv.
**1991**, 23, 5–48. [Google Scholar] [CrossRef] - Smieszek, M.; Dobrzanska, M.; Dobrzanski, P. Measurement of Wheel Radius in an Automated Guided Vehicle. Appl. Sci.
**2020**, 10, 5490. [Google Scholar] [CrossRef] - Hess, D.; Kuenemund, F.; Roehrig, C. Simultaneous Calibration of Odometry and external Sensors of Omnidirectional Automated Guided Vehicles (AGVs). In Proceedings of the 47st International Symposium on Robotics, Munich, Germany, 21–22 June 2016; pp. 1–8. [Google Scholar]
- Yagfarov, R.; Ivanou, M.; Afanasyev, I. Map Comparison of Lidar-based 2D SLAM Algorithms Using Precise Ground Truth. In Proceedings of the 15th International Conference on Control, Automation, Robotics and Vision (ICARCV), Singapore, 18–21 November 2018; pp. 1979–1983. [Google Scholar] [CrossRef]
- Iaboni, C.; Patel, H.; Lobo, D.; Choi, J.W.; Abichandani, P. Event Camera Based Real-Time Detection and Tracking of Indoor Ground Robots. IEEE Access
**2021**, 9, 166588–166602. [Google Scholar] [CrossRef]

**Figure 1.**Mobile robot APR-02: (

**a**) general view of the mobile robot and (

**b**) detail of its omnidirectional motion system.

**Figure 2.**Parametric definition of the omnidirectional motion system of the mobile robot APR-02: (

**a**) general representation of the three omnidirectional wheels and (

**b**) detail of the parameters of one omnidirectional wheel. $\left({X}_{R},{Y}_{R}\right)$ represents the mobile robot frame in which ${X}_{R}$ is the front of the mobile robot.

**Figure 3.**General view (

**a**) and detail (

**b**) of the wheel radius and the point of contact of the wheel with the floor: ${r}_{a}$ depicts the nominal radius (green font and lines) and ${r}_{a}^{\prime}$ the real or effective radius (red font and lines).

**Figure 4.**General view (

**a**) and detail (

**b**) of the point of contact with the floor and the distance from the wheel to the center of the mobile robot: ${R}_{a}$ depicts the nominal or design value (green font and lines) and ${R}_{a}^{\prime}$ the real or effective value (representing ${R}_{a}^{\prime}$ as the average value of ${R}_{a}^{\u2033}$ and ${R}_{a}^{\u2034}$, red font and lines).

**Figure 5.**General view (

**a**) and detail (

**b**) of the angular orientation of the front-left wheel (wheel a) relative to the mobile robot frame: ${\delta}_{a}$ depicts the nominal or design value (green font and lines) and ${\delta}_{a}^{\prime}$ is the real or effective value (red font and lines).

**Figure 6.**Representation of the ground truth trajectory of the mobile robot (orange line) and the trajectory estimated with the odometry (green line): (

**a**) complete trajectories; (

**b**) angle and distance differences between the trajectory positions estimated with the odometry and the SLAM procedure.

**Figure 7.**Planned trajectory (back dotted line) zoomed at the planned ending position and orientation of the mobile robot (black point and line); measured ground truth trajectories (orange dotted line) detailing the final position and orientation of the mobile robot (orange circle and line); and measured odometry trajectory (green dotted line) detailing the ending position and orientation of the mobile robot (green circle and line).

**Figure 9.**Representation of the ideal flower-shaped trajectories proposed to calibrate the odometry of the omnidirectional mobile robot APR-02.

**Figure 10.**Planned trajectory (back dotted line) zoomed at the planned ending position and orientation of the mobile robot (black point and line); measured ground truth trajectories (orange dotted line) detailing the final position and orientation of the mobile robot (orange circle and line); and odometry trajectories measured after calibration (green dotted line) detailing the ending position and orientation of the mobile robot (green circle and line).

**Table 1.**Sensitivity of ${M}^{-1}$ to the values of the nominal kinematic parameters of the wheel a.

${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{R}}_{\mathit{a}}}|}_{{\mathit{R}}_{\mathit{a}}=0.195\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{r}}_{\mathit{a}}}|}_{{\mathit{r}}_{\mathit{a}}=0.148\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{\delta}}_{\mathit{a}}}|}_{{\mathit{\delta}}_{\mathit{a}}=60\xb0}$ |
---|---|---|

$\left[\begin{array}{ccc}0.1461& 0.1461& 0.1461\\ -0.0843& -0.0843& -0.0843\\ -0.4325& -0.4325& -0.4325\end{array}\right]$ | $\left[\begin{array}{ccc}-0.5774& 0.0000& 0.0000\\ 0.3333& 0.0000& 0.0000\\ 1.7094& 0.0000& 0.0000\end{array}\right]$ | $\left[\begin{array}{ccc}0.0000& 0.0493& -0.0493\\ 0.0000& -0.0285& 0.0285\\ 0.0000& -0.1461& 0.1461\end{array}\right]$ |

**Table 2.**Sensitivity of ${M}^{-1}$ to the values of the nominal kinematic parameters of the wheel b.

${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{R}}_{\mathit{b}}}|}_{{\mathit{R}}_{\mathit{b}}=0.195\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{r}}_{\mathit{b}}}|}_{{\mathit{r}}_{\mathit{b}}=0.148\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{\delta}}_{\mathit{b}}}|}_{{\mathit{\delta}}_{\mathit{b}}=180\xb0}$ |
---|---|---|

$\left[\begin{array}{ccc}0.0000& 0.0000& 0.0000\\ 0.1687& 0.1687& 0.1687\\ -0.4325& -0.4325& -0.4325\end{array}\right]$ | $\left[\begin{array}{ccc}0.0000& 0.0000& 0.0000\\ 0.0000& -0.6667& 0.0000\\ 0.0000& 1.7094& 0.0000\end{array}\right]$ | $\left[\begin{array}{ccc}0.0000& 0.0000& 0.0000\\ -0.0570& 0.0000& 0.0570\\ 0.1461& 0.0000& -0.1461\end{array}\right]$ |

**Table 3.**Sensitivity of ${M}^{-1}$ to the values of the nominal kinematic parameters of the wheel c.

${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{R}}_{\mathit{c}}}|}_{{\mathit{R}}_{\mathit{c}}=0.195\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{r}}_{\mathit{c}}}|}_{{\mathit{r}}_{\mathit{c}}=0.148\mathbf{m}}$ | ${\frac{\mathbf{\Delta}{\mathit{M}}^{-1}}{\mathbf{\Delta}{\mathit{\delta}}_{\mathit{c}}}|}_{{\mathit{\delta}}_{\mathit{c}}=300\xb0}$ |
---|---|---|

$\left[\begin{array}{ccc}-0.1461& -0.1461& -0.1461\\ -0.0843& -0.0843& -0.0843\\ -0.4325& -0.4325& -0.4325\end{array}\right]$ | $\left[\begin{array}{ccc}0.0000& 0.0000& 0.5774\\ 0.0000& 0.0000& 0.3333\\ 0.0000& 0.0000& 1.7094\end{array}\right]$ | $\left[\begin{array}{ccc}-0.0493& 0.0493& 0.0000\\ -0.0285& 0.0285& 0.0000\\ -0.1461& 0.1461& 0.0000\end{array}\right]$ |

Trajectories | Strategy | Method | ${\mathit{M}}^{-1}$ | $\mathit{C}{\mathit{F}}_{\mathit{C}\mathit{A}\mathit{L}\mathit{I}\mathit{B}\mathit{R}\mathit{A}\mathit{T}\mathit{I}\mathit{O}\mathit{N}}$ | $\mathit{C}{\mathit{F}}_{\mathit{V}\mathit{A}\mathit{L}\mathit{I}\mathit{D}\mathit{A}\mathit{T}\mathit{I}\mathit{O}\mathit{N}}$ | Improvement | |
---|---|---|---|---|---|---|---|

All | None | - | $\left[\begin{array}{ccc}-0.0854& -0.0000& 0.0854\\ 0.0493& -0.0987& 0.0493\\ 0.2530& 0.2530& 0.2530\end{array}\right]$ | - | 0.1242 | - | |

R1, R5, R9 | STA | GA1 | $\left[\begin{array}{ccc}-0.0866& 0.0015& 0.0891\\ 0.0517& -0.1012& 0.0536\\ 0.2567& 0.2552& 0.2539\end{array}\right]$ | 0.0214 | 0.1215 | 2.18% | |

Fmin1 | $\left[\begin{array}{ccc}-0.0881& 0.0009& 0.0876\\ 0.0497& -0.1024& 0.0517\\ 0.2594& 0.2588& 0.2565\end{array}\right]$ | 0.0228 | 0.1386 | −11.61% | |||

GA5 | $\left[\begin{array}{ccc}-0.0849& 0.0043& 0.0909\\ 0.0503& -0.1014& 0.0507\\ 0.2559& 0.2560& 0.2561\end{array}\right]$ | 0.0202 | 0.1267 | −2.03% | |||

Fmin5 | $\left[\begin{array}{ccc}-0.0883& 0.0007& 0.0874\\ 0.0505& -0.1015& 0.0509\\ 0.2569& 0.2593& 0.2598\end{array}\right]$ | 0.0192 | 0.1436 | −15.62% | |||

B2, B6, B10, G12, G4, G8 | STB | GA1 | $\left[\begin{array}{ccc}-0.0898& -0.0010& 0.0851\\ 0.0533& -0.1000& 0.0567\\ 0.2379& 0.2340& 0.2335\end{array}\right]$ | 0.0170 | 0.0333 | 73.19% | |

Fmin1 | $\left[\begin{array}{ccc}-0.0862& -0.0009& 0.0835\\ 0.0479& -0.0964& 0.0496\\ 0.2404& 0.2352& 0.2369\end{array}\right]$ | 0.0503 | 0.0691 | 44.36% | |||

GA5 | $\left[\begin{array}{ccc}-0.0894& -0.0011& 0.0860\\ 0.0525& -0.0999& 0.0539\\ 0.2369& 0.2340& 0.2350\end{array}\right]$ | 0.0166 | 0.0232 | 81.36% | |||

Fmin5 | $\left[\begin{array}{ccc}-0.0857& 0.0003& 0.0844\\ 0.0477& -0.0966& 0.0486\\ 0.2393& 0.2356& 0.2376\end{array}\right]$ | 0.0525 | 0.0677 | 45.52% | |||

R1…R12 | STC | GA1 | $\left[\begin{array}{ccc}-0.0907& -0.0030& 0.0844\\ 0.0512& -0.1014& 0.0520\\ 0.2579& 0.2559& 0.2567\end{array}\right]$ | 0.0264 | 0.1278 | −2.92% | |

Fmin1 | $\left[\begin{array}{ccc}-0.0883& -0.0005& 0.0871\\ 0.0515& -0.1014& 0.0524\\ 0.2494& 0.2472& 0.2479\end{array}\right]$ | 0.0258 | 0.0817 | 34.2 % | |||

GA5 | $\left[\begin{array}{ccc}-0.0861& 0.0018& 0.0891\\ 0.0511& -0.1015& 0.0523\\ 0.2585& 0.2565& 0.2573\end{array}\right]$ | 0.0273 | 0.1308 | −5.31% | |||

Fmin5 | $\left[\begin{array}{ccc}-0.0881& -0.0001& 0.0873\\ 0.0512& -0.1015& 0.0524\\ 0.2497& 0.2475& 0.2483\end{array}\right]$ | 0.0264 | 0.0832 | 33.00% | |||

B1…B12, G1…G12 | STD | GA1 | $\left[\begin{array}{ccc}-0.0897& -0.0002& 0.0864\\ 0.0524& -0.1001& 0.0530\\ 0.2373& 0.2346& 0.2364\end{array}\right]$ | 0.0199 | 0.0248 | 80.05% | |

Fmin1 | $\left[\begin{array}{ccc}-0.0852& 0.0009& 0.0844\\ 0.0490& -0.0968& 0.0492\\ 0.2398& 0.2361& 0.2383\end{array}\right]$ | 0.0539 | 0.0660 | 46.89% | |||

GA5 | $\left[\begin{array}{ccc}-0.0892& -0.0004& 0.0874\\ 0.0518& -0.1027& 0.0533\\ 0.2365& 0.2333& 0.2358\end{array}\right]$ | 0.0202 | 0.0261 | 78.98% | |||

Fmin5 | $\left[\begin{array}{ccc}-0.0851& 0.0009& 0.0845\\ 0.0489& -0.0967& 0.0490\\ 0.2393& 0.2358& 0.2383\end{array}\right]$ | 0.0554 | 0.0665 | 46.43% | |||

All | STE | GA1 | $\left[\begin{array}{ccc}-0.0895& -0.0007& 0.0867\\ 0.0528& -0.1002& 0.0537\\ 0.2367& 0.2346& 0.2355\end{array}\right]$ | 0.0212 | 0.0226 | 81.83% | |

Fmin1 | $\left[\begin{array}{ccc}-0.0859& 0.0008& 0.0851\\ 0.0497& -0.0983& 0.0501\\ 0.2421& 0.2397& 0.2408\end{array}\right]$ | 0.0591 | 0.0636 | 48.82% | |||

GA5 | $\left[\begin{array}{ccc}-0.0893& -0.0006& 0.0867\\ 0.0521& -0.1010& 0.0533\\ 0.2364& 0.2341& 0.2354\end{array}\right]$ | 0.0221 | 0.0222 | 82.14% | |||

Fmin5 | $\left[\begin{array}{ccc}-0.0859& 0.0007& 0.0850\\ 0.0495& -0.0982& 0.0501\\ 0.2418& 0.2394& 0.2406\end{array}\right]$ | 0.0603 | 0.0634 | 48.97% |

${\mathit{R}}_{\mathit{a}}\left(\mathit{m}\right)$ | ${\mathit{R}}_{\mathit{b}}\left(\mathit{m}\right)$ | ${\mathit{R}}_{\mathit{c}}\left(\mathit{m}\right)$ | ${\mathit{r}}_{\mathit{a}}\left(\mathit{m}\right)$ | ${\mathit{r}}_{\mathit{b}}\left(\mathit{m}\right)$ | ${\mathit{r}}_{\mathit{c}}\left(\mathit{m}\right)$ | ${\mathit{\delta}}_{\mathit{a}}(\xb0)$ | ${\mathit{\delta}}_{\mathit{b}}(\xb0)$ | ${\mathit{\delta}}_{\mathit{c}}(\xb0)$ | |
---|---|---|---|---|---|---|---|---|---|

Nominal | 0.195 | 0.195 | 0.195 | 0.148 | 0.148 | 0.148 | 60.0 | 180.0 | 300.0 |

Calibrated | 0.218643 | 0.215735 | 0.216287 | 0.155068 | 0.151534 | 0.152728 | 59.7397 | 179.6820 | 301.5735 |

Difference | 12.13% | 10.63% | 10.92% | 4.78% | 2.39% | 3.19% | −0.43% | −0.18% | 0.52% |

**Table 6.**Summary of the average trajectory errors obtained with the uncalibrated and calibrated kinematic parameters.

RMS Error | Max Error | Final position error | $C{F}_{VALIDATION}$ | ||||
---|---|---|---|---|---|---|---|

Distance (m) | Abs(angle) (°) | Distance (m) | Abs(angle) (°) | Distance (m) | Abs(angle) (°) | ||

Uncalibrated | 0.040 | 3.00 | 0.076 | 5.86 | 0.074 | 5.32 | 0.1242 |

Calibrated (STE-GA5) | 0.013 | 0.86 | 0.023 | 1.77 | 0.016 | 0.73 | 0.0222 |

Improvement | 67.00% | 71.22% | 68.99% | 69.82% | 78.38% | 86.24% | 82.14% |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Palacín, J.; Rubies, E.; Clotet, E.
Systematic Odometry Error Evaluation and Correction in a Human-Sized Three-Wheeled Omnidirectional Mobile Robot Using Flower-Shaped Calibration Trajectories. *Appl. Sci.* **2022**, *12*, 2606.
https://doi.org/10.3390/app12052606

**AMA Style**

Palacín J, Rubies E, Clotet E.
Systematic Odometry Error Evaluation and Correction in a Human-Sized Three-Wheeled Omnidirectional Mobile Robot Using Flower-Shaped Calibration Trajectories. *Applied Sciences*. 2022; 12(5):2606.
https://doi.org/10.3390/app12052606

**Chicago/Turabian Style**

Palacín, Jordi, Elena Rubies, and Eduard Clotet.
2022. "Systematic Odometry Error Evaluation and Correction in a Human-Sized Three-Wheeled Omnidirectional Mobile Robot Using Flower-Shaped Calibration Trajectories" *Applied Sciences* 12, no. 5: 2606.
https://doi.org/10.3390/app12052606