Skip to content
Tech News
← Back to articles

Show HN: FusionCore: ROS 2 sensor fusion that outperforms robot_localization

read original get ROS 2 Sensor Fusion Kit → more articles
Why This Matters

FusionCore introduces an advanced sensor fusion framework for ROS 2 that outperforms traditional methods like robot_localization by estimating IMU biases, adapting noise covariance dynamically, and rejecting outliers on all sensors. Its superior performance on benchmark datasets highlights its potential to enhance autonomous robot navigation accuracy and reliability. This development is significant for the industry as it enables more robust and precise sensor integration in mobile robots, especially on resource-constrained platforms like Raspberry Pi.

Key Takeaways

FusionCore

ROS 2 sensor fusion: IMU + wheel encoders + GPS fused via UKF at 100 Hz. 22-state filter with IMU bias estimation, adaptive noise covariance, and chi-squared outlier rejection on every sensor.

Why I built this

I needed sensor fusion for a mobile robot project and reached for robot_localization like everyone does. It works well. But I wanted a filter that estimated IMU gyro and accelerometer bias as part of the state vector, adapted its noise covariance from real sensor behavior rather than config values, and rejected outliers on every sensor update: not just GPS.

So I built FusionCore. It's a 22-state UKF that fuses IMU, wheel encoders, and GPS natively. Gyro and accelerometer bias are estimated continuously as filter states. Noise covariance adapts from the innovation sequence automatically. Every sensor update: IMU, wheel odometry, GPS: goes through a chi-squared gate before it touches the filter. GPS is handled in ECEF directly, no coordinate projection.

Benchmark

FusionCore vs robot_localization on the NCLT dataset: same IMU + wheel odometry + GPS, no manual tuning. Six sequences:

RL-EKF run with odom0_twist_rejection_threshold: 4.03 and odom1_pose_rejection_threshold: 3.72 (chi²-equivalent to FusionCore's thresholds at 99.9% confidence).

Sequence FC ATE RMSE RL-EKF ATE RMSE RL-UKF 2012-01-08 5.6 m 13.0 m NaN divergence at t=31 s 2012-02-04 9.7 m 19.1 m NaN divergence at t=22 s 2012-03-31 4.2 m 54.3 m NaN divergence at t=18 s 2012-08-20 7.5 m 24.1 m NaN divergence 2012-11-04 28.6 m 9.6 m NaN divergence 2013-02-23 4.1 m 11.0 m NaN divergence

Install

... continue reading