libfixkalman
libfixkalman copied to clipboard
Kalman filter fixed-point implementation based on libfixmatrix, targeted at embedded systems without an FPU and/or need for performance.
.. image:: https://raw.githubusercontent.com/sunsided/libfixkalman/static/kalman.png :align: right
Fixed point Kalman filter library
libfixkalman is a Kalman filter computation library for microcontrollers. It is based on the libfixmatrix_ and libfixmath_ libraries, which use 16.16 bit fixed point values. The main focus is processors without an FPU, such as ARM Cortex-M0 or M3.
Matrix inversion in the correction step is implemented using Cholesky decomposition and an optimized inversion algorithm ported from EJML_.
See function reference_ for further details and example_gravity.c_ for example code.
.. _libfixmath: http://code.google.com/p/libfixmath/
.. _libfixmatrix: https://github.com/PetteriAimonen/libfixmatrix
.. _EJML: https://code.google.com/p/efficient-java-matrix-library/
.. _function reference: https://github.com/sunsided/libfixkalman/blob/master/FUNCTIONS.rst
.. _example_gravity.c: https://github.com/sunsided/libfixkalman/blob/master/example_gravity.c
conan.io
This library now has experimental support for the conan.io_ package manager and is aimed at CMake. Both libfixmath and libfixmatrix dependencies are available on conan.io and you should be able to verify the package building process by calling::
conan test_package --build
In general, to reference the library you'd provide a conanfile.txt with the following content::
[requires]
libfixkalman/20161008@sunside/stable
which corresponds to this package_, where 20161008 could be replaced with the latest version as found via conan search -v libfixkalman* -r=conan.io. You can then just::
conan install
or::
conan install --build
to obtain all required references.
.. _conan.io: https://conan.io/
.. _this package: https://conan.io/source/libfixkalman/20161008/sunside/stable