A ROS framework for sensor fusion using nonlinear least squares optimization, enabling state estimation, localization, mapping, and calibration on robots.
fuse is a ROS framework for performing sensor fusion on robots using nonlinear least squares optimization. It provides a plugin-based architecture to model sensors, motion, and publishers, enabling real-time applications like state estimation, localization, mapping, and calibration. The framework abstracts the complexity of wiring sensor models together, allowing developers to focus on their specific robotic system.
Robotics engineers and researchers working on autonomous systems that require sensor fusion for state estimation, localization, or mapping. It is particularly useful for those building custom sensor models or motion models in ROS environments.
Developers choose fuse for its flexible plugin-based architecture, which allows easy customization and reuse of sensor and motion models. It integrates seamlessly with ROS and leverages Ceres Solver for robust nonlinear optimization, reducing the boilerplate code needed for sensor fusion pipelines.
The fuse stack provides a general architecture for performing sensor fusion live on a robot. Some possible applications include state estimation, localization, mapping, and calibration.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables custom modeling of sensors, motion, and publishers as plugins, allowing easy adaptation to different robots and sensors, as shown in the differential drive and Ackermann steering examples.
Supports deriving custom variable types from a base class, such as poses or scalars, facilitating complex state estimation like online wheel diameter calibration detailed in the README.
Integrates Google's Ceres Solver for nonlinear least squares optimization, providing a solid mathematical foundation for sensor fusion tasks as highlighted in the math section.
Includes common implementations for basic variables and examples, accelerating development by offering a starting point for custom models, as mentioned in the key features.
Key API concepts like sensor models, motion models, and optimizers are marked as 'coming soon' in the README, which can hinder adoption and debugging for new users.
Requires deriving multiple custom classes for variables, constraints, and plugins, which can be time-consuming compared to drop-in solutions, as evidenced by the detailed example setup.
The asynchronous flow and batch optimization cycles introduce delays, as noted in the overview, making it less suitable for applications requiring instant state updates.