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

: Odometry is a simple and practical method that provides a periodic real-time estimation of the relative displacement of a mobile robot based on the measurement of the angular rotational speed of its wheels. The main disadvantage of odometry is its unbounded accumulation of errors, a factor that reduces the accuracy of the estimation of the absolute position and orientation of a mobile robot. This paper proposes a general procedure to evaluate and correct the systematic odometry errors of a human-sized three-wheeled omnidirectional mobile robot designed as a versatile personal assistant tool. The correction procedure is based on the deﬁnition of 36 individual calibration trajectories which together depict a ﬂower-shaped ﬁgure, on the measurement of the odometry and ground truth trajectory of each calibration trajectory, and on the application of several strategies to iteratively adjust the effective value of the kinematic parameters of the mobile robot in order to match the estimated ﬁnal position from these two trajectories. The results have shown an average improvement of 82.14% in the estimation of the ﬁnal position and orientation of the mobile robot. Therefore, these results can be used for odometry calibration during the manufacturing of human-sized three-wheeled omnidirectional mobile robots.


Introduction
Mobile robots have a huge range of potential applications in industrial, office and home environments. Autonomous mobile robots must be able to perform localization, mapping and navigation with reasonable levels of accuracy in order to successfully develop and complete their tasks. Localization methods consist of absolute or relative positioning methods [1,2]. Borenstein et al. [2] reviewed the most relevant mobile robot relative positioning methods based on internal data gathered by the mobile robot: odometry and inertial navigation, and the most relevant absolute positioning methods based on gathering external surrounding data.
Odometry is usually defined as a relative positioning method that uses the measures of the velocities of the wheels to estimate the position of the robot. Compared to other techniques, odometry is simple, affordable, and can be used in real-time, but as a relative positioning method it cumulates errors that may lead to inaccurate results. The improvement of odometry through proper calibration reduces the position errors and can contribute to lowering the costs of mobile robots by avoiding the use of precise external sensors.
In 1996, Borenstein et al. [3] introduced a benchmark test to measure the odometric accuracy of a mobile robot. This test, called University of Michigan Benchmark (UMBmark), consists on a bidirectional square path experiment in which a differential drive mobile robot performs a squared path in the clockwise and counterclockwise directions to avoid the compensation of odometry errors that might occur in unidirectional squared path experiments. The method first computes the contribution of errors caused by incorrect kinematic parameters by a least square method. The information required by this process is the initial and final positions of the mobile robot through N experiments (multiple data sets). This proposal is not limited by the relationship between the parameters used in the kinematic equations, so the obtained kinematic model may better describe the odometry of the mobile robot. Lin et al. [12] verify their calibration method by comparing the ideal trajectory and the trajectories before and after calibration.
In a similar direction, Li et al. [13] presented a method for the reduction of positioning errors of four-wheel omnidirectional mobile robots using Mecanum wheels. The main problem of four-wheel omnidirectional mobile robots is wheel slippage, so this method analyzed the kinematic model of the mobile robot and provides a velocity compensation matrix to reduce the errors of the robot motion caused by wheel slippage. This compensation matrix was validated using virtual simulations and experimental tests. Results showed that the compensation matrix reduces the errors of robot motions caused by wheel slippage, improving the motion accuracy of the system. However, Li et al. [13] concluded that this velocity compensation matrix must be adjusted according to the velocity of the mobile robot. Alternatively, Lu et al. [14] fused the information gathered from an IMU, a gyroscope and encoders to estimate the odometry of a mobile robot using four Mechanum wheels to estimate the estimated odometry on a floating ground.
More recently, Savaee et al. [15] proposed a simplification of the method presented by Maddahi et al. [11]. The new method uses the kinematic model of a three-wheeled mobile robot and computed a corrected Jacobian matrix to reduce the effects of systematic errors in the odometry. This method used a genetic algorithm to find the matrix elements of a corrected Jacobian matrix, which are called Effective Kinematic Parameters (EPKs). This new method consists of: (1) creating a model of the virtual robot and of the systematic errors; (2) performing simulation tests with the virtual robot; (3) performing experimental tests with a real robot; (4) comparing both results to estimate the EPKs and redefine the Jacobian matrix of the mobile robot. In this case, the simulation and experimental tests consist of two robot translations along straight paths and one rotation about itself, and the calculated EPKs are used to correct the angular velocities of the wheels. This procedure was verified with a three-wheeled omnidirectional mobile robot performing different paths. In general, the evaluation of tracking errors in offline analysis has the advantage of avoiding local minimum in complex parametric nonlinear systems [16].

