FusionCore’s ROS 2 Sensor Fusion SDK Fills a Critical Gap
The increasing adoption of mobile robots in various industries has created a pressing need for reliable and efficient sensor fusion software. Every mobile robot relies on multiple sensors, including IMUs, wheel encoders, and GPS, to determine its position and navigate its surroundings. However, each of these sensors has its own limitations and imperfections, making it essential to have software that can intelligently combine their data into a trustworthy position estimate. This is where FusionCore, a ROS 2 sensor fusion SDK, comes into play.
FusionCore is designed to fill the gap left by existing sensor fusion packages, such as robot_localization, which lacks native ECEF GPS fusion, IMU bias estimation, and adaptive noise covariance. Its designated replacement, fuse, has incomplete GPS support and no ECEF handling or RTK quality gating. FusionCore, on the other hand, offers a comprehensive solution that combines IMU, wheel encoders, and GPS data into a single reliable position estimate, making it an attractive option for mobile robot developers.
The SDK’s performance has been tested on the NCLT dataset, where it outperformed robot_localization in 5 out of 6 sequences. FusionCore’s ability to handle degraded GPS signals, reject outlier measurements, and adapt to changing noise covariance makes it a robust and reliable choice for mobile robot applications.
The Operational Mechanics of FusionCore
So, what sets FusionCore apart from its predecessors? One key feature is its ability to self-tune noise covariance, eliminating the need for manual tuning. This is achieved through a sliding window of 50 innovation sequences per sensor, which estimates the actual noise covariance from the data. The noise matrix R is then updated slowly toward the estimated true value using an exponential moving average.
FusionCore also employs a Mahalanobis outlier gate to reject GPS fixes that exceed a certain threshold, preventing jumps and multipath errors from affecting the filter’s position estimate. Additionally, the SDK uses a zero velocity pseudo-measurement to suppress IMU drift when the robot is stationary, a technique commonly used in inertial navigation systems.
Another important feature of FusionCore is its ability to handle delayed GPS fixes. By storing a ring buffer of IMU messages, the SDK can restore the closest state snapshot before the fix timestamp, re-fuse the fix at the correct time, and replay all buffered IMU messages forward to now. This eliminates motion-model approximation error for delayed measurements.
Who Wins, Who Loses, and Who Gets Disrupted?
The introduction of FusionCore is likely to disrupt the existing market for sensor fusion software, particularly in the mobile robot industry. Companies that rely heavily on robot_localization or fuse may need to reassess their software choices and consider migrating to FusionCore.
On the other hand, mobile robot developers who adopt FusionCore are likely to benefit from its improved performance, reliability, and ease of use. The SDK’s ability to handle degraded GPS signals, reject outlier measurements, and adapt to changing noise covariance makes it an attractive option for applications that require high accuracy and reliability.
Additionally, FusionCore’s compatibility with Nav2 and its ability to publish everything Nav2 needs out of the box make it a convenient choice for developers who want to integrate sensor fusion with navigation and control systems.
The Skeptical Case
While FusionCore offers many advantages, there are some potential drawbacks to consider. One concern is the SDK’s reliance on a specific set of sensors, including IMUs, wheel encoders, and GPS. This may limit its applicability to certain use cases or environments where these sensors are not available or reliable.
Another potential issue is the complexity of the SDK’s configuration and tuning process. While FusionCore’s self-tuning noise covariance feature eliminates the need for manual tuning, the SDK still requires careful configuration and calibration to achieve optimal performance.
What’s Next?
As FusionCore continues to gain traction in the mobile robot industry, we can expect to see further developments and improvements to the SDK. The project’s roadmap includes plans to add support for additional sensors, improve performance in challenging environments, and enhance compatibility with other navigation and control systems.
One key milestone to watch is the release of FusionCore’s next major version, which is expected to include significant performance enhancements and new features. Developers who are interested in using FusionCore should keep an eye on the project’s GitHub page and ROS Discourse forum for updates and announcements.
Bookmark this one — it will matter to your business decisions this week.
By Priya Nair, AI & Startup Reporter at TrendFlashy
Ready to launch your own asset?
Check out our guide on Building a Profitable Online Business.
