|
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. More...
|
|
| NCLKF (const A_t &A, const B_t &B, const H_t &H, const double l) |
| The main constructor. More...
|
|
| LKF () |
| Convenience default constructor. More...
|
|
| LKF (const A_t &A, const B_t &B, const H_t &H) |
| The main constructor. More...
|
|
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. More...
|
|
virtual statecov_t | predict (const statecov_t &sc, const u_t &u, const Q_t &Q, [[maybe_unused]] double dt) const override |
| Applies the prediction (time) step of the Kalman filter. More...
|
|
virtual statecov_t | correct (const statecov_t &sc, const z_t &z, const R_t &R) const =0 |
| Applies the correction (update, measurement, data) step of the Kalman filter. More...
|
|
virtual statecov_t | predict (const statecov_t &sc, const u_t &u, const Q_t &Q, double dt) const =0 |
| Applies the prediction (time) step of the Kalman filter. More...
|
|
|
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, [[maybe_unused]] const B_t &B, [[maybe_unused]] 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 [5].
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.