New Contribution
The new contribution of this paper is the proposal of a combination of 36 straight and curved calibration trajectories for systematic odometry error evaluation and correction in a three-wheeled omnidirectional mobile robot. This procedure has been empirically applied and validated in a real human-sized three-wheeled omnidirectional mobile robot of 1.760 m and 30 kg (Figure 1). These 36 calibration trajectories have been proposed as a representative test-bench of the infinite trajectories that can be performed by an omnidirectional mobile robot, which together depict a characteristic flower-shaped figure.
The calibration procedure implemented requires the registering of the real odometry and ground truth trajectories generated while performing each calibration trajectory. Finally, the odometry of each calibration trajectory is recomputed offline to iteratively adjust the effective values of the kinematic parameters of the mobile robot in order to match the odometry with the ground truth trajectory. This paper has evaluated different matching strategies using different sets of calibration trajectories. The best matching between the odometry and ground truth trajectories has been obtained using genetic algorithms and 5 repetitions of each one of the proposed 36 calibration trajectories. The fitting results of the kinematic parameters have been validated by performing 5 additional repetitions of the 36 calibration trajectories. This new contribution was inspired in Batlle et al. [17], who proposed the use of four curved calibration trajectories, and in Maddahi et al. [11], who calibrated the odometry with straight paths but concluded that the percentage of error correction depends on the type of the path. The new contribution is the proposal of a complete set of straight and curved calibration trajectories which together depict a characteristic flower-shaped figure. This new contribution is also inspired in the work of Savaee et al. [15] that used genetic algorithms to adjust the kinematic matrix of a three-wheeled mobile robot although without comparing the results obtained with other minimization alternatives. This proposal will apply the same methodology proposed by Lin et al. [12], based on the comparison of the initial and final positions of the mobile robot through N experiments to directly evaluate the odometry improvement achieved. Finally, as an alternative to Savaee et al. [15] and Lin et al. [12], this new proposal adjusts the value of the kinematic parameters of the mobile robot (radii of the wheels, distance from the wheel to the center of the mobile robot and angular orientation of the wheels) instead of directly adjusting the values of the kinematic matrix, allowing a direct physical interpretation of the fitting results obtained.

Materials and Methods
The material used in this paper is the omnidirectional mobile robot APR-02 ( Figure  1). The methods used in this paper are the odometry of the mobile robot and two nonlinear This new contribution was inspired in Batlle et al. [17], who proposed the use of four curved calibration trajectories, and in Maddahi et al. [11], who calibrated the odometry with straight paths but concluded that the percentage of error correction depends on the type of the path. The new contribution is the proposal of a complete set of straight and curved calibration trajectories which together depict a characteristic flower-shaped figure. This new contribution is also inspired in the work of Savaee et al. [15] that used genetic algorithms to adjust the kinematic matrix of a three-wheeled mobile robot although without comparing the results obtained with other minimization alternatives. This proposal will apply the same methodology proposed by Lin et al. [12], based on the comparison of the initial and final positions of the mobile robot through N experiments to directly evaluate the odometry improvement achieved. Finally, as an alternative to Savaee et al. [15] and Lin et al. [12], this new proposal adjusts the value of the kinematic parameters of the mobile robot (radii of the wheels, distance from the wheel to the center of the mobile robot and angular orientation of the wheels) instead of directly adjusting the values of the kinematic matrix, allowing a direct physical interpretation of the fitting results obtained.

Materials and Methods
The material used in this paper is the omnidirectional mobile robot APR-02 ( Figure 1). The methods used in this paper are the odometry of the mobile robot and two nonlinear Appl. Sci. 2022, 12, 2606 5 of 23 minimization procedures based on gradient search and genetic algorithm. These two minimization methods will be applied to calibrate the odometry of the mobile robot.

Omnidirectional Mobile Robot APR-02
The omnidirectional mobile robot APR-02 is the second family prototype designed under the project concept titled Assistant Personal Robot (APR). The goal of the APR project is the final implementation of a versatile human-sized mobile robot that can be applied to develop different assistance services, for example, to supporting older people with mobility limitations [18]. The main difference of the APR concept with other comparative mobile robot designs [19] is the use of an omnidirectional motion system based on three omnidirectional wheels in which the free rollers are aligned with the rotation plane of the wheels. The main advantage of this design using three wheels is the minimization of wheel slippage regardless of the motion implemented by the mobile robot [20]. Figure 1a shows the omnidirectional mobile robot APR-02 and Figure 1b shows a detail of its omnidirectional motion system based on the use of three omnidirectional wheels. The main sensor of the APR-02 is a precise onboard 2D LIDAR Hokuyo UTM-30LX either placed horizontally or tilted down [7] to directly detect small obstacles laying on the ground or holes or stairs in front of the mobile robot, and for SLAM [8]. The APR-02 has been used as a research tool in some recent applications. In [21] an alternative omnidirectional wheel design was proposed to foster future outdoor applications. In [22] the motors and encoders of the mobile robot were analyzed in order to improve the measurement of the estimated angular velocity of the wheels.
The trajectory of the mobile robot APR-02 is established by its path-planning algorithm that continuously updates the target motion vector (v, α, ω, t r ) of the mobile robot [20] accordingly to a task or objective. This target motion vector is converted into individual target angular rotational velocities of the three wheels (ω Ma , ω Mb , ω Mc ) which are then applied to the PID controllers of the DC motors driving these three wheels in order to implement the planned motion.

