I was looking into if the OD systems in Orekit can do heliocentric OD with earth-based measurements and if so how well that’s worked out.
The orbit determination (more precisely the measurements) have been designed with interplanetary needs into account. We did not get this kind of measurements to check if we succeeded or not, so if you can do it (and perhaps contribute real data), it would be great.
Very long distance measurements imply long signal time of flight. This has two main effects:
- the computation of time of flight must be done with a convergence check
(you may need up to 5 iterations to compute it accurately, for very far probes)
- the spacecraft state at signal transmission is very far from the spacecraft state
at signal reception
Both points are managed by Orekit. The first one is in
AbstractMeasurement.signalTimeOfFlight. The second one is in the
PreCompensation class, which picks up the state from the underlying propagator taking into account the time of flight computed from previous iterations (at first iteration, when no pre-compensation is available, the state is picked up at measurement time and shifted back to correct time). Beware that pre-compensation cannot be used with Kalman filtering because there are no iterations: each measurement is processed only once as it arrives.
That is great news! I’m beginning to do with with the B612 Foundation and one of the things I wanted to explore was using something like Orekit for that rather than OpenOrb. It will be very sparse asteroid data which of course makes for a more challenging OD problem but we should be able to create benchmarks against the JPL data. It also has to be a BLS rather than KF because of that too…
Hope you are feeling better as well.