MRAS
Multi Rocket Avionics System
Loading...
Searching...
No Matches
StateEstimator.h
1// 10/02/2023 -- Nikilesh
2#include "Subsystem.h"
3#include "LinearKalmanFilter.h"
4#include "system_messages/StateEstimatorMsg.h"
5#include <Arduino.h>
6
8{
9 public:
10 explicit StateEstimator(uint8_t id, float tstep) : Subsystem(id) {
11 Filter = new LinearKalmanFilter(tstep, 28, 8);
12 };
14 int8_t setup() override;
15 int8_t loop() override;
16
17 static float altitudeEstimate(BarometerDataMsg *msg);
18 void on_message(SystemMessage *msg) override;
19
20
21
22 // SUBSYSTEM_NO_MESSAGE_HANDLER;
23 SUBSYSTEM_NAME("StateEstimator");
24
25 private:
26 float altitude = 0;
27 float velocity = 0;
28
29 bool start = false;
30 bool receivedBaro = false;
31 bool receivedAcc = false;
32
33 float yAcceleration = 0;
34 float pressure = 0;
35
36 // change this to uint32_t in future please @Nikilesh
37 float currentMillis = 0;
38 float prevMillis = 0;
39
40 uint32_t last_log = 0;
41
42 LinearKalmanFilter * Filter;
43 AccelerometerDataMsg *acceleration{};
44 BarometerDataMsg *altimeter{};
45
46};
47
Definition: LinearKalmanFilter.h:6
Definition: StateEstimator.h:8
void on_message(SystemMessage *msg) override
Definition: StateEstimator.cpp:49
Definition: Subsystem.h:30
Subsystem(uint8_t id)
Definition: Subsystem.h:86
A base class for all system messages.
Definition: SystemMessage.h:32
Message sent by the accelerometer to the system.
Definition: AccelerometerDataMsg.h:17
Message sent by the barometer to the system.
Definition: BarometerDataMsg.h:15