What’s New¶
Release Notes
2024-02-20 Introductory Documentation¶
Update the demo/
directory to provide more written documentation of the
features and what’s going on.
Additional examples for using each feature are located in the featuretests/
directory.
2024-01-28 Hyperparameter Tuning¶
FormaK now provides functionality to select hyperparameters from a known set. For example, an innovation filtering (see below) level can be selected from data. This method is general and can be used to select categorical values for configuring a model or estimator.
Breaking Changes:
The
formak.python
EKF is no longer scikit-learn compatible. To use it with scikit-learn, it should be wrapper in theSklearnEKFAdapter
class.
Other Improvements:
There is the introduction of a significant quantity of Python types for function signatures in this design
2024-01-17 Better Documentation¶
FormaK now provides HTML documentation in the docs/generated/html/
directory.
The documentation can be re-generated by running the command make html
in the
docs/
directory.
Other Improvements:
Updates Github Actions to check that documentation is regenerated as needed
2023-10-29 Reference Model: Strapdown IMU¶
FormaK now provides a reference implementation of a Strapdown IMU. This can be used as a reference model to include within another model or used as a reference for understanding the current best practices when developing new models.
2023-09-18 Innovation Filtering¶
Innovation filtering provides error rejection for the Kalman Filter. If measurements come in that are sufficiently improbable based on the current variance of the system then the measurement will be ignored. This is useful for cases such as recieving a heading that is 180 degrees opposed to the current estimated heading of the vehicle. Maybe it’s helpful, but it’s likely an erroneous reading.
API Change:
Refactored error prone creation of sensor data in favor of a new key-based method
2023-08-04 Introducing FormaK Runtime¶
Commit 50eeadc
The first piece of the FormaK Runtime is the ManagedFilter
. This will
coordinate new sensor readings, process model updates and sensor model updates
with an easy to use interface.
The FormaK runtime will continue to be expanded over time to offer new features (e.g. around netcode and better managing sensor readings) as well as offering additional opt-in services (e.g. logging).
Other Improvements:
Reorganize how the AST is packaged with reusable fragments
Fix misconfigured CI
Fix misconfigured Linting
2023-06-29 Common Subexpression Elimination¶
Commit 80fdd9d
Common Subexpression Elimination removes all unnecessary code from the compute graph for the process model and individual sensor models in the filter. This represents a straightforward performance win that should benefit all models without changing the compute outcome. The upside for enabling the feature grows with model size because Common Subexpression Elimination with reduce shared computation at all scales, both large segments of repeat computation and the smallest operations.
2023-05-05 Calibration¶
Commit 02005ce
Add an optional Calibration parameter for setting up multiple sensor models or adding sensors at known positions.
Other Improvements:
Performance for the
ui.Model
and code generation flows is much improved
Calibration Design: designs/calibration.md Getting Started: getting-started.md
2023-04-10 C++ Source for Models¶
Commit d2bec5c
Generate C++ source for models as an add on to the symbolic and Python sources for models
2022-12-21 Scikit-Learn Integration¶
Commit ecbdb9e
FormaK Python models adapt the interface for Scikit-Learn (train, test, etc). This enables easier model fitting and additional integration with the Python science tools ecosystem.
2022-09-13 Python Source for Models¶
Commit 7e5ba82
Python classes for models and Kalman filters
2022-08-26 Python User Interface¶
Commit 578ea7e
Demonstrate the User Interface for FormaK