Patent Description:
The present invention relates to the field of Global Navigation Satellite Systems (GNSS). More particularly, the present invention relates to methods and apparatus for processing GNSS data for enhanced Real-Time Kinematic (RTK) positioning.

Global Navigation Satellite Systems (GNSS) include the Global Positioning System, the GLONASS system, the proposed Galilco system and the proposed Compass system.

In traditional RTK (Real-Time Kinematic) GNSS positioning, the rover receiver (rover) collects real-time GNSS signal data and receives correction data from a base station, or a network of reference stations. The base station and reference stations receive GNSS signals at the same instant as the rover. Because the correction data arrives at the rover with a finite delay (latency) due to processing and communication, the rover needs to store (buffer) its locally-collected data and time-matches it with the received correction data to form single-difference observations using common satellites. The rover then uses the single-difference GNSS observations to compute a synchronous position for each epoch using the time-matched data. The single-difference process greatly reduces the impact of satellite clock errors. When the reference receiver and rover receiver are closely spaced, satellite orbit errors and atmospheric errors are also reduced by the single-differencing process. Synchronous position solutions yield maximum accuracy.

The need to wait for the correction data means that the synchronous position solution is latent. The solution latency includes:.

A prior-art delta phase method used in kinematic survey is aimed at producing low-latency estimates of the rover position without waiting for the matching (synchronous) correction data to be received (see<CIT>). When synchronous correction data are available for a given epoch, the rover uses them to compute a synchronous position for that epoch. When synchronous correction data are not available for a current epoch, the rover estimates its delta position (the rover position difference) from the last synchronous epoch until the current epoch and adds this delta position to the last synchronous position to obtain a current low-latency position estimate while awaiting correction data for a further synchronous epoch. The cost of this low-latency scheme is an additional error of about <NUM>-<NUM> per second of time difference between rover and correction data. The additional error is due mainly to instability of the GNSS satellite clocks.

<FIG> schematically illustrates a scenario using a GNSS rover with correction data for point surveying. A user <NUM> has a rover receiver (rover) <NUM> which is mounted on a range pole <NUM> or in some cases is a hand-held, or machine-mounted unit without a range pole. Rover <NUM> includes a GNSS antenna <NUM> and a communications antenna <NUM>. Rover <NUM> receives at its GNSS antenna <NUM> the signals from GNSS satellites <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, etc. Rover <NUM> also receives at its communications antenna <NUM> correction data from a corrections source <NUM> via a communications link <NUM>. The communications link is, for example, a radio link or mobile telephone link, or any other suitable means of conveying the correction data to the rover <NUM>. The correction data can be of any suitable type for improving the positioning accuracy of rover <NUM>, such as: differential base station data from a base station serving as corrections source <NUM>, or virtual reference station data from a network of reference stations serving as corrections source <NUM> (WAAS is one example), or precise orbits and clocks data from a Precise Point Positioning (PPP) service such as that described in <CIT> (TNL A-2585P) and in <CIT> (TNL A-2585PCT). In the example of <FIG> , the phase center of GNSS antenna <NUM> is determined and reduced for the height and orientation of the range pole <NUM> to the survey point <NUM>.

<FIG> is a block diagram of a typical integrated receiver system <NUM> with GNSS antenna <NUM> and communications antenna <NUM>. Receiver system <NUM> can serve as rover <NUM> or as a base station or reference station. Receiver system <NUM> includes a GNSS receiver <NUM>, a computer system <NUM> and one or more communications links <NUM>. Computer system <NUM> includes one or more processors <NUM>, one or more data storage elements <NUM>, program code <NUM> for controlling the processor(s) <NUM>, and user input/output devices <NUM> which may include one or more output devices <NUM> such as a display or speaker or printer and one or more devices <NUM> for receiving user input such as a keyboard or touch pad or mouse or microphone.

The program code <NUM> is adapted to perform novel functions in accordance with embodiments of the invention as described below. The integrated receiver system <NUM> can otherwise be of a conventional type suited for mounting on a range pole or for hand-held operation; some examples include the Trimble R8 GNSS, Trimble R7 GNSS, Trimble R6 GPS and Trimble <NUM> surveying systems and the Trimble GPS Pathfinder Pro XRS system.

<FIG> illustrates the error in the height component of synchronous RTK position estimates: <NUM>, <NUM>, <NUM>, <NUM>,. <NUM>, for epoch times <NUM>, <NUM>, <NUM>, <NUM>,. <NUM> seconds respectively. The RTK position fixes: <NUM>, <NUM>, <NUM>, & <NUM> are considered fixed i.e. have carrier phase ambiguities that are essentially resolved to integer values. The RTK position fixes at: <NUM>, <NUM>, <NUM>, and <NUM>, are considered float solutions, i.e., the carrier phase ambiguities cannot be resolved to integer values. Note that at time <NUM>, there is no RTK position solution. The precision (uncertainty) of each RTK position fix is represented by a vertical error bar. The fixed heights have better precision (less uncertainty) than the float heights.

Autonomous (point position) solutions are produced by the rover GNSS receiver at say a <NUM> rate. For clarity, just the <NUM> autonomous height estimates are shown in <FIG>,
while the intervening autonomous heights are illustrated with a dashed line. The autonomous <NUM> height estimates are: <NUM>, <NUM>, <NUM>, <NUM>,. <NUM>, corresponding to epoch times: <NUM>, <NUM>, <NUM>, <NUM>,. <NUM> respectively. Autonomous position estimates generally have a precision of several decimeters up to several meters.

<FIG> illustrates the timing of various events relevant to delta phase processing. Time axis <NUM> represents actual time, with values shown from <NUM> through to <NUM>. The rover GNSS receiver measurements are sampled and made available for processing a short time after the actual time. Hence, the rover measurements for epoch <NUM> are available at event <NUM>; the rover measurements for epoch <NUM> are available at event <NUM>; and so on, as shown on axis <NUM>.

Axis <NUM> corresponds to the time that correction data is received at the rover. The correction data must first be sampled by a real reference station, or a network of reference stations, before being sent and received by the rover, therefore there is an inherent latency in the received correction data. Event <NUM> corresponds to the receipt of correction data for epoch <NUM>; event <NUM> corresponds to the receipt of correction data for epoch <NUM>. Once the correction data is received it can be time-synchronized with rover data. Single-difference observations can be then be formed and a synchronous position solution computed.

