Skyward boardcore
|
Implementation of a generic Kalman filter using the Eigen library. More...
#include <Kalman.h>
Classes | |
struct | KalmanConfig |
Configuration struct for the Kalman class. More... | |
Public Types | |
using | MatrixNN = Eigen::Matrix<T, N_size, N_size> |
using | MatrixPN = Eigen::Matrix<T, P_size, N_size> |
using | MatrixNP = Eigen::Matrix<T, N_size, P_size> |
using | MatrixPP = Eigen::Matrix<T, P_size, P_size> |
using | MatrixNM = Eigen::Matrix<T, N_size, M_size> |
using | CVectorN = Eigen::Vector<T, N_size> |
using | CVectorP = Eigen::Vector<T, P_size> |
using | CVectorM = Eigen::Vector<T, M_size> |
Public Member Functions | |
Kalman (const KalmanConfig &config) | |
Creates a Kalman filter object. | |
void | setConfig (const KalmanConfig &config) |
void | predict () |
Prediction step with previous F matrix. | |
void | predictUpdateF (const MatrixNN &F_new) |
Prediction step. | |
void | predictWithControl (const CVectorM &control) |
Prediction step with previous F matrix and with the control vector. | |
void | predictWithControlUpdateF (const MatrixNN &F_new, const CVectorM &control) |
Prediction step. | |
bool | correct (const CVectorP &y) |
Correction step. | |
const CVectorN | getState () |
const CVectorP | getOutput () |
const CVectorP | getResidual () |
const CVectorN | predictState (uint32_t k) |
Predicts k steps ahead the state. | |
const CVectorP | predictOutput (uint32_t k) |
Predicts k steps ahead the output. | |
Implementation of a generic Kalman filter using the Eigen library.
This class uses templates in order to know the size of each matrix at compile-time. This way we avoid Eigen to allocate memory dynamically.
using Boardcore::Kalman< T, N_size, P_size, M_size >::CVectorM = Eigen::Vector<T, M_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::CVectorN = Eigen::Vector<T, N_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::CVectorP = Eigen::Vector<T, P_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::MatrixNM = Eigen::Matrix<T, N_size, M_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::MatrixNN = Eigen::Matrix<T, N_size, N_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::MatrixNP = Eigen::Matrix<T, N_size, P_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::MatrixPN = Eigen::Matrix<T, P_size, N_size> |
using Boardcore::Kalman< T, N_size, P_size, M_size >::MatrixPP = Eigen::Matrix<T, P_size, P_size> |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |