MEKF readded to Detumble State Machine #908
@ -16,6 +16,10 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Readded rotation rate from the `MEKF` to the detumble state machine.
|
||||||
|
|
||||||
# [v8.2.0] 2024-06-26
|
# [v8.2.0] 2024-06-26
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
@ -557,9 +557,12 @@ void AcsController::performPointingCtrl() {
|
|||||||
void AcsController::handleDetumbling() {
|
void AcsController::handleDetumbling() {
|
||||||
switch (detumbleState) {
|
switch (detumbleState) {
|
||||||
case DetumbleState::NO_DETUMBLE:
|
case DetumbleState::NO_DETUMBLE:
|
||||||
if (fusedRotRateData.rotRateTotalSusMgm.isValid() and
|
if ((fusedRotRateData.rotRateTotalSusMgm.isValid() and
|
||||||
VectorOperations<double>::norm(fusedRotRateData.rotRateTotalSusMgm.value, 3) >
|
VectorOperations<double>::norm(fusedRotRateData.rotRateTotalSusMgm.value, 3) >
|
||||||
acsParameters.detumbleParameter.omegaDetumbleStart) {
|
acsParameters.detumbleParameter.omegaDetumbleStart) and
|
||||||
|
(attitudeEstimationData.satRotRateMekf.isValid() and
|
||||||
|
VectorOperations<double>::norm(attitudeEstimationData.satRotRateMekf.value, 3) >
|
||||||
|
acsParameters.detumbleParameter.omegaDetumbleStart)) {
|
||||||
detumbleCounter++;
|
detumbleCounter++;
|
||||||
} else if (detumbleCounter > 0) {
|
} else if (detumbleCounter > 0) {
|
||||||
detumbleCounter -= 1;
|
detumbleCounter -= 1;
|
||||||
@ -601,9 +604,12 @@ void AcsController::handleDetumbling() {
|
|||||||
detumbleState = DetumbleState::NO_DETUMBLE;
|
detumbleState = DetumbleState::NO_DETUMBLE;
|
||||||
break;
|
break;
|
||||||
case DetumbleState::IN_DETUMBLE:
|
case DetumbleState::IN_DETUMBLE:
|
||||||
if (fusedRotRateData.rotRateTotalSusMgm.isValid() and
|
if ((fusedRotRateData.rotRateTotalSusMgm.isValid() and
|
||||||
VectorOperations<double>::norm(fusedRotRateData.rotRateTotalSusMgm.value, 3) <
|
VectorOperations<double>::norm(fusedRotRateData.rotRateTotalSusMgm.value, 3) <
|
||||||
acsParameters.detumbleParameter.omegaDetumbleEnd) {
|
acsParameters.detumbleParameter.omegaDetumbleEnd) and
|
||||||
|
(attitudeEstimationData.satRotRateMekf.isValid() and
|
||||||
|
VectorOperations<double>::norm(attitudeEstimationData.satRotRateMekf.value, 3) <
|
||||||
|
acsParameters.detumbleParameter.omegaDetumbleEnd)) {
|
||||||
detumbleCounter++;
|
detumbleCounter++;
|
||||||
} else if (detumbleCounter > 0) {
|
} else if (detumbleCounter > 0) {
|
||||||
detumbleCounter -= 1;
|
detumbleCounter -= 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user