The rigorous satellite orbit and clock data is normally derived from a network of spatially distributed reference stations (e.g. a regional, or global network). The network GNSS observations must first be concentrated at a central facility, then processed and finally formatted and distributed to one or more rovers. Hence the rigorous satellite orbit and clock data is often old by the time it reaches the rover(s). Event <NUM>, shown on axis <NUM>, corresponds to rigorous satellite and clock data for time <NUM>. Once the rigorous satellite orbit and clock data is available at the rover, it can be used to update the time sequence of rover position differences.

<CIT> relates to position determination with reference data outage. The document describes position determination at a rover station on the basis of positioning signals from a plurality of positioning satellites. A position of the rover station is determined on the basis of the positioning signal and reference data received via a separate connection from a reference station. Upon detecting an outage of reference data, error data including satellite clock drifts is obtained and applied in the position determination process to eliminate positioning errors introduced by satellite clock drifts that cannot be compensated on the basis of the reference data due to the outage.

In prior-art delta phase processing schemes, the autonomous position of the rover is used as the linearization point for the delta position computations. Typically the autonomous position of the rover is in error by several decimeters, up to several meters. Large errors in the linearization point leads to a proportional error in the output delta position estimates. The linearization errors accumulate with propagation time, therefore large correction data latency causes increased error growth in the delta position estimates.

Methods and apparatus for processing of GNSS signal data are presented in independent claims <NUM> and <NUM>, respectively.

Detailed description of embodiments in accordance with the invention are provide below with reference to the drawing figures, in which:.

Delta phase is defined here as being the difference in carrier phase observed to a GNSS satellite over a specific time interval. GNSS carrier phase measurements observed by a receiver to a GNSS satellite have millimeter precision, however the measurements are affected by a number of biases. If carrier phase tracking is maintained, the delta phase measurements give a precise measure of the change in range (distance) between user and satellite over time. <FIG>
illustrates an orbiting GNSS satellite at locations S(<NUM>), and S(<NUM>), denoted <NUM> and <NUM>, at times t(<NUM>) and t(<NUM>) respectively. The user is located at positions U(<NUM>) and U(<NUM>), denoted <NUM> and <NUM>, at times t(<NUM>) and t(<NUM>) respectively. The ranges from user to satellite at the two epochs are R(<NUM>) and R(<NUM>) respectively. In this example, the observed phase measurements φ(<NUM>) and φ(<NUM>) (given in meters) are free from errors and therefore are equal to the true ranges R(<NUM>) and R(<NUM>) respectively.

The delta phase measurement (in units of meters), for epoch <NUM> to <NUM>, is defined as: <MAT>.

The delta phase measurement for the error-free example is equal to the (true) delta range measurement (i.e. δφ(<NUM>,<NUM>) = δR(<NUM>,<NUM>)): <MAT>.

The range (at epoch k) is related to the user and satellite coordinates via the following: <MAT>.

The satellite coordinates S(k) = [ X(k), Y(k), Z(k) ] are known from a broadcast or rigorous satellite ephemeris. The user coordinates U(k) = [ x(k), y(k), z(k) ] are the only unknown quantities in (<NUM>). If delta phase is observed to at least <NUM> satellites, the corresponding change in user location can be derived for the same time interval. In practice, a forth satellite must be observed in order to estimate the change in receiver clock over the delta phase time interval.

The single receiver phase observation equation forms the basis of the delta phase observation equation and therefore is presented first. The following single receiver phase observation equation applies to a single receiver observation to a single satellite: <MAT> where:.

Note that for the purposes of brevity, the satellite index is omitted in Equation (<NUM>).

The delta phase observation equation is formed by differencing (<NUM>) with respect to time: <MAT>.

Note that the carrier phase ambiguity term is absent from the delta phase observation equation, this is because under continuous phase tracking, N(k) = N(<NUM>) and therefore this term cancels out. The remaining components on the right-hand side (RHS) of Equation (<NUM>) are simply time-differenced equivalents of those terms in Equation (<NUM>).

The user location parameters of interest are contained within the range difference term δR(k,l): <MAT>.

Assuming that the location of the user [ x(k), y(k), z(k) ] is known at epoch k, and remembering that the satellite coordinates [ X(k), Y(k), Z(k); X(l), Y(l), Z(l) ] are known at t(k) and t(<NUM>), the only unknowns in (<NUM>) are the user coordinates [ x(l), y(l), z(l) ] at epoch <NUM>, and the receiver clock drift between epochs k and <NUM>, i.e.: <MAT>.

A Taylors series expansion can be used to linearly relate the unknowns to the observations: <MAT> where:.

Delta phase observations for each of s satellites tracked continuously over times t(k) to t(l) can be written in linearised vector form as follows: <MAT> or in expanded matrix form as: <MAT> where:.

The covariance matrix of the delta phase observations is required in the estimation process: <MAT> where:.

<MAT>  variance of the delta phase observation to satellite i.

Note that the delta phase observations to each satellite are considered as being uncorrelated, hence the diagonal nature of Qδφ(k,l).

Estimation of Rover Position Difference using Delta Phase.

Well known least squares or Kalman filter estimation techniques can be used to compute rover position difference (delta position) estimates. For least squares estimation, the solution for the unknown parameters is given by: <MAT> where:.

x̂(k,l)  (4x1) vector containing the most probable values for the corrections to the approximate parameters;
<MAT>  (sxs) observation weight matrix, equal to the inverse measurement covariance matrix;
G(k,l)  (4xs) gain matrix which relates a change in a measurement to a change in the estimated parameters.

Rover position differences only provide an estimate of the relative trajectory of the rover over time. An anchor position (absolute position) is needed to convert the relative changes in position into more useful absolute rover positions. The anchor position normally takes the form of a synchronous position, derived from processing single-difference rover and correction data in a filtering scheme that estimates rover position, phase ambiguities and other nuisance parameters. However it is possible to make use of DGPS, conventional survey methods, inertial navigation systems, etc., to produce a suitable anchor position. The inherent accuracy of the reported rover position is only as good as the underlying anchor position.

<FIG> describes the processing steps required to form a rover position difference between two epochs. Table <NUM> illustrates a time sequence of rover position differences buffered for high rate (say <NUM>) delta phase processing. Table <NUM> illustrates a time sequence of rover position differences buffered for low rate (<NUM>) delta phase processing. Note that the time sequences are normally implemented as circular buffers, indexed with time.

The processing steps are described in detail as follows:.