Odometry Trajectory
Odometry is a simple and practical method that provides a periodic real-time estimation of the relative displacement of a mobile robot based on the measurement of the angular rotational speed of its wheels. Odometry estimation is valid in the case of non-slippage wheel conditions in which wheel revolutions can be translated into linear displacement relative to the floor. The advantage of an omnidirectional mobile robot using three optimal omnidirectional wheels is that the wheels do not have motion constrains and do not require slippage in order to implement any motion trajectory [20].
The kinematics and the odometry of the mobile robot APR-02 are described in [20]. Figure 2 presents the parametric definition of the omnidirectional motion system based on three omnidirectional wheels ( Figure 2a) and a detail of the parameters of one wheel (Figure 2b). The main parameters are: the position of the mobile robot (x, y, θ) referred to the fixed world frame (X W , Y W ), the motion command of the robot (v, α, ω), the angular velocities of the wheels (ω a , ω b , ω c ), the linear velocities of the wheels (V a , V b , V c ), the radii of the wheels (r a , r b , r c ), the distance between the center of the robot and each wheel (R a , R b , R c ) and the angular orientation of each wheel (δ a , δ b , δ c ) referred to the mobile robot frame (X R , Y R ). The odometry procedure uses the instantaneous estimate of the current angular velocities of the three wheels, , , , available as a vector sequence ( ( ), ( ), ( )) in order to estimate the instantaneous position of the mobile robot ( ( ), ( ), ( )) in the world frame ( , ). The relation between the instantaneous estimation of the angular velocities of the wheels ( ( ), ( ), ( )) and the instantaneous robot velocity ( ( ), ( ), ( )) in the world frame ( , ) can be summarized as [20]: Which includes a rotation matrix ( ) and a compact kinematic matrix that defines the overall kinematics of the mobile robot: Equation (1) can be arranged to update the current position of the mobile robot ( ( ), ( ), ( )) in the world frame ( , ) based on the new estimate of the current angular velocities of the three wheels of the mobile robot ( ( ), ( ), ( )) and the time lapse ∆ between the samples -1 and , which in the mobile robot APR-02 coincides with the sampling time of its proportional-integral-derivative (PID) motor controllers, ∆ = = 10 : The odometry procedure uses the instantaneous estimate of the current angular velocities of the three wheels, a, b, c, available as a vector sequence (ω a (k), ω b (k), ω c (k)) in order to estimate the instantaneous position of the mobile robot (x(k), y(k), θ(k)) in the world frame (X W , Y W ). The relation between the instantaneous estimation of the angular velocities of the wheels (ω a (k), ω b (k), ω c (k)) and the instantaneous robot velocity v x (k), v y (k), ω(k) in the world frame (X W , Y W ) can be summarized as [20]: Which includes a rotation matrix R(θ) and a compact kinematic matrix M that defines the overall kinematics of the mobile robot: Equation (1) can be arranged to update the current position of the mobile robot (x(k), y(k), θ(k)) in the world frame (X W , Y W ) based on the new estimate of the current angular velocities of the three wheels of the mobile robot (ω a (k), ω b (k), ω c (k)) and the time lapse ∆t between the samples k − 1 and k, which in the mobile robot APR-02 coincides with the sampling time T of its proportional-integral-derivative (PID) motor controllers, ∆t = T = 10 ms: where R −1 (θ) is the inverse of the rotation matrix defined by the previous instantaneous angular orientation of the mobile robot θ(k − 1): And M −1 is the inverse of the compact kinematic matrix M:

Odometry Errors: Systematic and Non-Systematic
The main disadvantage of odometry is its unbounded accumulation of errors in the evaluation of the trajectory of a mobile robot (see Equation (4)). The error sources that cause inaccuracies in the determination of the odometry depend largely on the type of terrain practiced by the mobile robot [3], and are classified as systematic and non-systematic. In general, the concept of odometry calibration is focused on the minimization of systematic errors because they remain constant during the displacement. In general, the errors affecting the orientation of the mobile robot have the worst cumulative effects because once they are incurred they grow into lateral position errors [23,24].

Systematic Odometry Errors
Systematic odometry errors are usually invariant because they are caused by inaccuracies and imperfections in the mechanical implementation of the robot, such as mismatches between the nominal and effective parameters, or by limited sensors capabilities, resolution and sampling rate. Borenstein et al. [3] concluded that the systematic errors that have greater effects in the odometry are caused by unequal wheel diameters and placement accuracy in the wheelbase, which is the distance between the point of contact of the wheel with the floor and the center of the robot. Systematic errors accumulate constantly, so they are usually the main contributors to positioning errors in smooth indoor terrains.

