Class CelestialBodyPointed

java.lang.Object
org.orekit.attitudes.CelestialBodyPointed
All Implemented Interfaces:
AttitudeProvider, AttitudeRotationModel, EventDetectorsProvider, ParameterDriversProvider

public class CelestialBodyPointed extends Object implements AttitudeProvider
This class handles a celestial body pointed attitude provider.

The celestial body pointed law is defined by two main elements:

  • a celestial body towards which some satellite axis is exactly aimed
  • a phasing reference defining the rotation around the pointing axis

The celestial body implicitly defines two of the three degrees of freedom and the phasing reference defines the remaining degree of freedom. This definition can be represented as first aligning exactly the satellite pointing axis to the current direction of the celestial body, and then to find the rotation around this axis such that the satellite phasing axis is in the half-plane defined by a cut line on the pointing axis and containing the celestial phasing reference.

In order for this definition to work, the user must ensure that the phasing reference is never aligned with the pointing reference. Since the pointed body moves as the date changes, this should be ensured regardless of the date. A simple way to do this for Sun, Moon or any planet pointing is to choose a phasing reference far from the ecliptic plane. Using Vector3D.PLUS_K, the equatorial pole, is perfect in these cases.

Instances of this class are guaranteed to be immutable.

Author:
Luc Maisonobe
  • Constructor Details

    • CelestialBodyPointed

      public CelestialBodyPointed(Frame celestialFrame, ExtendedPositionProvider pointedBody, Vector3D phasingCel, Vector3D pointingSat, Vector3D phasingSat)
      Creates new instance.
      Parameters:
      celestialFrame - frame in which phasingCel is defined
      pointedBody - celestial body to point at
      phasingCel - phasing reference, in celestial frame
      pointingSat - satellite vector defining the pointing direction
      phasingSat - phasing reference, in satellite frame
  • Method Details

    • 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
    • getAttitudeRotation

      public Rotation getAttitudeRotation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
      Compute the attitude-related rotation corresponding to an orbital state.
      Specified by:
      getAttitudeRotation 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-related rotation 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
    • getAttitudeRotation

      public <T extends CalculusFieldElement<T>> FieldRotation<T> getAttitudeRotation(FieldPVCoordinatesProvider<T> pvProv, FieldAbsoluteDate<T> date, Frame frame)
      Compute the attitude-related rotation corresponding to an orbital state.
      Specified by:
      getAttitudeRotation 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:
      rotation on the specified date and position-velocity state