<FIG> illustrates a rover receiver at two consecutive epochs <NUM> and <NUM> respectively, tracking a single satellite. The satellite moves along orbit <NUM> and is located at <NUM>, denoted S(<NUM>), at epoch <NUM>, and <NUM>, denoted S(<NUM>), at epoch <NUM>. A stationary reference receiver <NUM>, denoted B, tracks the same satellite as the rover. The location of the reference receiver is given in Cartesian coordinates as (xB,yB,zB). Carrier phase measurements observed at the rover are given by φU(<NUM>) and φU(<NUM>), for epochs <NUM> and <NUM> respectively. The corresponding user-satellite ranges are given by RU(<NUM>) and RU(<NUM>) respectively. Carrier phase measurements observed at the reference are given by φB(<NUM>) and φB(<NUM>) for epochs <NUM> and <NUM> respectively; with corresponding user-satellite ranges: RB(<NUM>) and RB(<NUM>) respectively. It should be noted that in <FIG> , a physical reference receiver is shown and is used for single-difference formation. However, in the following single-difference delta phase developments, without loss of generality, the reference can be either physical, or virtual. For virtual reference station processing, a synthetic reference correction data stream is produced which mimics that of a physical reference.

Single-difference observations are formed by subtracting time-synchronized reference/rover measurements taken to a common satellite: <MAT> where:.

The single-difference delta phase observation equation follows from (<NUM>): <MAT>.

The advantages of using single-difference observations over undifferenced (single receiver) observations include:.

The disadvantage of real-time single-difference data processing is that the results are only available after the correction data is received at the rover. Often the correction data is delayed by a few seconds to a few tens of seconds (in the case of satellite correction delivery). Hence single-difference delta phase processing is useful for applications that require accuracy without the need for near instantaneous results.

When processing position differences using single-difference delta phase, the receiver clock drift parameter estimated is in fact the drift of the difference between rover and reference/correction clocks. In principle this does not imply any changes in the set-up of the computation of the position differences.

In practice, however, there is a trade-off between single-differenced and single-receiver delta phase. The reference/correction data might not have all satellites available that are tracked at the rover. Also, they might occasionally have cycle slips at satellites or signals where there are no cycle slips at the rover.

So, while in principle single-difference delta phase provides more accurate position difference estimates, there might be situations where the single-receiver delta-phase delivers better accuracy. To get the optimum performance, it is possible to use both single-differenced observables where they are available at rover and reference/correction data and single-receiver observables where they are only available at the rover.

One implication of this approach is that the estimation has now to account for two receiver clock drifts: the difference between rover and reference/correction data clock drifts for the single-difference observables and the single rover receiver clock drift for the not single-differenced observables.

One possible solution is to make sure that the reference/correction data clock drift is negligibly small compared to the rover clock drift. This could be implemented by using good atomic clocks with drift modeling at the reference/correction data collection. As this is normally not available in typical applications, the standard solution is to add a second clock-drift unknown (parameter) to the estimation process.

With equation (<NUM>) this would result in a linearized observation equation: <MAT>.

Where Δδτ(k,l) is the single receiver clock drift and δΔδτ(k,l) is the difference between rover and reference/correction data clock drift, the first two observations relate to single-receiver differenced data and the last observation relates to single-differenced data.

As a consequence, one more satellite is needed to be able to estimate all unknowns - which are one more in this case. So while in the pure single-differenced and in the pure single-receiver case four satellites are required for a solution, the minimum required is five satellites in the mixed case. This also implies that for both flavors at least two satellites are required in order to contribute to position estimation.

Another consideration is using the proper weights for each observation type. For the single-receiver observation a different a priori error model has to be used including the unmodelled errors (e.g. satellite clock drift) than for the single-differenced observables. The weight matrix modified from (<NUM>) is thus: <MAT> where <MAT> is the proper variance for a single-receiver observation as for the first two observations and <MAT> is the proper variance for a single-differenced observation as shown in (<NUM>).

The latest GPS satellites broadcast coherent carriers on L1, L2 and L5 frequency bands. GLONASS satellites broadcast on two bands near GPS L1 and L2. All planned GNSS signal structures include at least two bands per satellite. Multi-frequency carrier phase measurements are often combined into various linear combinations with particular properties. For example, the wide-lane GPS L1/L2 phase combination has an effective wavelength of <NUM> making it useful for ambiguity resolution purposes. The iono-free phase combination is particularly useful for (essentially) removing the effect of ionospheric bias.

The ionosphere presents a significant source of error in delta phase processing therefore the iono-free phase combination is particularly useful for delta phase positioning.

For real-time kinematic applications, the position calculations are normally performed at the rover receiver. The rover data is available within a fraction of a second after being sampled by the receiver. On the other hand, the correction data must be sampled, formatted, transmitted, received and decoded before it can be used for processing at the rover. The latency of the correction data is typically <NUM>-<NUM>, depending on the type of data link used. There are many high-precision applications where the location of the rover is required with very small latency. For example machine control where a cutting implement is driven to a design surface in real-time.

Low latency RTK positioning can be achieved by combining single-receiver (rover) delta phase measurement processing with latent synchronous (base-rover) position solutions.

<FIG> presents a block diagram illustrating the various components of a GNSS data processing scheme. The rover GNSS data, <NUM>, is prepared at <NUM>. The GNSS correction data <NUM> is prepared at step <NUM>. The prepared rover and correction data are time matched and used to form single-difference GNSS observations <NUM>, using the Single Difference Builder <NUM>. The prepared rover data (<NUM>) is applied to the single-receiver delta phase processor <NUM>, to produce a time sequence of rover position differences <NUM>. The single-difference GNSS data <NUM> is used by the synchronous processor <NUM> in an estimation scheme (e.g., least squares estimator or Kalman filter) to estimate the rover position as well as carrier phase ambiguity and other nuisance parameters. The output of the synchronous processor <NUM> is synchronous positions <NUM>. The single-difference GNSS data <NUM>, is also used in the single-difference delta phase processor <NUM>, to produce a time sequence of rover receiver (single-difference) position differences (<NUM>). The rover position difference time sequence (<NUM>), synchronous positions (<NUM>) and single-difference rover position difference time sequence <NUM>, are optionally combined in Blender <NUM> to produce the reported position <NUM>.

Table <NUM> provides an illustration of the process used to construct reported position based on synchronous position and rover position difference estimates. In this example the correction data latency is <NUM> and the data update rate is <NUM>.

Note that the first delta phase epoch occurs at <NUM>, when the two consecutive data epochs are available. Only rover position differences are available up until the first synchronized position fix is produced at epoch <NUM>. Once synchronized position fixes are available, the reported position is constructed from the accumulation of rover position differences and the last synchronous fix. One Hz delta positions are used to propagate the synchronous positions across multiple seconds.