Non-Systematic Odometry Errors
Non-systematic odometry errors are not possible to predict, because they are originated by unpredictable features of the environment such as terrain irregularities, terrain obstacles, structural wheel slippage during specific motions, wheel slippage originated by the terrain conditions, or the application of external forces to the mobile robot. However, this paper is applied to a mobile robot operating in perfect flat indoor terrains, so the assumption is that the motion will not be affected by non-systematic odometry errors.

Systematic Odometry Error Sources in a Three-Wheeled Omnidirectional Mobile Robot
The exact theoretical value of the inverse of the compact kinematic matrix M −1 computed with the nominal values of the kinematic parameters (R a = R b = R c = 0.195 m, r a = r b = r c = 0.148 m and δ a = 60 • , δ b = 180 • , δ c = 300 • ) evaluated using a standard double The simple numerical representation of the exact values of the coefficients of the inverse of the compact kinematic matrix M −1 of the mobile robot APR-02 intuitively indicates that any inaccuracy in the values of the kinematic parameters may cause a large impact in the generation of systematic errors during the cumulative evaluation of the odometry (see Equation (4)).
In a real mobile robot application, the effective values of the kinematic parameters R a , R b , R c , r a , r b , r c , δ a , δ b , δ c can differ from the nominal values due to imprecisions in the manufacturing process and then originate systematic errors in the cumulative computation of the odometry of a mobile robot. The following figures are proposed to graphically illustrate the uncertainties that appear in the determination of the exact or effective value of the kinematic parameters of a real mobile robot. Figure 3 shows two views of one omnidirectional wheel of the motion system of the mobile robot APR-02 and a representation of its radius r a . Even in this case in which the wheel cover is thin and smooth, the accurate determination of the radius of the wheel is very difficult and will have some uncertainty because of the difficulty in the estimation of the point of contact with the floor [26]. Similarly, Figure 4 shows two views of the representation of the distance to the center of the mobile robot. Figure 4a shows the effect of a vertical wheel misalignment (exaggerated in this case) and Figure 4b the effect caused by the point of contact with the floor. Finally, Figure 5 shows two views of the effect of angular wheel misalignment that can be caused by the application of non-uniform pressure to the screws that hold the motor to the wheelbase through a rubber piece designed to absorb vibrations. These figures clearly reveal that manufacturing inaccuracies and assembly imprecisions will originate crossed systematic errors in the odometry of the omnidirectional mobile robot. Appl The simple numerical representation of the exact values of the coefficients of the inverse of the compact kinematic matrix −1 of the mobile robot APR-02 intuitively indicates that any inaccuracy in the values of the kinematic parameters may cause a large impact in the generation of systematic errors during the cumulative evaluation of the odometry (see Equation (4)).
In a real mobile robot application, the effective values of the kinematic parameters , , , , , , , , can differ from the nominal values due to imprecisions in the manufacturing process and then originate systematic errors in the cumulative computation of the odometry of a mobile robot. The following figures are proposed to graphically illustrate the uncertainties that appear in the determination of the exact or effective value of the kinematic parameters of a real mobile robot. Figure 3 shows two views of one omnidirectional wheel of the motion system of the mobile robot APR-02 and a representation of its radius . Even in this case in which the wheel cover is thin and smooth, the accurate determination of the radius of the wheel is very difficult and will have some uncertainty because of the difficulty in the estimation of the point of contact with the floor [26]. Similarly, Figure 4 shows two views of the representation of the distance to the center of the mobile robot. Figure 4a shows the effect of a vertical wheel misalignment (exaggerated in this case) and Figure 4b the effect caused by the point of contact with the floor. Finally, Figure 5 shows two views of the effect of angular wheel misalignment that can be caused by the application of non-uniform pressure to the screws that hold the motor to the wheelbase through a rubber piece designed to absorb vibrations. These figures clearly reveal that manufacturing inaccuracies and assembly imprecisions will originate crossed systematic errors in the odometry of the omnidirectional mobile robot.   Finally, Tables 1-3 show the analytic determination of the sensitivity of the kinematic matrix -1 to the kinematic parameters of the wheels, computed form Equation (6). These tables show very high sensitivities in the array values of -1 , a matrix that is used to cumulatively update the position and location of the mobile robot 100 times per second (See Equation (4)). In the case of the distance from the center of the robot to each wheel, the maximum individual sensitivity of -1 is as high as 0.43 mm/s for each millimeter of error in the determination of the real value of ( , , ). In the case of the radii of the wheels, the maximum individual sensitivity of -1 is as high as 1.70 mm/s for each millimeter of error in the determination of the real value of ( , , ). Finally, in the case of the angular orientation of each wheel, the maximum individual sensitivity of -1 is 0.14 mm/s for each angular arc degree error in the determination of the real value of ( , , ).    Finally, Tables 1-3 show the analytic determination of the sensitivity of the kinematic matrix -1 to the kinematic parameters of the wheels, computed form Equation (6). These tables show very high sensitivities in the array values of -1 , a matrix that is used to cumulatively update the position and location of the mobile robot 100 times per second (See Equation (4)). In the case of the distance from the center of the robot to each wheel, the maximum individual sensitivity of -1 is as high as 0.43 mm/s for each millimeter of error in the determination of the real value of ( , , ). In the case of the radii of the wheels, the maximum individual sensitivity of -1 is as high as 1.70 mm/s for each millimeter of error in the determination of the real value of ( , , ). Finally, in the case of the angular orientation of each wheel, the maximum individual sensitivity of -1 is 0.14 mm/s for each angular arc degree error in the determination of the real value of ( , , ). Finally, Tables 1-3 show the analytic determination of the sensitivity of the kinematic matrix M −1 to the kinematic parameters of the wheels, computed form Equation (6). These tables show very high sensitivities in the array values of M −1 , a matrix that is used to cumulatively update the position and location of the mobile robot 100 times per second (See Equation (4)). In the case of the distance from the center of the robot to each wheel, the maximum individual sensitivity of M −1 is as high as 0.43 mm/s for each millimeter of error in the determination of the real value of (R a , R b , R c ). In the case of the radii of the wheels, the maximum individual sensitivity of M −1 is as high as 1.70 mm/s for each millimeter of error in the determination of the real value of (r a , r b , r c ). Finally, in the case of the angular orientation of each wheel, the maximum individual sensitivity of M −1 is 0.14 mm/s for each angular arc degree error in the determination of the real value of (δ a , δ b , δ c ).   Table 2. Sensitivity of M −1 to the values of the nominal kinematic parameters of the wheel b.

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 , θ i ), the motion command applied M = (v, α, ω, t r ), the true final position and orientation estimated with SLAM xgt f , ygt f , θgt f , and the final position and orientation of the mobile robot estimated with the odometry x f , y f , θ f . 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 ] estimated with SLAM. Please note that t(k) is the time in which a new estimation of the instantaneous angular velocities of the wheels E(k) is provided by the encoder. This time can be computed as t(k) = k·T or t(k) = t(k − 1) + T, where T is the sampling time of the PIDs; in the APR-02 this value is T = 10 ms. The odometry information O(k) is computed from E(k), so it is defined by the same time sequence t(k). Alternatively, t(p) is the time in which a new raw scan L(p) is provided by the LIDAR. This time can be computed as t(p) = t(p − 1) + D p , where D p ranges from 200 ms to 300 ms depending on the time required by the control system of the mobile robot to apply SLAM and estimate GT(p). This variation is because the control system waits to request a new LIDAR scan until the SLAM procedure finishes, so this time lapse will be different depending on the time needed to apply SLAM from the raw LIDAR scans. . The odometry information ( ) is computed from ( ), so it is defined by the same time sequence ( ). Alternatively, ( ) is the time in which a new raw scan ( ) is provided by the LIDAR. This time can be computed as ( ) = ( − 1) + , where ranges from 200 ms to 300 ms depending on the time required by the control system of the mobile robot to apply SLAM and estimate ( ). This variation is because the control system waits to request a new LIDAR scan until the SLAM procedure finishes, so this time lapse will be different depending on the time needed to apply SLAM from the raw LIDAR scans.  The hypothesis of this paper is then that the odometry trajectory will be correct and exact when this trajectory matches the ground truth (real) trajectory of the mobile robot. The hypothesis of this paper is then that the odometry trajectory will be correct and exact when this trajectory matches the ground truth (real) trajectory of the mobile robot. Figure 7 shows the final position results obtained when the mobile robot APR-02 repeats the same calibration trajectory five times, starting each trajectory with the same initial position and angular orientation. Figure 7 represents the zoomed information of the planned final destination of the mobile robot (black dot and line) when the mobile robot completes a simple straight trajectory, the ground truth trajectory (orange dotted line) and ground truth final position and orientation of the mobile robot (orange circle and line), and the trajectory (green dotted line) and final mobile robot position and orientation estimated with the odometry (green square and line). The results of Figure 7 reveal the existence of systematic differences between the odometry and ground truth trajectories. This paper proposes the reduction of such differences by applying an iterative calibration procedure to the kinematic parameters used to estimate the odometry of the mobile robot APR-02.
peats the same calibration trajectory five times, starting each trajectory with the same initial position and angular orientation. Figure 7 represents the zoomed information of the planned final destination of the mobile robot (black dot and line) when the mobile robot completes a simple straight trajectory, the ground truth trajectory (orange dotted line) and ground truth final position and orientation of the mobile robot (orange circle and line), and the trajectory (green dotted line) and final mobile robot position and orientation estimated with the odometry (green square and line). The results of Figure 7 reveal the existence of systematic differences between the odometry and ground truth trajectories. This paper proposes the reduction of such differences by applying an iterative calibration procedure to the kinematic parameters used to estimate the odometry of the mobile robot APR-02.

