FusionCore
ROS 2 sensor fusion SDK. Combines IMU, wheel encoders, and GPS into one reliable position estimate. Self-tuning noise covariance. Apache 2.0.
What problem does this solve?
Every mobile robot needs to know where it is. It gets this from multiple sensors: IMU, wheel encoders, GPS: each of which is imperfect in its own way. IMUs drift. Wheels slip. GPS jumps. You need software that intelligently combines all three into one trustworthy position estimate.
That software is called a sensor fusion package. The standard one for ROS, robot_localization , lacks native ECEF GPS fusion, IMU bias estimation, and adaptive noise covariance. Its designated replacement ( fuse ) has incomplete GPS support with no ECEF handling or RTK quality gating as of early 2026. No clear accessible replacement exists for either.
FusionCore is built to fill that gap.
Benchmark results
FusionCore vs robot_localization on the NCLT dataset (University of Michigan): same IMU + wheel odometry + GPS, no manual tuning. Six sequences, same pipeline:
Sequence FC ATE RMSE RL-EKF ATE RMSE RL-UKF 2012-01-08 5.6 m 23.4 m NaN divergence at t=31 s 2012-02-04 9.7 m 20.6 m NaN divergence at t=22 s 2012-03-31 4.2 m 10.8 m NaN divergence at t=18 s 2012-08-20 7.5 m 9.4 m NaN divergence 2012-11-04 28.7 m 10.9 m NaN divergence 2013-02-23 4.1 m 5.8 m NaN divergence
FusionCore wins 5 of 6 sequences. On 2012-11-04 (fall, degraded GPS), FC's Mahalanobis outlier gate still loses despite inertial coast mode (Q inflation on consecutive rejections): GPS was sufficiently degraded for long enough that accumulated drift could not be fully recovered. RL-EKF has no rejection gate and self-corrects immediately. RL-UKF diverged with NaN on all six sequences. Full methodology, configs, and reproduce instructions in benchmarks/ .
... continue reading