Note that every time a new synchronous position fix is available, it is used in the construction of the reported position. Hence any jump in the synchronous position fix will also be reflected in a jump in the reported position.

Note also that the synchronous position fix for epoch time <NUM> is missing, in practice this condition can occur if there is a temporary loss of a correction data packet in the datalink. In this case, the delta position propagation is simply extended from the last valid synchronous fix [U(<NUM>)].

In this example the synchronous positions have a latency of exactly <NUM>.

Rather than buffering rover position difference estimates, an alternative approach would be to buffer carrier phase data at each epoch and then form delta phase measurements between the last synchronous epoch and the current time. The disadvantage of storing raw carrier phase observations is that significantly more data would need to be buffered compared with just rover position differences. Furthermore, if satellite tracking changes from one epoch to another epoch, it is possible that the number of common satellites between the first and last delta phase epochs may be less than <NUM>, even though <NUM> or more satellites were tracked throughout.

The formal precision of the delta phase position solution can be derived directly from the least squares or Kalman filter process. The solution for the unknowns is given by: <MAT>.

The formal precision of the unknowns is given by the inverse normal matrix: <MAT> The a-priori measurement variances contained in <MAT> must be reasonable in order for the output formal precisions of the unknowns to be correct. It is therefore important that the a-priori measurement variances consider all of the error sources affecting delta phase processing (see
for single-receiver and single-difference error sources).

The formal precision of the delta position estimates provided in (<NUM>) are for one delta-phase epoch time span i.e. epoch k to epoch <NUM>. Considering all of the error sources affecting delta phase measurements, the following expression provides the delta phase measurement variance for the epoch span k to l, for a single satellite: <MAT> where:.

<MAT>  uncorrelated phase measurement variance for epoch k;
<MAT>  uncorrelated phase measurement variance for epoch l;
<MAT>  satellite clock variance for the epoch span k to l;
<MAT>  satellite orbit variance for the epoch span k to l;
<MAT>  variance of receiver clock drift for the epoch span k to l;
<MAT>  variance of unmodelled tropospheric bias for the epoch span k to l;
<MAT>  variance of unmodelled ionospheric bias for the epoch span k to l;
<MAT>  variance of multipath bias for the epoch span k to l.

Note that in general the variance for each delta phase measurement will be different for each satellite tracked at the same epoch. Also the delta phase measurement variances will vary for each satellite over time. Satellites that are low on the local horizon tend to be more affected by atmospheric errors and multipath, therefore satellites low on the horizon are assigned larger tropospheric, ionospheric and multipath variances. Furthermore, the signal strength is worse near the horizon and therefore the uncorrelated measurement noise is worse.

Satellites with rigorous orbit and clock information can be processed with those satellites tracked at the same epoch that only have broadcast information. It is important to supply the appropriate a-priori measurement variances when mixing satellite observations derived from rigorous and broadcast sources.

The low-latency reported position is given as the sum of a number of delta position epochs, combined with the last synchronous position (see the example in Table <NUM>, extracted from Table <NUM>).

The measurement variance for the delta phase epoch <NUM> to <NUM> is given by: <MAT>.

If the individual <NUM> delta phase measurement variances for <NUM>-<NUM> are accumulated, then there will be an over-estimation of the measurement variance, and an over-estimation of the derived rover position difference uncertainty: <MAT>.

The over-estimation of the measurement variance in (<NUM>) is due to the inclusion of the uncorrelated noise term <MAT> twice on the right-hand side (RHS) of Equation (<NUM>). The uncorrelated noise terms are generally small compared with multipath errors and therefore one approach is to ignore the over-estimation problem and allow the reported position variances to be too pessimistic (too conservative).

In a new and more rigorous approach the measurement variance components are first divided as follows: <MAT> where: <MAT> sum of time-wise variances for the epoch span k to l, where: <MAT>.

At each delta phase measurement epoch, the following two position uncertainties are computed: <MAT> <MAT>.

Equation (<NUM>) is the standard formula for computing the delta phase position uncertainty. Whereas, just the time-wise errors are considered in the delta position uncertainty calculation in (<NUM>). Both Qx̂(k,l) and Qx̂Σ(k,l) are computed and stored for each delta phase time span.

The delta position uncertainty accumulation process is best explained by way of an example. Considering the delta position computations in Table <NUM>: <MAT> the uncertainty in the reported position is given by the sum of:.

The approach for accumulating the formal precision of report positions assumes that the time-wise errors are linear over time. Experience has shown that this assumption holds so long as the accumulation time is relatively short (i.e. less than <NUM> minutes - see<NPL>).

Instabilities in the GNSS satellite clocks directly impact on the error growth of single-receiver delta phase based positioning. The satellite clock drift error amounts to around <NUM>-<NUM>/s for single-receiver position difference estimates (see Table <NUM>). The satellite clock error therefore inhibits the length of time that delta positions can be propagated forward while maintaining cm-level accuracy. For example, a <NUM> propagation time would lead to say a <NUM>-<NUM> error in the single-receiver position estimates.

Similarly inaccuracy in the broadcast GPS/GLONASS satellite ephemerides leads to roughly a linear growth of several mm/s in the single-receiver delta position estimates. The broadcast GPS orbit and clock information is updated every hour. Short-term (<NUM>-<NUM>) satellite clock effects are therefore not represented in the broadcast GPS Navigation Messages.

The error growth of single-receiver delta phase positioning can be bounded with the aid of rigorous satellite orbit and clock information. MEO satellite trajectories are generally smooth, however fluctuations in solar radiation pressure and eclipsing events can cause fluctuations in the satellite orbit with respect to the broadcast antenna location. Satellite clock information needs to be updated every few seconds to ensure that error growth in single-receiver delta position do not exceed a few millimeters.

The International GNSS Service (IGS) generates rigorous network predicted orbits based on GNSS data from globally distributed tracking stations. The IGS refers to their rigorous-network predicted orbits as Predicted Precise Orbits. Their Predicted Precise Orbits are made available for download via the Internet (see<NPL>).

The IGS Predicted Precise orbits are updated <NUM> times per day and have a quoted accuracy of <NUM>. Independent testing has shown that occasionally several meters of error may occur in the IGS orbit products.

