Class ThrustDirectionAndAttitudeProvider

  • All Implemented Interfaces:
    AttitudeProvider

    public class ThrustDirectionAndAttitudeProvider
    extends Object
    implements AttitudeProvider
    This class is used in to both manage the attitude of the satellite and the direction of thrust.

    It is used in ConfigurableLowThrustManeuver to set the spacecraft attitude according to the expected thrust direction.

    The direction can be variable or fixed, defined in the spaceraft frame, a Local Orbital Frame or a user frame.

    It is also possible to use an external attitude provider.

    Since:
    10.2
    Author:
    Mikael Fillastre, Andrea Fiorentino
    • Method Detail

      • buildFromFixedDirectionInSatelliteFrame

        public static ThrustDirectionAndAttitudeProvider buildFromFixedDirectionInSatelliteFrame​(Vector3D direction)
        Build a ThrustDirectionAndAttitudeProvider from a fixed direction in the satellite frame. The satellite attitude won't be managed by this object
        Parameters:
        direction - constant direction in the satellite frame
        Returns:
        a new instance
      • buildFromCustomAttitude

        public static ThrustDirectionAndAttitudeProvider buildFromCustomAttitude​(AttitudeProvider attitudeProvider,
                                                                                 Vector3D direction)
        Build a ThrustDirectionAndAttitudeProvider where the attitude is provided by an external. Object the direction of thrust will be constant
        Parameters:
        attitudeProvider - the object that provide the satellite attitude
        direction - thruster axis in satellite frame
        Returns:
        a new instance
      • buildFromDirectionInFrame

        public static ThrustDirectionAndAttitudeProvider buildFromDirectionInFrame​(Frame thrustDirectionFrame,
                                                                                   ThrustDirectionProvider variableDirectionInFrame,
                                                                                   Vector3D thrusterAxisInSatelliteFrame)
        Build a ThrustDirectionAndAttitudeProvider by a variable direction in a custom frame.
        Parameters:
        thrustDirectionFrame - reference frame for thrust direction
        variableDirectionInFrame - the object providing the thrust direction
        thrusterAxisInSatelliteFrame - thruster axis in satellite frame
        Returns:
        a new instance
      • buildFromDirectionInLOF

        public static ThrustDirectionAndAttitudeProvider buildFromDirectionInLOF​(LOF thrustDirectionLof,
                                                                                 ThrustDirectionProvider variableDirectionInFrame,
                                                                                 Vector3D thrusterAxisInSatelliteFrame)
        Build a ThrustDirectionAndAttitudeProvider by a variable direction in a Local Orbital Frame.
        Parameters:
        thrustDirectionLof - local orbital frame
        variableDirectionInFrame - the object providing the thrust direction
        thrusterAxisInSatelliteFrame - thruster axis in satellite frame
        Returns:
        a new instance
      • getThrusterAxisInSatelliteFrame

        public Vector3D getThrusterAxisInSatelliteFrame()
        Thruster axis in satellite frame.
        Returns:
        field
      • getAttitude

        public Attitude getAttitude​(PVCoordinatesProvider pvProv,
                                    AbsoluteDate date,
                                    Frame frame)
        Compute the attitude corresponding to an orbital state.
        Specified by:
        getAttitude in interface AttitudeProvider
        Parameters:
        pvProv - local position-velocity provider around current date
        date - current date
        frame - reference frame from which attitude is computed
        Returns:
        attitude on the specified date and position-velocity state
      • getAttitude

        public <T extends CalculusFieldElement<T>> FieldAttitude<T> getAttitude​(FieldPVCoordinatesProvider<T> pvProv,
                                                                                FieldAbsoluteDate<T> date,
                                                                                Frame frame)
        Compute the attitude corresponding to an orbital state.
        Specified by:
        getAttitude in interface AttitudeProvider
        Type Parameters:
        T - type of the field elements
        Parameters:
        pvProv - local position-velocity provider around current date
        date - current date
        frame - reference frame from which attitude is computed
        Returns:
        attitude on the specified date and position-velocity state
      • getAttitudeFromFrame

        protected Attitude getAttitudeFromFrame​(PVCoordinatesProvider pvProv,
                                                AbsoluteDate date,
                                                Frame frame)
        Compute the attitude for DIRECTION_IN_FRAME or DIRECTION_IN_LOF types.
        Parameters:
        pvProv - local position-velocity provider around current date
        date - current date
        frame - reference frame from which attitude is computed
        Returns:
        attitude attitude on the specified date and position-velocity state
      • getManeuverAttitudeProvider

        public AttitudeProvider getManeuverAttitudeProvider()
        Attitude provider to use.
        Returns:
        null in mode SATELLITE_ATTITUDE