Refactor the current filter architecture classes. The primary goal is to strongly type the states in order to be able to identify different components to the state vector, all the while gathering main functionalities in interfaces to minimize code duplication and facilitate testing.
The first commit creates a kalman filter interface
The second commits create or refactor the state, measurement, and dynamics classes which are implemented in set in filter implementations
The rest of the commits refactor existing filter under this interface, removing a lot of fields from the modules
Verification
The tests were almost unchanged and pass
Documentation
Documentation was updated and new files were added
Future work
This approach could extend to the covariance, which is a bit more involved to type according to the state given the cross correlations
Description
Refactor the current filter architecture classes. The primary goal is to strongly type the states in order to be able to identify different components to the state vector, all the while gathering main functionalities in interfaces to minimize code duplication and facilitate testing.
The first commit creates a kalman filter interface The second commits create or refactor the state, measurement, and dynamics classes which are implemented in set in filter implementations The rest of the commits refactor existing filter under this interface, removing a lot of fields from the modules
Verification
The tests were almost unchanged and pass
Documentation
Documentation was updated and new files were added
Future work
This approach could extend to the covariance, which is a bit more involved to type according to the state given the cross correlations