<CIT> (TNL A-2585P) and <CIT>, <CIT> (TNL A-2585PCT) include a detailed explanation of an apparatus/method for estimating rigorous orbits and clocks based on a Global satellite tracking network. Parts <NUM> and <NUM> thereof document the estimation of rigorous orbits and clocks respectively.

International Patent Application <CIT>, <CIT> (TNL A-2633PCT) describes how global and regional GNSS tracking stations are used together with network processing software for estimating rigorous orbit and clock corrections. The system delivers GNSS satellite orbits with a precision of around <NUM>, and an update rate of <NUM>. Rigorous clock information is generated and is provided to rover receivers at a rate of <NUM>. The combination of rigorous orbit and clock information means that the error growth for single-receiver delta phase positioning is bounded.

Most GNSS satellite clocks have very stable behavior, however certain events have been observed on several GPS satellites between <NUM>-<NUM>. Those events show a satellite clock noise which is about one magnitude larger than usual. To avoid using clock predictions during such an event, clock predictability numbers are computed and sent to the rover.

A two-state filter can be used to model the satellite clock behavior, where the state time update model is defined by: <MAT> where:.

The observation model is given by: <MAT> where:.

where the expected value of the residual product is given by: <MAT> where.

A Kalman filtering scheme can be applied to the models defined by Equations (<NUM>), (<NUM>) and (<NUM>), with one filter per satellite.

A prediction of the satellite clock error is made based on the filtered satellite clock error and satellite clock drift according to: <MAT> where the accent ~ indicates a predicted quantity, and accent ^ represents a filtered quantity. When processing single-receiver delta phase, the predicted clock error T̃s(k) for each satellite is used in the right-hand side (RHS) of (<NUM>) to correct the delta phase measurements.

A clock predictability number can be generated for each satellite by studying the magnitude of prediction errors due to various prediction lengths up to a predefined interval of say two minutes. The largest difference between the predicted clock correction and estimated one provides the predictability number: <MAT> where:.

j  epoch (time) difference with respect to the epoch k;
n  maximum epoch (time) difference to consider in the predictability number estimate (interval size);
<MAT>  predictability number at epoch k (seconds) for satellite s, with an interval size of n seconds.

The predictability numbers <MAT> for good satellites are typically below <NUM>, for a regular satellite it is between <NUM> and <NUM>, for a bad satellite it's between <NUM> and <NUM>. If the number is above <NUM> the satellite should not be used for predictions. Most of the GPS and nearly all GLONASS satellites have numbers below <NUM>.

Satellite clock quality indicators can be produced either by the network software or by the rover(s). The clock quality indicators are used in the apriori noise model of the rover receiver delta phase processor. Satellites with highly predictable clocks are therefore given more weight (smaller variance <MAT>) than satellites with poor predictability. Furthermore, satellites that have only orbit / clock correction parameters from the broadcast navigation data are given less weight (larger variance) than those satellites with rigorous orbit / clock corrections.

Apart from the small random measurement errors, there are a number of systematic errors that affect delta phase observations. Table <NUM> provides a summary of the systematic errors affecting delta phase observations.

Table <NUM> provides a summary of the magnitude of errors affecting single-receiver and single-difference delta phase observations. In the case of single-receiver delta phase positioning, all satellite and atmospheric errors directly impact on rover position difference estimates. With single-difference delta phase processing the closer the separation of base and rover the less the impact of orbit and atmospheric errors on the estimated rover position difference.

Table <NUM> summarizes the errors affecting single-receiver delta phase processing based on rigorous orbit / clock correction data. Note that the satellite clock drift and orbit errors only accumulate until the next satellite clock/orbit correction message is received. Also note that the ionospheric bias is normally zero since iono-free delta phase processing is used. The remaining errors are due to unmodelled tropospheric bias and carrier phase multipath, both of which change relatively slowly over time.

The computation of rover position difference from delta phase measurements involves the use of approximate rover coordinates at the first and current epochs as described above in steps <NUM>-<NUM> of Rover Position Difference Processing Steps. The smaller (larger) the error in the approximate rover coordinates, the smaller (larger) the error in the computed position deltas.

In <FIG> the true rover positions at the first and second epoch are <NUM> and <NUM>, denoted U(<NUM>) and U(<NUM>) respectively. The corresponding true ranges for the first and second epoch are R(<NUM>) and R(<NUM>) respectively. In practice the true user position is not known, but rather approximate user positions arc obtained from, c. , autonomous or differential GNSS solutions. The approximate user positions at the first and second epoch are <NUM> and <NUM>, denoted: U'(l) [x'(l),y'(l),z'(l)] and U'(<NUM>) [x'(<NUM>),y'(<NUM>),z'(<NUM>)] respectively. The ranges computed from the biased user positions are denoted R'(<NUM>) and R'(<NUM>) respectively. Errors in the computed ranges lead to errors in the rover position difference estimates. In effect a strain is produced in the computed range, which tends to increase over time as satellites move.

A test has shown that <NUM> of error in the initial position can produce a height variation of +/-<NUM> over a <NUM> delta phase propagation time. It is important to be able to minimize the impact of errors in the approximate user position used in delta phase processing.

A simple solution would be to re-compute the rover position differences as soon as the precise RTK-based initial position solution is available. This however implies that all the rover data has to be stored in the receiver and that at the time when the RTK-based initial position becomes available, multiple rover epochs have to be processed, introducing a momentary increase in CPU load.

The proposed method involves computing the rover position differences as soon as the rover data becomes available. The derived rover position differences are subsequently corrected for a change in the initial position as soon as a precise anchor position is made available.

Let U'(k) be the assumed user position at the first epoch k, with the true user position at epoch k, U(k). Let the error in the user position at epoch k, be given by: <MAT> The error in delta position caused by the error in the user location at epoch k is given by: <MAT> where:.

A(k)  measurement partials at epoch k;
A(l)  measurement partials at epoch <NUM>;
<MAT>  weight matrix for the delta phase measurements for epoch span k to <NUM>;
ε(k)  error in the user position at epoch k;
γ(k,l)  error in the delta position over epoch k to l.

Recall that <MAT> in (<NUM>) is called the measurement gain matrix [ G(k,l) ] and is available in the original estimation process [see (<NUM>)]. The second term [A(k) - A(l)]reflects the geometry change between both epochs mainly caused by motion of the satellites and has to be computed in parallel to the initial delta-position estimation using the approximate initial position. For each delta-position estimate, the approximate previous epoch position U'(k) and the <NUM>×<NUM> matrix <MAT> are kept for later correction when a better estimate for U(k) becomes available.