Distance and Angular Errors during a Trajectory
The determination of the distance and angular errors between the odometry trajectory points ( = 1 … ) and the ground truth trajectory points ( = 1 … ) require the subsampling of the original odometry trajectory in order to have an odometry trajectory vector with the same length as the ground truth vector. The subsampled odometry trajectory vector ( = 1 … ) = � ( ), [ ( ), ( ), ( )]� is then obtained by searching for the nearest ( ) and ( ) values (see Figure 6b). The distance and angle error vectors are then computed as:

Distance and Angular Errors during a Trajectory
The determination of the distance and angular errors between the odometry trajectory points O(k = 1 . . . n) and the ground truth trajectory points GT(p = 1 . . . m) require the subsampling of the original odometry trajectory in order to have an odometry trajectory vector with the same length as the ground truth vector. The subsampled odometry trajectory vector OSS(p = 1 . . . m) = [t(p), [x(p), y(p), θ(p)]] is then obtained by searching for the nearest t(k) and t(p) values (see Figure 6b). The distance and angle error vectors are then computed as: angle error (p) = (θgt(p) − θ(p)) 2 (9)

Maximum Error in a Trajectory
The determination of the maximum distance and angular error between the odometry and ground truth trajectory is obtained from the distance error vector and the angle error vector, respectively, using: MaximumError Angle = max(angle error (p = 1 . . . m))

