I use UKF for robot localization (via FilterPy). I understand how to do implementation in general, and GPS sensor already works.
My question is about adding odometry from dif. drive. Odometry errors accumulate, so if I provide the filter with (x,y,heading) from ROS2 dif. drive odometry, it will become more and more garbage. I thought that if I use velocity/angular velocity instead, I’ll be fine because those do not accumulate error. But what I see is improvement, compared to GPS-only case, at the beginning, but then it looks identical to GPS-only.
On the charts, black line is a ground truth trajectory.
So my question is, what data should I use from ROS2 /odom to provide to UKF, and how does it work?
Once again, I know how Kalman filter works in general, and how to implement it. I need some kind of human language explaination of how can it use data that accumulates errors.
Thank you.