Odom gives me inaccurate results

The odometery topic is giving me inaccurate results while running the Husarion Rosbot 2R around in the real-world. Could it have something to do with the wheels or the IMU? If so, how do we re-calibrate so that we’ll receive accurate results from the Odom topic. Right now there is an error of several centimeters. Please help, I have to present tomorrow and currently the difference between where the robot is and where odom thinks it is is too big.

I haven’t played directly with the odometry reading.
But in general odometry will be off. Especially as you move away from the point in which the robot started. All robots I have every used had significant odometry error.

I suggest using AMCL (localization), gslam, or some other package to localize off of a sensor to correct the odometry.

Hello @Elianne_Sacher

I confirm. For short movements, odometry (odom) is a good local source of information about the location of the robot. However, this method is sensitive to errors due to friction and other non-deterministic elements of the real world. Increasing the distance from the starting point, the odometry error will accumulate / add up. To correct it, another source of information should be used, such as LiDAR, whose readings can be combined with odometry readings using sensory fusion, e.g. in the AMCL suggested above. I encourage you to search the web and the vast amount of material available on the subject.


Best regards
Jan Brzyk