RMS Error in a Trajectory
The determination of the Root Mean Square error (RMSE) that summarizes the differences between the odometry and ground truth trajectory are computed using:

Cost Function Summarizing Trajectory Differences
The cost function used in this paper to summarize in one single value CF the overall differences (position and angular orientation) between the odometry and ground truth trajectories is computed from the final position of the mobile robot using: This cost function value CF will be used to guide the iterative odometry calibration procedure in order to tune the effective kinematic parameters of the mobile robot. This cost function was also used by Savaee et al. [15] to calibrate the effective kinematic parameters of a comparable omnidirectional mobile robot. This cost function implicitly applies the same weights to a final positioning with a distance error of 1 m or an angular arch error of 1 • . We have selected this cost function because a small angular error usually has a large cumulative effect in the odometry of an omnidirectional mobile robot.

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 , δ a , δ b , δ 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 , δ a , δ b , δ 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 , θ i ) and the sequence of angular rotational velocities of the wheels obtained from the encoders 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 evaluated within specific bounds. In this calibration application, the search will use as the initial population and and as the lower and upper bounds of the iterative search. The stopping criteria of this iterative search is a change in less than the 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 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. 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 ).

Systematic Odometry Error Evaluation and Correction
The procedure proposed in this paper to systematically evaluate and correct the systematic odometry errors of the omnidirectional mobile robot APR-02 is based on the definition of 36 individual calibration trajectories which together depict a flower-shaped figure, on the measurement of the odometry and ground truth trajectory in each calibration trajectory, and on the application of several strategies to iterative adjustment of the effective value of the kinematic parameters to match the odometry and the ground truth trajectories registered in these 36 calibration trajectories. The implementation of the 36 trajectories that define the flower-shaped figure is proposed as a representative test-bench of the infinite trajectories that can perform this omnidirectional mobile robot. In this paper, each calibration trajectory has been repeated 10 times; with a total of 360 registered trajectories. Five repetitions will be used to calibrate the effective value of the kinematic parameters and Five repetitions will be used to validate the results.

