A Go library implementing state estimation and filtering algorithms including Kalman, Extended Kalman, Unscented Kalman, and Particle filters.
go-estimate is a Go library that implements state estimation and filtering algorithms for tracking dynamic systems under uncertainty. It provides implementations of Kalman filters, particle filters, and smoothing algorithms to infer system states from noisy measurements. The library solves problems in robotics, navigation, and sensor fusion where accurate real-time state estimation is required.
Go developers and engineers working on robotics, autonomous systems, sensor fusion, navigation, or any application requiring probabilistic state estimation from noisy data.
Developers choose go-estimate for its idiomatic Go implementation of fundamental estimation algorithms, offering a lightweight alternative to larger scientific computing libraries. Its focused suite of filters provides reliability and performance for real-time systems without external dependencies.
State estimation and filtering algorithms in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library is designed with clean, idiomatic Go code, prioritizing correctness and usability for seamless integration into Go projects without external dependencies, as stated in its philosophy.
Implements essential algorithms like Kalman Filter, Extended Kalman Filter, Unscented Kalman Filter, and Bootstrap Filter, covering linear, non-linear, and non-Gaussian state estimation needs.
The README links to a separate repository with usage examples, providing concrete guidance for real-world applications such as robotics and sensor fusion.
Badges indicate continuous integration, high code coverage, and GoDoc references, ensuring reliability and easy API exploration for developers.
The README's TODO list admits that key algorithms like Square Root filter and Information filter are not implemented, limiting its scope for specialized estimation tasks.
Installing dependencies requires running `make dep`, which adds an extra step and potential friction compared to standard Go module commands.
As a focused library, it lacks the extensive tooling, community plugins, and integration options found in larger scientific computing ecosystems, which might hinder advanced use cases.