24#ifndef TAPROOT_KALMAN_FILTER_HPP_
25#define TAPROOT_KALMAN_FILTER_HPP_
29#include "modm/architecture/interface/assert.h"
30#include "modm/math/matrix.hpp"
43template <u
int16_t STATES, u
int16_t INPUTS>
55 const float (&A)[STATES * STATES],
56 const float (&C)[INPUTS * STATES],
57 const float (&Q)[STATES * STATES],
58 const float (&R)[INPUTS * INPUTS],
59 const float (&P0)[STATES * STATES])
77 void init(
const float (&initialX)[STATES * 1])
97 K = P * Ct * (C * P * Ct + R).inverse();
98 xHat = xHat + K * (y - C * xHat);
171 bool initialized =
false;
Definition kalman_filter.hpp:45
const std::array< float, STATES > & getStateVectorAsMatrix() const
Definition kalman_filter.hpp:102
void init(const float(&initialX)[STATES *1])
Definition kalman_filter.hpp:77
std::array< float, INPUTS *INPUTS > & getMeasurementCovariance()
Definition kalman_filter.hpp:108
KalmanFilter(const float(&A)[STATES *STATES], const float(&C)[INPUTS *STATES], const float(&Q)[STATES *STATES], const float(&R)[INPUTS *INPUTS], const float(&P0)[STATES *STATES])
Definition kalman_filter.hpp:54
void performUpdate(const CMSISMat< INPUTS, 1 > &y)
Definition kalman_filter.hpp:84
Definition ballistics.cpp:29
Definition cmsis_mat.hpp:45
arm_matrix_instance_f32 matrix
Definition cmsis_mat.hpp:47
bool constructIdentityMatrix()
Definition cmsis_mat.hpp:104
void copyData(const float(&other)[ROWS *COLS])
Definition cmsis_mat.hpp:93
std::array< float, ROWS *COLS > data
Definition cmsis_mat.hpp:46