2022-09-20 14:15:55 +02:00
|
|
|
#ifndef NAVIGATION_H_
|
|
|
|
#define NAVIGATION_H_
|
|
|
|
|
2023-08-07 11:23:10 +02:00
|
|
|
#include <fsfw/coordinates/Sgp4Propagator.h>
|
2023-08-07 13:37:05 +02:00
|
|
|
#include <mission/acs/defs.h>
|
2023-08-07 11:23:10 +02:00
|
|
|
#include <mission/controller/acs/AcsParameters.h>
|
|
|
|
#include <mission/controller/acs/MultiplicativeKalmanFilter.h>
|
|
|
|
#include <mission/controller/acs/SensorValues.h>
|
|
|
|
#include <mission/controller/controllerdefinitions/AcsCtrlDefinitions.h>
|
2022-09-20 14:15:55 +02:00
|
|
|
|
2022-11-03 10:43:27 +01:00
|
|
|
class Navigation {
|
|
|
|
public:
|
2024-02-27 16:05:05 +01:00
|
|
|
Navigation(AcsParameters *acsParameters);
|
2022-11-03 10:43:27 +01:00
|
|
|
virtual ~Navigation();
|
|
|
|
|
2024-02-27 16:05:05 +01:00
|
|
|
ReturnValue_t useMekf(const ACS::SensorValues *sensorValues,
|
|
|
|
const acsctrl::GyrDataProcessed *gyrDataProcessed,
|
|
|
|
const acsctrl::MgmDataProcessed *mgmDataProcessed,
|
|
|
|
const acsctrl::SusDataProcessed *susDataProcessed, const double timeDelta,
|
2024-03-15 13:16:38 +01:00
|
|
|
acsctrl::AttitudeEstimationData *attitudeEstimationData,
|
|
|
|
const bool allowStr);
|
2023-11-23 16:56:36 +01:00
|
|
|
void resetMekf(acsctrl::AttitudeEstimationData *mekfData);
|
2022-11-03 10:43:27 +01:00
|
|
|
|
2023-08-09 13:41:25 +02:00
|
|
|
ReturnValue_t useSpg4(timeval now, acsctrl::GpsDataProcessed *gpsDataProcessed);
|
2023-08-07 11:23:10 +02:00
|
|
|
ReturnValue_t updateTle(const uint8_t *line1, const uint8_t *line2);
|
2024-02-27 16:05:05 +01:00
|
|
|
void updateMekfStandardDeviations(const AcsParameters *acsParameters);
|
2023-08-07 11:23:10 +02:00
|
|
|
|
2022-11-03 10:43:27 +01:00
|
|
|
protected:
|
|
|
|
private:
|
|
|
|
MultiplicativeKalmanFilter multiplicativeKalmanFilter;
|
2023-02-23 15:05:10 +01:00
|
|
|
ReturnValue_t mekfStatus = MultiplicativeKalmanFilter::MEKF_UNINITIALIZED;
|
2023-08-07 11:23:10 +02:00
|
|
|
Sgp4Propagator sgp4Propagator;
|
2022-09-20 14:15:55 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* ACS_NAVIGATION_H_ */
|