src
kalman-cpp
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
30
KalmanFilter
(
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?
88
bool
initialized
;
89
90
// n-size identity
91
Eigen::MatrixXd
I
;
92
93
// Estimated states
94
Eigen::VectorXd
x_hat
,
x_hat_new
;
95
};
KalmanFilter::C
Eigen::MatrixXd C
Definition:
kalman.hpp:28
KalmanFilter::Q
Eigen::MatrixXd Q
Definition:
kalman.hpp:28
KalmanFilter::x_hat
Eigen::VectorXd x_hat
Definition:
kalman.hpp:94
KalmanFilter
Definition:
kalman.hpp:15
KalmanFilter::n
int n
Definition:
kalman.hpp:74
KalmanFilter::initialized
bool initialized
Definition:
kalman.hpp:88
KalmanFilter::I
Eigen::MatrixXd I
Definition:
kalman.hpp:91
KalmanFilter::init
void init()
Definition:
kalman.cpp:38
KalmanFilter::t
double t
Definition:
kalman.hpp:82
KalmanFilter::m
int m
Definition:
kalman.hpp:74
KalmanFilter::x_hat_new
Eigen::VectorXd x_hat_new
Definition:
kalman.hpp:94
KalmanFilter::K
Eigen::MatrixXd K
Definition:
kalman.hpp:28
KalmanFilter::KalmanFilter
KalmanFilter()
Definition:
kalman.cpp:27
KalmanFilter::dt
double dt
Definition:
kalman.hpp:85
KalmanFilter::state
Eigen::VectorXd state()
Definition:
kalman.hpp:73
KalmanFilter::changeStates
void changeStates(const Eigen::VectorXd &new_states)
Definition:
kalman.cpp:62
KalmanFilter::time
double time()
Definition:
kalman.hpp:74
KalmanFilter::P
Eigen::MatrixXd P
Definition:
kalman.hpp:28
KalmanFilter::A
Eigen::MatrixXd A
Definition:
kalman.hpp:28
KalmanFilter::update
void update(const Eigen::VectorXd &y)
Definition:
kalman.cpp:46
KalmanFilter::R
Eigen::MatrixXd R
Definition:
kalman.hpp:28
KalmanFilter::P0
Eigen::MatrixXd P0
Definition:
kalman.hpp:28
KalmanFilter::t0
double t0
Definition:
kalman.hpp:82
datmo
Author(s): Kostas Konstantinidis
autogenerated on Tue May 2 2023 02:58:06