kalman.hpp
Go to the documentation of this file.
1 
11 #include <Eigen/Dense>
12 
13 #pragma once
14 
15 class KalmanFilter {
16 
17 public:
18 
27  // Matrices for computation
28  Eigen::MatrixXd A, C, Q, R, P, K, P0;
29 
31  double dt,
32  const Eigen::MatrixXd& A,
33  const Eigen::MatrixXd& C,
34  const Eigen::MatrixXd& Q,
35  const Eigen::MatrixXd& R,
36  const Eigen::MatrixXd& P
37  );
38 
42  KalmanFilter();
43 
47  void init();
48 
52  void init(double t0, const Eigen::VectorXd& x0 );
53 
58  void update(const Eigen::VectorXd& y);
59 
60 
61  void update(const Eigen::VectorXd& y, double dt);
62 
67  void update(const Eigen::VectorXd& y, double dt, const Eigen::MatrixXd A);
68 
69  void changeStates(const Eigen::VectorXd& new_states);
73  Eigen::VectorXd state() { return x_hat; };
74  double time() { return t; };
75 
76 private:
77 
78  // System dimensions
79  int m, n;
80 
81  // Initial and current time
82  double t0, t;
83 
84  // Discrete time step
85  double dt;
86 
87  // Is the filter initialized?
89 
90  // n-size identity
91  Eigen::MatrixXd I;
92 
93  // Estimated states
94  Eigen::VectorXd x_hat, x_hat_new;
95 };
Eigen::MatrixXd C
Definition: kalman.hpp:28
Eigen::MatrixXd Q
Definition: kalman.hpp:28
Eigen::VectorXd x_hat
Definition: kalman.hpp:94
bool initialized
Definition: kalman.hpp:88
Eigen::MatrixXd I
Definition: kalman.hpp:91
void init()
Definition: kalman.cpp:38
double t
Definition: kalman.hpp:82
Eigen::VectorXd x_hat_new
Definition: kalman.hpp:94
Eigen::MatrixXd K
Definition: kalman.hpp:28
KalmanFilter()
Definition: kalman.cpp:27
double dt
Definition: kalman.hpp:85
Eigen::VectorXd state()
Definition: kalman.hpp:73
void changeStates(const Eigen::VectorXd &new_states)
Definition: kalman.cpp:62
double time()
Definition: kalman.hpp:74
Eigen::MatrixXd P
Definition: kalman.hpp:28
Eigen::MatrixXd A
Definition: kalman.hpp:28
void update(const Eigen::VectorXd &y)
Definition: kalman.cpp:46
Eigen::MatrixXd R
Definition: kalman.hpp:28
Eigen::MatrixXd P0
Definition: kalman.hpp:28
double t0
Definition: kalman.hpp:82


datmo
Author(s): Kostas Konstantinidis
autogenerated on Tue May 2 2023 02:58:06