Calibration Trajectories Depicting a Characteristic Flower-Shaped Figure
This paper proposes the improvement of the odometry of the omnidirectional mobile robot APR-02 using a set of specific individual calibration trajectories that globally depict a characteristic flower-shaped figure. Figure 9 shows the proposed trajectories and Table A1 (listed in Appendix A) presents the motion command required to implement each calibration trajectory and the values of the corresponding target angular rotational velocities of the wheels required to implement each trajectory that will be specific for each mobile robot type.
The target angular velocities of the wheels shown in Table A1 (Appendix A) are in revolutions per minute (rpm) because this unit is normally used by the PIDs controlling the angular rotational velocity of the motors of the mobile robot. The calibration trajectories comprise straight displacements (Figure 9, red line labeled with an R followed with a number), clockwise displacements (blue line labeled with a B followed with a number), and counterclockwise displacements (green line labeled with a G followed with a number). These 36 combinations of angular rotational velocities of the wheels are a short representation of the infinite set of possible motion combinations. The linear displacement of all trajectories has been limited to 1 m in order to generate a characteristic and easy to remember flower-shaped figure. In this paper, each trajectory has been repeated and registered 10 times in a total of 360 trajectory experiments. Each trajectory register contains the sequence of instantaneous angular velocities of the three wheels E(k = 1 . . .

Odometry Calibration Strategies and Results
The odometry calibration strategies tested in this paper are based on analysis of the calibration trajectories proposed in Figure 9. The iterative calibration procedure used has been previously described in Section 2.6. In summary, this iterative calibration gets the registered calibration trajectories and iteratively adjusts the values of the effective kinematic parameters to globally match the odometry and ground truth trajectories. Table 4 presents the results obtained: Trajectories depicts which trajectories have been used in the iterative search; Strategy shows the acronym of the calibration strategy applied; Method describes the iterative function used (GA or fmin) and the number of trajectory repetitions used in the iterative search: (1) one or (5) five repetitions; -1 shows the value of the kinematic matrix obtained as a result of the iterative search; is the value of the average cost function obtained during the iterative search or training; is the average value of the cost function obtained with five additional calibration trajectories (the complete flower-shape); Improvement depicts the relative improvement of relative to the uncalibrated case (None strategy). The adequacy of the trajectories proposed in Figure 9 to the calibration of the odometry mobile robot APR-02 will be evaluated in the following section.

Odometry Calibration Strategies and Results
The odometry calibration strategies tested in this paper are based on analysis of the calibration trajectories proposed in Figure 9. The iterative calibration procedure used has been previously described in Section 2.6. In summary, this iterative calibration gets the registered calibration trajectories and iteratively adjusts the values of the effective kinematic parameters to globally match the odometry and ground truth trajectories. Table 4 presents the results obtained: Trajectories depicts which trajectories have been used in the iterative search; Strategy shows the acronym of the calibration strategy applied; Method describes the iterative function used (GA or fmin) and the number of trajectory repetitions used in the iterative search: (1) one or (5) five repetitions; M −1 shows the value of the kinematic matrix obtained as a result of the iterative search; CF CALIBRATION is the value of the average cost function obtained during the iterative search or training; CF VALIDATION is the average value of the cost function obtained with five additional calibration trajectories (the complete flower-shape); Improvement depicts the relative improvement of CF VALIDATION relative to the uncalibrated case (None strategy).                  The calibration strategies shown in Table 4 have been generally labeled as STX-GAZ and STX-FminZ, where X describes the group of trajectories considered (from A to E); GA refers to the use of the ga.m iterative function and Fmin to the fmincon.m iterative function; and Z is the number of repetitions of each calibration trajectory considered, a value that can be 1 or 5. The evaluation of each calibration strategy with one or five repetitions was proposed to compare the achievements obtained relative to the additional effort required to obtain 5 repetitions of each calibration trajectory. The calibration strategies evaluated in Table 4 are: None. This strategy provides a reference evaluation result of the cost function CF 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.
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).

Discussion of the Results Obtained with the Odometry Calibration Strategies
The results of the calibration strategies evaluated in Table 4 show that the evaluation of straight trajectories usually generates worse validation results than curved trajectories. It is likely that straight target trajectories (Table A1: R1 . . . R12) are less representative of the motion because they only use three different angular rotational velocities: ±11.291, ±19.557 and ±22.583 rpm, while the curved trajectories cover six angular velocities (Table A1). In general, the best results of the iterative search are obtained with GA, probably because GA is less prone to local minimum converge.
The best calibration result (CF CALIBRATION = 0.0166) was obtained with the strategy STB-GA5, using GA and five repetitions of only six curved calibration trajectories, also with very good validation results (CF VALIDATION = 0.0232). A similar result was obtained with the strategy STB-GA1, using only one repetition of these six curved calibration trajectories (CF CALIBRATION = 0.0170), confirming the representativeness of the curved calibration trajectories. The strategies STB-GA1 and STB-GA5 represent a huge improvement of 73.1% and 81.3% in the average validation of CF VALIDATION relative to the uncalibrated case.
The best validation result (CF VALIDATION = 0.0222) was obtained with the strategy STE-GA5, using GA and 5 repetitions of all 36 calibration trajectories (180 training experiments). However, a very similar result was also obtained using GA and with only 1 repetition of all training trajectories (STE-GA1, 36 experiments, CF VALIDATION = 0.0226). The improvements obtained in the validation of STE-GA1 and STE-GA5 were 81.8% and 82.1% respectively, so the conclusion is that both strategies are valid to calibrate the kinematic parameters of the mobile robot APR-02. Table 5 compares the differences between the nominal and calibrated kinematic parameters obtained with STE-GA5. Unexpectedly, the differences between the nominal and calibrated values of the distance from the wheels to the center of the mobile robot (R a , R b , R c ) are higher than 10%, likely caused by the bending of the structure that supports the wheels (wheelbase). The differences in the effective values of the radii of the wheels (r a , r b , r c ) are in a range from 2 to 5%, probably caused by the complex assembly of the wheels. Finally, the values of the angular orientation of the wheels (δ a , δ b , δ c ) vary within a very small range (0.18% and 0.52%), confirming the good alignment of the wheels and DC motors during the assembly of the mobile robot.  The exact value of the best inverse of the compact kinematic matrix M −1 computed from the effective value of the kinematic parameters obtained with STE-GA5 is: Finally, Table 6 summarizes the average RMS errors and average maximum errors obtained with the uncalibrated and calibrated kinematic parameters. These validation results have been obtained with the five repetitions of the 36 calibration trajectories registered for validation (180 validation experiments). Table 6 shows that the improvement computed from the validation value of the cost function (82.1%) is representative of the trajectory improvements achieved. The application of the calibrated kinematic parameters showed an improvement of 67% in the evaluation of the RMS error distance between the odometry trajectory and the ground truth trajectory, and an improvement of 71% in the RMS error evaluation of the absolute difference between the angular orientation of the mobile robot during these trajectories. The application of the calibrated kinematic parameters also showed a reduction in the maximum absolute differences between the odometry and ground truth trajectories, which have been reduced from 76 mm to 23 mm and from 5.86 • to 1.77 • . Similar improvements have been obtained in the error in the determination of the final location and angular orientation of the mobile robot that has been reduced from 74 mm to 16 mm and from and from 5.32 • to 0.73 • . Figure 10 shows the application of the calibrated odometry to the trajectories shown previously in Figure 7, which correspond to five repetitions of the R1 calibration trajectory.

