27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
|
#ifndef MISSION_CONTROLLER_ACS_FUSEDROTATIONESTIMATION_H_
|
||
|
#define MISSION_CONTROLLER_ACS_FUSEDROTATIONESTIMATION_H_
|
||
|
|
||
|
#include <fsfw/globalfunctions/math/VectorOperations.h>
|
||
|
#include <mission/controller/acs/AcsParameters.h>
|
||
|
|
||
|
class FusedRotationEstimation {
|
||
|
public:
|
||
|
FusedRotationEstimation(AcsParameters *acsParameters_);
|
||
|
|
||
|
void estimateFusedRotationRateSafe(bool sunValid, double sunB[3], double sunRateB[3],
|
||
|
bool magValid, double magB[3], double magRateB[3],
|
||
|
bool rotRateValid, double rotRateB[3], double fusedRateB[3],
|
||
|
double fusedRateParallelB[3], double fusedRateOrthogonalB[3]);
|
||
|
void estimateFusedRotationRateEclipse(bool rotRateValid, double rotRateB[3], double fusedRateB[3],
|
||
|
double fusedRateParallelB[3],
|
||
|
double fusedRateOrthogonalB[3]);
|
||
|
|
||
|
protected:
|
||
|
private:
|
||
|
AcsParameters *acsParameters;
|
||
|
double rotRateOldB[3] = {0, 0, 0};
|
||
|
double fusedRateOldB[3] = {0, 0, 0};
|
||
|
};
|
||
|
|
||
|
#endif /* MISSION_CONTROLLER_ACS_FUSEDROTATIONESTIMATION_H_ */
|