My experience is that the accelerometer integration errors end up accumulating very quickly, and can't be used for odometry.
A gyro is better, and coupled with a magnetometer, can get you a reasonable heading over time. But over time, you may already drift significantly away from calculated location because of distance times angle.
So, odometry from wheel encoders is the most reliable I've actually run with. I end up doing the Kalman fusion thing with all of these metrics, but the wheel encoders are the heaviest weighted, as long as they don't slip. On grass and loose gravel, they do.
Then life happened and I haven't driven a bot for almost two years :-( I have to live vicariously through your mower :-D
I was trying out a StereoLabs Zed, coupled to a Jetson Xavier, when time became scarce. That can give pretty good visual odometry, so that might be another "heavily weighted" part of the filter.
Finally, RTK GPS is really affordable now. You don't even need a "well surveyed" base station, if you're close by, and navigate relatively anyway. You can eyeball it on Google Maps / Earth, and movement relative to that position will be very accurate. Communication is via 900 MHz 20 kbps serial XBee (long range, and fast enough!) or cell data modem. Up and down, so two subscriptions, and requires that you're actually within coverage. Maybe StarLink can finally solve that problem :-) I think the winner (or a close runner-up) on the last Robogames Magellan event used RTK, as the rules did not disallow it. Wouldn't work in classic AVC, though. But I'd expect roboracers to be able to use it? (Speaking of NaNs locking steering actuation so it veers into a wall ... I've had almost exactly that same bug!)
Sincerely,
Jon Watte
--
"I find that the harder I work, the more luck I seem to have." -- Thomas Jefferson