![]() |
0.5.0
|
See
Base receiver , rover receiver
See
1 Pivot satellite per GNSS constellation needed. Double Difference only possible for measurements on same frequency, otherwise the hardware biases do not cancel out each other
See
Theoretically our state would consist of the following states, satellite 1 being our pivot satellite.
This will however lead to the system not being solvable in a unique way, as it is is rank-deficient (see [48] SpringerHandbookGNSS2017, ch. 26.3.1, p. 763).
To solve this, we set the ambiguity of the pivot satellite to 0 and remove it from the state. This means all other ambiguities will be relative to the pivot satellite ambiguity. This practically results in us doing double difference ambiguities in the state
The ambiguities can be initialized from the difference of the carrier-phase and pseudorange measurements
Neglecting the error terms this becomes
However the pseudorange error terms are quite big and can lead to significant errors
As the pseudorange is very noisy, it is better to use the estimated measurement (with ambiguity 0) when the position is known
Neglecting the error terms this becomes
When the pivot satellite changes, we have to take this into account. Lets assume we have 5 satellites and satellite 1 is the current pivot. Therefore the double difference ambiguity of satellite 1 is not in the state (as it would be 0 anyway)
Satellite 2 becomes the new pivot We can transform the state with a matrix with
After a transformation, the covariance matrix has also to be adapted by error propagation
See [46] Stucke2023
The linearized observation equation is valid for a common point in time. So for example the rover receiver time
However, the base observation is observed at a time . So we need to sync the observations according to [46] Stucke2023, ch. 3 in two steps.
The observations estimate their observations at times for the base and
for the rover. However they are not logged for the estimated times but instead for the internal clock at times
and
. According to [46] Stucke2023 the error lies in the order of milliseconds. To remove this error, the receiver clock errors
and
are estimated by a SPP. This allows evaluation of the observations at the correct instances of time
While this correction of the time makes sense, it proved to deteriorate the solution. So this first step is not applied.
We now correcting the pseudorange of the base to the time of the rover
. This can be done for the carrier-phase analogously.
Assuming the time-dependent error is approximately driven by the geometrical range, the correction equation for the basis receiver can be given as
The linearized observation equation is
For the double differenced pseudorange this is
Higher order terms are zero, so the exact solution is
The state transition matrix and the system/process noise covariance matrix can be calculated with the van Loan method [51] vanloan1978. In short
Because the ambiguity related parts of are 0 and
are purely diagonal matrices, the Van-Loan method must be only calculated for the 6x6 top left part of the matrices (position, velocity). The ambiguities can be directly computed in
as
.
See [18] Groves2013, p. 419ff
where the estimates are
with helper definition for the velocities similar to the Line-of-Sight vector
Differentiating yields
Because of the double differences, the measurements are correlated which causes the matrix to have non diagonal elements. According to the propagation of uncertainty one can write this as:
where
For the double difference measurements the estimates are
which leads to the following means variances, not standard deviations
As the matrix has a block for each observation type and the
matrix is diagonal, we can calculate each part separately and join them into the final
matrix like
See [47] rtklibexplorer2021, eq. E.6.24, p. 162
where:
See [18] Groves2013, p. 422f
See Dingler2022-NIS
where
NIS accepted if
where is the confidence interval
and can be calculated with the inverse cumulative distribution function (also called Quantile function) of the chi-squared distribution (Chi Squared Distribution - Boost 1.85.0 - quantile function)
Chi-squared distribution - Wikipedia (Incomplete Gamma Functions - Boost 1.85.0)
Lower incomplete gamma function - Wikipedia
Test only with
NIS only tells that something is wrong, not what. Need to look at post-fit residuals to find incorrect measurements.
Readjusting the float estimator with the ambiguity residual
After fixing the ambiguities we do a Kalman Filter update with the ambiguities
This is the difference between the current ambiguities in the state vector and the fixed ambiguities here
This extends the previously stated matrix
with being very small, e.g.