Usage of ConfigurableLowThrustManeuver with PositionAngleDetector

Hi @sbaudier

Welcome to the Orekit forum! :slight_smile:

Congratulations! I think you found a bug in Orekit.
The post you highlighted was related to a bug in ImpulseManeuver. You have the same problem but with ConfigurableLowThrustManeuver.

The fix to apply in Orekit is straightforward. In the init method of the EventBasedManeuverTriggers class, the following implementation

/** {@inheritDoc} */
@Override
public void init(final SpacecraftState initialState, final AbsoluteDate target) {

    if (!initialized) {

        initialized = true;
        forward     = target.isAfterOrEqualTo(initialState);
        if (!forward && !allowBackwardPropagation) {
            // backward propagation was forbidden
            throw new OrekitException(OrekitMessages.BACKWARD_PROPAGATION_NOT_ALLOWED);
        }

        checkInitialFiringState(initialState);

    } // multiples calls to init : because it is a force model and by each detector
}

must be improved by

/** {@inheritDoc} */
@Override
public void init(final SpacecraftState initialState, final AbsoluteDate target) {

    if (!initialized) {

        initialized = true;
        forward     = target.isAfterOrEqualTo(initialState);
        if (!forward && !allowBackwardPropagation) {
            // backward propagation was forbidden
            throw new OrekitException(OrekitMessages.BACKWARD_PROPAGATION_NOT_ALLOWED);
        }
        startFiringDetector.init(initialState, target);
        stopFiringDetector.init(initialState, target);

        checkInitialFiringState(initialState);

    } // multiples calls to init : because it is a force model and by each detector
}

In other words, the start and stop firing detectors must be initialized.
I reproduced your problem, applied the above fix locally and it works without regression in the Orekit’s tests.
Could you open an issue in our GitLab repository? After that, I will officially fix it and the fix will be available in the next Orekit version.

Best regards,
Bryan

1 Like