using Base_class = LKF < n , m , p >
Base class of this class.
using x_t = typename Base_class::x_t
State vector type .
using u_t = typename Base_class::u_t
Input vector type .
using z_t = typename Base_class::z_t
Measurement vector type .
using P_t = typename Base_class::P_t
State uncertainty covariance matrix type .
using R_t = typename Base_class::R_t
Measurement noise covariance matrix type .
using Q_t = typename Base_class::Q_t
Process noise covariance matrix type .
using statecov_t = typename Base_class::statecov_t
Helper struct for passing around the state and its covariance in one variable.
using A_t = typename Base_class::A_t
System transition matrix type .
using B_t = typename Base_class::B_t
Input to state mapping matrix type .
using H_t = typename Base_class::H_t
State to measurement mapping matrix type .
using K_t = typename Base_class::K_t
Kalman gain matrix type .
using Base_class = KalmanFilter < n , m , p >
Base class of this class.
using x_t = typename Base_class::x_t
State vector type .
using u_t = typename Base_class::u_t
Input vector type .
using z_t = typename Base_class::z_t
Measurement vector type .
using P_t = typename Base_class::P_t
State uncertainty covariance matrix type .
using R_t = typename Base_class::R_t
Measurement noise covariance matrix type .
using Q_t = typename Base_class::Q_t
Process noise covariance matrix type .
using statecov_t = typename Base_class::statecov_t
Helper struct for passing around the state and its covariance in one variable.
typedef Eigen::Matrix< double, n , n > A_t
System transition matrix type .
typedef Eigen::Matrix< double, n , m > B_t
Input to state mapping matrix type .
typedef Eigen::Matrix< double, p , n > H_t
State to measurement mapping matrix type .
typedef Eigen::Matrix< double, n , p > K_t
Kalman gain matrix type .
typedef Eigen::Matrix< double, n , 1 > x_t
State vector type .
typedef Eigen::Matrix< double, m , 1 > u_t
Input vector type .
typedef Eigen::Matrix< double, p , 1 > z_t
Measurement vector type .
typedef Eigen::Matrix< double, n , n > P_t
State uncertainty covariance matrix type .
typedef Eigen::Matrix< double, p , p > R_t
Measurement noise covariance matrix type .
typedef Eigen::Matrix< double, n , n > Q_t
Process noise covariance matrix type .
NCLKF ()
Convenience default constructor.
NCLKF (const A_t &A , const B_t &B , const H_t &H , const double l)
The main constructor.
LKF ()
Convenience default constructor.
LKF (const A_t &A , const B_t &B , const H_t &H )
The main constructor.
virtual statecov_t correct (const statecov_t &sc, const z_t &z, const R_t &R) const override
Applies the correction (update, measurement, data) step of the Kalman filter.
virtual statecov_t predict (const statecov_t &sc, const u_t &u, const Q_t &Q, double dt) const override
Applies the prediction (time) step of the Kalman filter.
A_t A
The system transition matrix .
B_t B
The input to state mapping matrix .
H_t H
The state to measurement mapping matrix .
static P_t covariance_predict (const A_t &A , const P_t &P, const Q_t &Q, const double dt)
template<int check = n_inputs>
static std::enable_if< check==0, x_t >::type state_predict (const A_t &A , const x_t &x, const B_t &B , const u_t &u)
template<int check = n_inputs>
static std::enable_if< check!=0, x_t >::type state_predict (const A_t &A , const x_t &x, const B_t &B , const u_t &u)
static R_t invert_W (R_t W)
template<int n_states, int n_inputs, int n_measurements>
class mrs_lib::NCLKF< n_states, n_inputs, n_measurements >
This class implements the norm-constrained linear Kalman filter [4] .
Note that the class is templated. The template parameters specify the number of states, number of inputs and number of measurements of the system. The last template parameter specifies the number of states which are norm-constrained.
The norm constraint is specified in the constructor and applied to the whole state vector of the system.