PR #1419 was merged into introlab/rtabmap_ros last week, co-authored with Mathieu Labbe. It adds a TurtleBot3 Gazebo Harmonic demo showing a feedback loop between FusionCore (IMU + wheel UKF) and icp_odometry.
The results in this post are withdrawn and should not be cited. They were measured through
FusionCore's own NCLT dataset player, which had two input errors that fed both filters wrong
data: a wheel-odometry yaw rate in the wrong frame (#169) and an accelerometer-derived tilt
declared as a 0.57 degree attitude. The explanation below of why robot_localization did
worse rests on those runs and is withdrawn with them. Measured again on all twelve sequences
with the player corrected, the shipped FusionCore default does not beat raw unfiltered GPS,
and the robot_localization comparison is being re-run. Current numbers:
Benchmark Results. The original text is left below unchanged
so the correction is visible.
I ran FusionCore head-to-head against robot_localization on the NCLT dataset from the University of Michigan: a real robot driving around a campus for 10 minutes, mixed urban/suburban environment with tree cover, buildings, and open quads. Ground truth is RTK GPS at sub-10cm accuracy.
The filter is working correctly in simulation. The benchmarks on the NCLT dataset look good. What I don't have yet is enough data from real hardware deployments across different robot platforms and sensor combinations. That's what I'm looking for.
I have been working on FusionCore for the last several months. It is a ROS 2 Jazzy sensor fusion package: IMU + wheel encoders + GPS fused at 100 Hz into a single position estimate. The short version of why it exists is that robot_localization has seen very limited development since 2023, and the gaps it leaves are ones that matter in real deployments.