added inertial pointing
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
This commit is contained in:
@@ -43,7 +43,7 @@ void AcsController::performControlOperation() {
|
||||
performDetumble();
|
||||
break;
|
||||
|
||||
case SUBMODE_PTG_GS:
|
||||
case SUBMODE_PTG_TARGET:
|
||||
performPointingCtrl();
|
||||
break;
|
||||
|
||||
@@ -113,7 +113,8 @@ void AcsController::performSafe() {
|
||||
sunTargetDir, satRateSafe, magMomMtq, &magMomMtqValid);
|
||||
|
||||
}
|
||||
|
||||
double dipolCmdUnits[3] = {0, 0, 0};
|
||||
actuatorCmd.cmdDipolMtq(magMomMtq, dipolCmdUnits);
|
||||
}
|
||||
|
||||
void AcsController::performDetumble() {
|
||||
@@ -154,7 +155,8 @@ void AcsController::performPointingCtrl() {
|
||||
ACS::SensorValues sensorValues;
|
||||
ACS::OutputValues outputValues;
|
||||
|
||||
timeval now; // Übergabe ?
|
||||
timeval now;
|
||||
Clock::getClock_timeval(&now);
|
||||
|
||||
sensorProcessing.process(now, &sensorValues, &outputValues, &acsParameters);
|
||||
ReturnValue_t validMekf;
|
||||
@@ -162,14 +164,17 @@ void AcsController::performPointingCtrl() {
|
||||
double targetQuat[4] = {0, 0, 0, 0}, refSatRate[3] = {0, 0, 0};
|
||||
|
||||
switch (submode) {
|
||||
case SUBMODE_PTG_GS:
|
||||
case SUBMODE_PTG_TARGET:
|
||||
guidance.targetQuatPtg(&sensorValues, &outputValues, now, targetQuat, refSatRate);
|
||||
break;
|
||||
case SUBMODE_PTG_SUN:
|
||||
guidance.sunQuatPtg(&sensorValues, &outputValues, targetQuat, refSatRate);
|
||||
break;
|
||||
case SUBMODE_PTG_NADIR:
|
||||
guidance.targetQuatNadirPtg(&sensorValues, &outputValues, now, targetQuat, refSatRate);
|
||||
guidance.quatNadirPtg(&sensorValues, &outputValues, now, targetQuat, refSatRate);
|
||||
break;
|
||||
case SUBMODE_PTG_INERTIAL:
|
||||
guidance.inertialQuatPtg(targetQuat, refSatRate);
|
||||
break;
|
||||
}
|
||||
double quatError[3] = {0, 0, 0}, deltaRate[3] = {0, 0, 0};
|
||||
@@ -188,8 +193,8 @@ void AcsController::performPointingCtrl() {
|
||||
|
||||
if (acsParameters.pointingModeControllerParameters.enableAntiStiction) {
|
||||
bool rwAvailable[4] = {true, true, true, true}; // WHICH INPUT SENSOR SET?
|
||||
double rwSpeed[4] = {&(sensorValues.rw1Set.currSpeed.value), &(sensorValues.rw2Set.currSpeed.value),
|
||||
&(sensorValues.rw3Set.currSpeed.value), &(sensorValues.rw4Set.currSpeed.value)};
|
||||
int32_t rwSpeed[4] = {(sensorValues.rw1Set.currSpeed.value), (sensorValues.rw2Set.currSpeed.value),
|
||||
(sensorValues.rw3Set.currSpeed.value), (sensorValues.rw4Set.currSpeed.value)};
|
||||
ptgCtrl.rwAntistiction(rwAvailable, rwSpeed, torqueRwsScaled);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user