|
mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
|
Go to the documentation of this file.
7 #ifndef SYSTEMMODELALOAMGARM_H
8 #define SYSTEMMODELALOAMGARM_H
10 #include <Eigen/Dense>
12 #include <boost/circular_buffer.hpp>
26 template <
int n_states,
int n_inputs,
int n_measurements>
31 static const int n = n_states;
32 static const int m = n_inputs;
33 static const int p = n_measurements;
35 typedef Eigen::Matrix<double, n, 1>
x_t;
36 typedef Eigen::Matrix<double, m, 1>
u_t;
37 typedef Eigen::Matrix<double, p, 1>
z_t;
39 typedef Eigen::Matrix<double, n, n>
P_t;
40 typedef Eigen::Matrix<double, p, p>
R_t;
41 typedef Eigen::Matrix<double, n, n>
Q_t;
52 std::shared_ptr<boost::circular_buffer<double>> nis_buffer =
nullptr;
53 ros::Time stamp = ros::Time(0);
54 bool measurement_jumped =
false;
63 if (other.nis_buffer !=
nullptr){
64 nis_buffer = std::make_shared<boost::circular_buffer<double>>(*other.nis_buffer);
66 measurement_jumped = other.measurement_jumped;
87 virtual statecov_t
correct(
const statecov_t& sc,
const z_t& z,
const R_t& R)
const = 0;
103 virtual statecov_t
predict(
const statecov_t& sc,
const u_t& u,
const Q_t& Q,
double dt)
const = 0;
108 #endif // SYSTEMMODELALOAMGARM_H
static const int n
Length of the state vector of the system.
Definition: kalman_filter_aloamgarm.h:31
static const int p
Length of the measurement vector of the system.
Definition: kalman_filter_aloamgarm.h:33
x_t x
State vector.
Definition: kalman_filter_aloamgarm.h:50
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.
Eigen::Matrix< double, p, p > R_t
Measurement noise covariance matrix type .
Definition: kalman_filter_aloamgarm.h:40
Eigen::Matrix< double, n, n > Q_t
Process noise covariance matrix type .
Definition: kalman_filter_aloamgarm.h:41
Helper struct for passing around the state and its covariance in one variable.
Definition: kalman_filter_aloamgarm.h:48
This abstract class defines common interfaces and types for a generic Kalman filter.
Definition: kalman_filter_aloamgarm.h:27
Eigen::Matrix< double, m, 1 > u_t
Input vector type .
Definition: kalman_filter_aloamgarm.h:36
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.
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition: attitude_converter.h:29
Eigen::Matrix< double, p, 1 > z_t
Measurement vector type .
Definition: kalman_filter_aloamgarm.h:37
P_t P
State covariance matrix.
Definition: kalman_filter_aloamgarm.h:51
Eigen::Matrix< double, n, n > P_t
State uncertainty covariance matrix type .
Definition: kalman_filter_aloamgarm.h:39
static const int m
Length of the input vector of the system.
Definition: kalman_filter_aloamgarm.h:32
Eigen::Matrix< double, n, 1 > x_t
State vector type .
Definition: kalman_filter_aloamgarm.h:35