MRAS
Multi Rocket Avionics System
Loading...
Searching...
No Matches
LinearKalmanFilter.h
1#include "eigen.h"
2#include "system_messages/AccelerometerDataMsg.h"
3#include "system_messages/BarometerDataMsg.h"
4#include "Atmosphere.h"
5
7public:
8 LinearKalmanFilter(float TimeDelta, float STDacceleration, float STDaltimeter);
9
10 void predict(float accel);
11
12 void update(float pressure);
13
14 float get_altitude() const { return altitude; }
15
16 float get_velocity() const { return velocity; }
17
18 float get_timeStep() const { return dt; }
19
20private:
21 float altitude = 0;
22 float velocity = 0;
23 // constants particular to a certain model
24 float dt = 0;
25 float accelSTD = 0;
26 float altimeterSTD = 0;
27 float g = -9.81;
28 float inC = 0;
29 // Matrices to be initialized
30 Eigen::Matrix<float, 2, 1> state;
31 Eigen::Matrix<float, 2, 2> covariance;
32 Eigen::Matrix<float, 2, 2> stateTransitionMatrix;
33 Eigen::Matrix<float, 2, 1> controlMatrix;
34 Eigen::Matrix<float, 1, 1> controlInput;
35 Eigen::Matrix<float, 2, 2> processNoise;
36 Eigen::Matrix<float, 1, 2> observationMatrix;
37 Eigen::Matrix<float, 1, 1> measurementVariance;
38
39 // Matrices that are calculated
40 Eigen::Matrix<float, 1, 1> innovationCovariance;
41 Eigen::MatrixXf kalmanGain;
42};
Definition: LinearKalmanFilter.h:6