<FIG> contains a flowchart which summarizes the procedure used to adjust delta position estimates for errors in initial coordinates. The following example illustrates the position adjustment process:
At <NUM>, a synchronous position becomes available for epoch <NUM> (i.e. we have Ǔ(<NUM>) ). The synchronous (anchor) position is known to be accurate to say a few centimeters in a global sense.

The time sequence (rover delta position difference) buffer is scanned in steps <NUM> and <NUM> until a matching interval is found with starting time <NUM> and end time <NUM>.

The approximate (initial) position used in the rover position difference calculation is U'(<NUM>), computed in step <NUM>, hence the error in the approximate position is therefore: <MAT> which is computed at <NUM>.

By making use of (<NUM>), the adjustment to the rover position difference for epoch <NUM> - <NUM> is given by: <MAT>.

The adjusted rover position difference for epoch <NUM> is then computed at <NUM> and is given by the saved (and slightly biased) rover position difference, plus the correction for initial position error: <MAT>.

The adjusted position for epoch <NUM> is produced at <NUM> based on: <MAT>.

A test is made at step <NUM> to see if the adjustment process is complete for all epochs. The current time is <NUM>, hence steps <NUM>-<NUM> must be repeated for the time interval <NUM> - <NUM>.

Initial position error at epoch <NUM> (step <NUM>): <MAT>.

Rover position difference adjustment for epoch <NUM> - <NUM>: <MAT>.

Adjust rover position difference for epoch <NUM> (step <NUM>): <MAT>.

The adjusted position for epoch <NUM> (step <NUM>): <MAT>.

Once the adjustment process is complete, the final updated position Ǔ(<NUM>) is reported at step <NUM>.

<FIG> depicts the adjustment for initial position errors. In the example, just the height component of a stationary rover is considered. In the top sub-graph <NUM>, hollow circles correspond to autonomous height estimates at each measurement epoch (<NUM>). Grey lines indicate rover position difference height estimates. Note that the further the initial height is away from the correct height, the larger the error in the rover position difference height estimate. Also note that the rover position difference height estimates are affected in this example by both the systematic effect of initial height error, plus the random delta phase measurement errors.

The trace in sub-graph <NUM>, is obtained by first shifting the rover position difference height estimate for t(<NUM>,<NUM>) to join with the synchronous position height at t(<NUM>). Next the rover position difference height estimate t(<NUM>-<NUM>) is linked to the previous position at t(<NUM>), and so on until the next synchronous position height is available, in this case at t(<NUM>). The synchronous position height estimates contain small errors and therefore discontinuities exist when linking delta positions with synchronous positions.

In sub-plot <NUM>, rover position difference heights are linked to the synchronous position estimates and adjusted for errors in the initial position estimates.

The rover position difference adjustment process outlined above was presented based on a low-latency, single-receiver delta phase-based positioning example. It should be stressed that the adjustment process is valid for all types of single-receiver and single-difference delta phase positioning.

Single-receiver rover position difference estimates are normally generated at say <NUM>, <NUM> or <NUM>. Typically the rover position difference estimates form a smooth trajectory. Small jumps sometimes occur with changes in satellites geometry, i.e. new satellites entering the solution, or satellites being lost. As implied by the name, rover position difference estimates only provide relative changes in user location over time. The absolute position of the user is required at an epoch to be able to anchor the rover position differences. Synchronous position estimates derived from a position + ambiguity processor are normally used in conjunction with delta phase processing to produce low-latency position estimates.

Measurement errors lead to variations in the synchronous position estimates, which in turn leads to discontinuities in the reported position trajectory.

<FIG> illustrates a <NUM> rover position difference trajectory <NUM>, from time <NUM> to <NUM>. Just the height component is shown. Synchronous position solutions are generated at <NUM> and are illustrated as solid black circles <NUM>, <NUM>, <NUM> & <NUM>. The rover position difference trajectory <NUM> is first adjusted to the synchronous position <NUM>, at <NUM>. When the next synchronous position is available for <NUM>, <NUM>, the rover position difference trajectory is shifted by <NUM>, to <NUM>. Trajectory <NUM> is again shifted based on the synchronous position <NUM>, at <NUM>, to form <NUM>. This adjustment process is repeated at <NUM>, and so on.

A step in the rover position difference trajectory occurs for each synchronous position adjustment. Note that the magnitude of the stepping effect has been exaggerated for the purposes of this example.

<FIG> illustrates a <NUM> rover position difference trajectory (<NUM>). Synchronous positions are obtained at times <NUM>,<NUM>,<NUM> & <NUM>, denoted <NUM>, <NUM>, <NUM> & <NUM> respectively. Comparisons can be made between the rover position difference estimates at <NUM> epochs (<NUM>, <NUM> & <NUM>) with the corresponding synchronous position estimates (<NUM>, <NUM> & <NUM>), thus leading to the differences <NUM>, <NUM> and <NUM>, respectively. Rather than introducing abrupt steps in the reported position trajectory, it is possible to blend the rover position difference trajectory with the synchronous positions.

The blending process involves the following steps:.

A buffer of the last n synchronous position fixes is maintained, as well as a buffer of the last n corresponding rover position difference estimates. Table <NUM> provides an example of the position buffering and blending process for the example given in <FIG>
The synchronous positions are shown in column <NUM> as: U(<NUM>), U(<NUM>), U(<NUM>) & U(<NUM>). Delta phase processing yields rover position differences: U(<NUM>,<NUM>), U(<NUM>,<NUM>), U(<NUM>,<NUM>) as shown in column <NUM>. Multiple estimates of the position at the anchor epochs can be obtained using the previous synchronous solutions and the buffered delta positions as shown in column <NUM>. Blending factors η(a,b) are used to weight the synchronous solution and propagated synchronous positions at the anchor epoch.

The selection of the weighting factors [η(a,b) ] determines the characteristics of the blended solution. Normally the most recent synchronous position is given the most weight, while the oldest position the least weight. A linear, exponential or other suitable, weighting scheme can be used.

The example in Table <NUM> shows that the last <NUM> seconds of propagated synchronous solutions are used in the blended anchor position. The number of solutions considered in the blending process is limited in order to minimize the computation load and buffer storage requirements. Furthermore, in practice, only <NUM>-<NUM> are needed to effectively blend the solutions.

The following formula can be used to compute linear blending factors: <MAT> where:.

Table <NUM> presents an example of linear blending factors where the maximum blending time-span χ=<NUM> seconds.

