Satellite-to-Satellite access with FOV Constraints

I would like to model two (or more) satellites performing inter-satellite communication. With this, I would like to model FOV detectors on both satellites that point towards each other, as well as a line-of-sight Earth intersection constraint.

I’m having difficulties with defining the attitude model necessary to align a CircularFieldOfView object towards another satellite with the FieldOfViewDetector. Do I need to precompute the target satellite’s position and use a TabulatedProvider attitude model? Or is there a way I can propagate both simultaneously?

Also, how would I detect when the satellite-to-satellite path intersects the Earth?

Thanks in advance!

Hi @DrDSP,

Sorry for the delay.

I think it’s safer, especially since you want to set up event detectors.
I would precompute the target position and store it in an ephemeris as a BoundedPropagator object.

I think you can use a CelestialBodyPointed attitude provider where the “celestial body” (the PVCoordinatesProvider in the model) is your target ephemeris.

I would use an EclipseDetector for this one; where the occulted body is again the target satellite.

Hope this helps,

Thanks for your response!

Here’s how we went about implementing the event detector that depends on the position of two satellites - we included a PVProvider for the secondary satellite within a new event detector’s switching function:

public double g(final SpacecraftState s) {
        final PVCoordinates sPV = s.getPVCoordinates();
        final PVCoordinates bPV = otherSat.getPVCoordinates(s.getDate(), s.getFrame());
        [ compute function of interest ]
        return dualSatFunctionValue;

Any comments on this implementation?


Looks good to me @DrDSP.

By the way, there’s a detector I forgot to mention that does exactly what you want: IntersatViewDetector.

The Javadoc of the class explains why it’s recommended to use an analytical propagator for the secondary satellite and, at the end, you will see how to combine this detector with field-of-view detectors.

Ah! Very good! I see that’s in the development branch, which is why I probably overlooked it.

Great to know that the developers are on this and that this a feature that is coming!


No (my bad again), the link I gave you points to the development branch but it’s been in Orekit since v 9.3.
So it should be available if your version of Orekit is 9.3 or higher.

Oh - thanks for that update. I see that now too. Thanks for that info!