Discussion and Conclusions
This paper proposes a general procedure to evaluate and correct the systematic odometry errors of a real three-wheeled omnidirectional mobile robot (1.760 m, 30 Kg) designed as a versatile personal assistant tool. This procedure is based on the definition of 36 representative straight and curved calibration trajectories which together depict a characteristic flower-shaped figure.
The odometry and ground truth trajectories measured while performing each one of these calibration trajectories are measured and registered for later offline fitting of the kinematic parameters of the mobile robot in order to match these two trajectories. This paper has evaluated the use of different trajectory subsets and the use of two iterative matching strategies based on gradient search minimization and genetic algorithms. The best matching between odometry and ground truth trajectories has been obtained using genetic algorithms and five repetitions of all calibration trajectories. The fitting of the kinematic parameters has shown differences higher than 10% in the distance from the wheels to the center of the mobile robot ( , , ), and between 2 and 5% in the radii of the wheels ( , , ). This approach has the advantage of the feasible physical interpretation of the fitting results in the omnidirectional mobile robot.
The fitting results have been validated with five new additional repetitions of all these measured trajectories, providing an average improvement of 82% in the evaluation of the multivariable cost function that compares the final position and orientation of the mobile robot. The best performances of the genetic algorithm agree with the results of Savaee et al. [15], and confirm that the mutation and combinations generated during the search based on genetic algorithms has the best chance to detect the global minimum of the multivariate function that summarizes the differences between the odometry and ground truth trajectories of the mobile robot. In this case, the genetic algorithm search (strategy STE-GA5) required 187 iterations and 37.545 function counts to meet the stopping criteria.

Discussion and Conclusions
This paper proposes a general procedure to evaluate and correct the systematic odometry errors of a real three-wheeled omnidirectional mobile robot (1.760 m, 30 kg) designed as a versatile personal assistant tool. This procedure is based on the definition of 36 representative straight and curved calibration trajectories which together depict a characteristic flower-shaped figure.
The odometry and ground truth trajectories measured while performing each one of these calibration trajectories are measured and registered for later offline fitting of the kinematic parameters of the mobile robot in order to match these two trajectories. This paper has evaluated the use of different trajectory subsets and the use of two iterative matching strategies based on gradient search minimization and genetic algorithms. The best matching between odometry and ground truth trajectories has been obtained using genetic algorithms and five repetitions of all calibration trajectories. The fitting of the kinematic parameters has shown differences higher than 10% in the distance from the wheels to the center of the mobile robot (R a , R b , R c ), and between 2 and 5% in the radii of the wheels (r a , r b , r c ). This approach has the advantage of the feasible physical interpretation of the fitting results in the omnidirectional mobile robot.
The fitting results have been validated with five new additional repetitions of all these measured trajectories, providing an average improvement of 82% in the evaluation of the multivariable cost function that compares the final position and orientation of the mobile robot. The best performances of the genetic algorithm agree with the results of Savaee et al. [15], and confirm that the mutation and combinations generated during the search based on genetic algorithms has the best chance to detect the global minimum of the multivariate function that summarizes the differences between the odometry and ground truth trajectories of the mobile robot. In this case, the genetic algorithm search (strategy STE-GA5) required 187 iterations and 37.545 function counts to meet the stopping criteria.
The final conclusion of the comparative calibration analysis performed in this work is that the use of curved calibration trajectories is more representative to calibrate the kinematic parameters of an omnidirectional mobile robot. This conclusion agrees with Batlle et al. [17], who proposed the use of four curved trajectories for general omnidirectional mobile robot calibration, and with Maddahi et al. [11], who concluded that the performance of a calibration procedure depends on the type of trajectory analyzed.
Future works will analyze the application of this procedure to different units of the same mobile robot type in order to validate its application in a general manufacturing stage.

Conflicts of Interest:
The authors declare that they have no conflict 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.