Changes in satellite geometry result in changes to the synchronous position fix quality. Hence, the precision of each synchronous position fix will generally be different. Furthermore, the longer a synchronous position is propagated with rover position differences, the greater the uncertainty in the resultant solution. The relative precisions of each propagated position fix can be used to compute the blending factors. A precision-based blending scheme endeavors to account for the relative differences in precisions of the rover position difference propagated and synchronous solutions. The raw precision-based blending factors are given by: <MAT> where:.

Note that the raw blending factors need to be normalized (so that they sum to <NUM>).

An illustration of the precision-based blending scheme is presented in Table <NUM>. Just the x-coordinate is included in the example. However the approach used for the y- and z-coordinate is analogous to that used for the x-coordinate.

In a prior invention described in GNSS Position Coasting, <CIT> {A2555}, single-difference delta phase processing is used to propagate fixed quality synchronous position results forward in time in order to bridge segments of float quality synchronous position results. The GNSS Position Coasting scheme helps to extend the amount of time that fixed quality solutions are available for high precision operation.

The use of rigorous satellite clock and orbit information for improved delta positioning is described in Vollath, Position Determination with reference data outage, <CIT>. The satellite clock and orbit errors are significant component of the single-reference delta phase measurements. Once satellite clock/orbit errors are removed, the precision of the single-receiver rover position difference estimates are greatly improved.

Single-receiver delta phase processing with rigorous satellite and clock information, is termed here Precise (single-receiver) Delta Phase. When the rigorous satellite clock information is predicted in time, this is termed Predicted Precise Delta Phase.

The following events can cause interruptions to high-precision position results at the rover:.

A new unified approach has been developed which addresses specifically issue <NUM> above, as well as more generally handing degraded positioning caused by issues <NUM>,<NUM> & <NUM>. In the new approach, the following methods of solution propagation are used to produce the best position result (where the best result is deemed as the one with the highest precision (smallest uncertainty)):.

<FIG> provides an illustration of the relative uncertainties of various solutions types over time assuming all solution types use the same satellite geometry. The axis <NUM> corresponds to fixed-quality synchronous solutions, with each position <NUM>, identified with solid black dots. The uncertainty of the positions is represented by error bars <NUM>.

The float-quality synchronous positions on axis <NUM>, have larger uncertainty than the fixed-quality synchronous solutions, as evidenced by the longer error bars <NUM>. Each float-quality synchronous position, <NUM>, shows larger variations about the zero axis, <NUM>.

The error growth of single-difference rover position differences is represented by the region between the dashed lines (<NUM>) on axis <NUM>. Each single-difference rover position estimate <NUM>, is shown by a grey circle surrounded by a black ring.

The precise single-receiver rover position difference positions are presented on axis <NUM>. Each position fix is marked by a black ring (<NUM>). The error growth of the precise rover position difference estimates is shown as the region <NUM>, assuming that the propagation time starts at first epoch and accumulates thereafter.

The predicted-precise single-receiver rover position differences are presented on axis <NUM>. Each position fix is marked by a dark grey circle surrounded by a black ring (<NUM>). The error growth of the predicted-precise rover position difference estimates is shown as the region <NUM>.

The single-receiver rover position differences (broadcast orbits and clocks) is shown on axis <NUM>, with each position fix marked by a grey ring. The error growth of the single-receiver rover position differences is defined by the region <NUM>.

Assuming a common satellite geometry, the time-wise error growth of single-difference rover position difference is lower than that of the precise (single-receiver) rover position difference; which is lower than the predicted-precise rover position difference; which is lower than the single-receiver rover position difference (broadcast orbits and clocks). Single-difference processing requires reference and rover receivers to be tracking common satellites. In many circumstances, the number of single-difference satellites may be less than the number of rover (single-) receiver satellites. In which case, the single-difference rover position difference error growth may be worse than that of single-receiver rover position differences.

<FIG> presents timeline views of positions (height component only) derived from prior art and new techniques. The upper axis <NUM>, refers to prior-art positioning methods, while the lower axis, <NUM>, to new techniques. The position trace for axis <NUM> is denoted <NUM>; for axis <NUM>, the position trace is denoted <NUM>.

Considering the prior-art method (axis <NUM>), during times <NUM>-<NUM>, the solution has fixed quality. Between epochs <NUM> & <NUM>, there is a switch in the physical reference station (or loss of satellite tracking at the reference), this event, denoted <NUM>, causes the synchronous processor to reset. This results in a period of float quality synchronous positioning up until epoch <NUM>. During the float period, the accuracy of the reported position is only decimeter-level. At epoch <NUM>, the synchronous fixed quality is reestablished (segment <NUM>) and retained until reference station corrections are lost just after epoch <NUM>. The float quality solutions are propagated using single-receiver delta positions through segment <NUM>.

In the new approach, precise single-receiver rover position difference processing is used at epoch <NUM> (denoted <NUM>) to propagate the fixed quality synchronous solution from epoch <NUM> to epoch <NUM>. Single-difference rover position difference processing is then used at epochs <NUM> - <NUM>, to produce high-quality position estimates until regular synchronous fixed quality solutions are regained at epoch <NUM>. Precise single-receiver rover position difference processing is again used between epochs <NUM>-<NUM>, while the reference receiver data is unavailable. Note that the use of precise-single receiver rover position difference processing and single-difference rover position differences enables fixed quality solutions to be provided (segment <NUM>). The rigorous clock/orbit corrections are lost at event <NUM>, around epoch <NUM>, after which only single-receiver (broadcast orbits and clocks) rover position difference processing is used to deliver solutions with float quality (segment <NUM>).

The combination of precise single-receiver rover position difference and single-difference rover position difference processing gives the new method a clear advantage in delivering fixed quality positions, versus prior art techniques.

<FIG> presents a flowchart that explains the handling of data at the rover. When new data arrives at <NUM>, it is tested at <NUM> to see if it is rover data. If so, rover data handling occurs at <NUM>. Predicted Precise orbit and clock information when available (see test <NUM>) is handled at <NUM>. Test <NUM> checks for the presence of Precise Orbit and Clock information. When present, the Precise Orbits and Clocks are handled at <NUM>. The input data is tested at <NUM> to see if it is from the reference and can be single-differenced. If so, the single-difference data is handled at <NUM>.

<FIG> shows an expanded view of flowchart <NUM>. When rover data is received, it is used to form a rover position difference solution between the current and previous epoch (<NUM>). The rover position difference estimate is then buffered at step <NUM>, and optionally used to generate a low-latency position estimate at <NUM>.

When available, the rigorous predicted satellite clock/orbit models are updated at <NUM>. The rigorous predicted clock/orbit information is optionally used at <NUM> to update the rover position difference for the current data epoch. At <NUM>, the rigorous predicted orbit information is used to update the time sequence of rover position difference estimates. The best rover position difference time sequence is generated at <NUM> based on the predicted precise rover position difference time sequence and existing broadcast rover position difference time sequence. The best rover position difference from <NUM> is used to replace the predicted rover position difference time sequence at <NUM>.

The rigorous satellite clock/orbit models are updated at <NUM>, as soon as rigorous orbit and clock information is received for one or more satellites. The rigorous clock models enable the rover position difference time sequence derived from broadcast clocks to be optionally refined (<NUM>) and stored. The rigorous orbit and clock information is used to form a precise rover position difference estimate for the current and previous epochs at <NUM>. At step <NUM>, the best rover position difference time sequence is produced based on the existing precise position sequence. Finally at <NUM>, the predicted rover position difference time sequence is replaced by the rover position difference time sequence with the smallest error.

When synchronous reference data are received, they are used to compute single-difference delta phase measurements and rover position difference estimates at <NUM>. The rover position difference time sequence with the smallest uncertainty is generated at step <NUM>, and used to replace the existing rover position difference time sequence at <NUM>. A synchronous position result is produced at <NUM>, using the latest single-difference GNSS measurements. The best (smallest uncertainty) synchronous position solution is derived from the latest synchronous position result, and the single-difference rover position difference time sequence in step <NUM>. If for example the synchronous position result is float quality, then often the single-difference rover position difference time sequence that was propagated from the last fixed quality solution will be the best (smallest uncertainty). At <NUM>, all of the single-difference rover position differences up to the reference data time tag are replaced with the new synchronous position solution. Finally at step <NUM>, an optional report of the synchronous position is provided which will be latent with respect to the current time.

The foregoing description of embodiments is not intended as limiting the scope of but rather to provide examples of the invention as defined by the claims. Those of ordinary skill in the art will realize that the detailed description of embodiments of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure.

In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made to achieve the developer's specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.

In accordance with embodiments of the present invention, the components, process steps and/or data structures may be implemented using various types of operating systems (OS), computer platforms, firmware, computer programs, computer languages and/or general-purpose machines. Portions of the methods can be run as a programmed process running on processing circuitry. The processing circuitry can take the form of numerous combinations of processors and operating systems, or a stand-alone device. The processes can be implemented as instructions executed by such hardware, by hardware alone, or by any combination thereof. The software may be stored on a program storage device readable by a machine. Computational elements, such as filters and banks of filters, can be readily implemented using an object-oriented programming language such that each required filter is instantiated as needed.

Those of skill in the art will recognize that devices of a less general-purpose nature, such as hardwired devices, field programmable logic devices (FPLDs), including field programmable gate arrays (FPGAs) and complex programmable logic devices (CPLDs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein.

In accordance with an embodiment of the present invention, the methods may be implemented in part on a data processing computer such as a personal computer, workstation computer, mainframe computer, or high-performance server running an operating system such as a version of Microsoft Windows, or various versons of the Unix operating system such as Linux available from a number of vendors. The methods may also be implemented on a multiple-processor system, or in a computing environment including various peripherals such as input devices, output devices, displays, pointing devices, memories, storage devices, media interfaces for transferring data to and from the processor(s), and the like. Such a computer system or computing environment may be networked locally, or over the Internet.

Any of the above-described methods and their embodiments may be implemented in part by means of a computer program. The computer program may be loaded on an apparatus as described above. Therefore, the invention also relates to a computer program, which, when carried out on an apparatus performs portions of any one of the above above-described methods and their embodiments.

The invention also relates to a computer-readable medium or a computer-program product including the above-mentioned computer program. The computer-readable medium or computer-program product may for instance be a magnetic tape, an optical memory disk, a magnetic disk, a magneto-optical disk, a CD ROM, a DVD, a CD, a flash memory unit or the like, wherein the computer program is permanently or temporarily stored. The invention also relates to a computer-readable medium (or to a computer-program product) having computer-executable instructions for carrying out any one of the methods of the invention.

The invention also relates to a firmware update adapted to be installed on apparatus already in the field, i.e. a computer program which is delivered to the field as a computer program product. This applies to each of the above-described methods and apparatuses.

Claim 1:
A positioning method carried out by a positioning apparatus, the positing method comprising
a. obtaining an approximate rover anchor position (U' (<NUM>)) for a first epoch from an autonomous position solution or a differential position solution of the rover,
b. using the approximate rover anchor position (U' (<NUM>)) to determine a rover position difference (δÛ(<NUM>,<NUM>)) from delta phase measurements at the rover between the first epoch and a succeeding epoch,
b1. wherein the approximate rover anchor position contains an initial error, wherein the rover position difference (δÛ(<NUM>,<NUM>)) for said succeeding epoch contains a respective partial error based on the initial error,
c. obtaining (<NUM>) an improved rover anchor position for the first epoch, the improved rover anchor position being a synchronous rover anchor position (<IMG>(<NUM>)) becoming available for the first epoch, the synchronous anchor position being accurate to centimeter-level and the approximate rover anchor position being generally accurate to meter-level, thereafter
d. deriving (<NUM>) an adjusted rover position difference (δ<IMG>(<NUM>,<NUM>)) using said determined rover position difference (δÛ(<NUM>,<NUM>)) for said succeeding epoch,
d1. wherein deriving the adjusted rover position difference (δ<IMG>(<NUM>,<NUM>)) for said succeeding epoch comprises adding a correction term (γ(<NUM>,<NUM>)) related to the initial error to said determined rover position difference (δÛ(<NUM>,<NUM>)), wherein the initial error is the difference between the improved rover anchor position (<IMG>(<NUM>)) and the approximate rover anchor position (U' (<NUM>)); and
e. deriving (<NUM>) a rover position (<IMG>(<NUM>)) for said succeeding epoch from the improved rover anchor position (<IMG>(<NUM>)) for the first epoch and the adjusted rover position difference (δ<IMG>(<NUM>,<NUM>) for said succeeding epoch,
e1. wherein deriving the rover position ((<IMG>(<NUM>)) for said succeeding epoch comprises adding the adjusted rover position difference (δ<IMG>(<NUM>,<NUM>)) for said succeeding epoch to the improved rover anchor position (<IMG>(<NUM>)) for the first epoch.