Positioning method and device based on RTK and SBAS, terminal device and storage medium
By acquiring data from GNSS, RTK reference stations, and SBAS to perform satellite status detection and Kalman filter algorithm calculations, the problem of insufficient differential data quality in RTK positioning was solved, thus improving positioning accuracy and reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GUANGZHOU GEOELECTRON
- Filing Date
- 2022-11-01
- Publication Date
- 2026-06-30
Smart Images

Figure CN115902970B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of satellite navigation and positioning technology, specifically to a positioning method, apparatus, terminal equipment, and storage medium based on RTK and SBAS. Background Technology
[0002] RTK (Real-time kinematic) carrier phase differential technology is widely used in various real-time, high-precision application scenarios. Specifically, it establishes a GNSS ground reference station and provides the accurate location coordinates of the reference station, along with corresponding code pseudorange, carrier phase measurements, and other "observation domain" differential data, to users near the reference station in real time via terrestrial networks, radio stations, etc. Users can then use the difference between the observations to eliminate various errors such as satellite orbit and clock bias, atmospheric delay, and receiver clock bias, and utilize filtering algorithms to quickly obtain high-precision positioning results. In contrast, RTK services typically broadcast the observed code pseudorange and carrier phase values from the reference station directly as differential data to users. If the quality of this differential data cannot be effectively guaranteed, the user's positioning accuracy will not meet requirements. Summary of the Invention
[0003] This application discloses a positioning method, apparatus, terminal device, and storage medium based on RTK and SBAS, which can monitor the integrity of differential data during the RTK positioning process, thereby improving the positioning accuracy and reliability.
[0004] The first aspect of this application provides a localization method based on RTK and SBAS, the method comprising:
[0005] Acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data;
[0006] Based on the observation data from the RTK reference station and the status data from the SBAS, code pseudorange and carrier phase detection are performed on each satellite of the GNSS to determine the target satellites that are in an available state.
[0007] The GNSS observation data is calculated using a double-difference model and a Kalman filter algorithm to obtain positioning information, which includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite.
[0008] As an optional implementation, in the first aspect of this embodiment, the status data of the SBAS includes SBAS correction data and SBAS integrity data; the step of performing code pseudorange and carrier phase detection on each satellite of the GNSS based on the observation data of the RTK reference station and the status data of the SBAS to determine the target satellite in an available state includes:
[0009] The initial detection status of each satellite is determined based on the integrity data of the SBAS;
[0010] Based on the observation data of the RTK reference station, the correction data of SBAS, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite, and the initial detection state of each satellite is corrected according to the detection results to obtain the corrected detection state of each satellite.
[0011] Based on the corrected detection status of each satellite, the target satellites that are in an available state are determined.
[0012] As an optional implementation, in a first aspect of this embodiment, determining the initial detection status of each satellite based on the integrity data of the SBAS includes:
[0013] Based on the integrity data of the SBAS, obtain the SBAS integrity parameters corresponding to each satellite;
[0014] Based on the relationship between the SBAS integrity parameter corresponding to each satellite and the detection threshold, the initial detection state of each satellite is determined. If the SBAS integrity parameter corresponding to the target satellite is greater than the detection threshold, the initial detection state of the target satellite is determined to be a deweighted available state; otherwise, the initial detection state of the target satellite is determined to be a normal state. The target satellite is any one of the satellites.
[0015] As an optional implementation, in the first aspect of this embodiment, the observation data of the RTK reference station includes RTK pseudorange correction data and RTK carrier phase correction data; based on the observation data of the RTK reference station, the SBAS correction data, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite, and the initial detection state of each satellite is corrected based on the detection results to obtain the corrected detection state of each satellite, including:
[0016] The code pseudorange residual value corresponding to each satellite of the GNSS is calculated based on the reference station coordinates, RTK pseudorange correction data and SBAS correction data, and the carrier phase residual value corresponding to each satellite of the GNSS is calculated based on the reference station coordinates, RTK carrier phase correction data and SBAS correction data.
[0017] Calculate the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determine the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold.
[0018] The integer ambiguity of each satellite is calculated based on the carrier phase residual value of each satellite, and the carrier phase detection result of each satellite is determined based on the second detection threshold and the integer ambiguity of each satellite.
[0019] The initial detection state of each satellite is corrected based on the code pseudorange detection results and carrier phase detection results of each satellite, resulting in the corrected detection state of each satellite.
[0020] As an optional implementation, in a first aspect of this embodiment, the step of calculating the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determining the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and a first detection threshold, includes:
[0021] The satellite with the highest elevation angle is selected from all the satellites whose initial detection status is normal and determined as the reference satellite. All satellites whose initial detection status is normal and other than the reference satellite, as well as satellites whose initial detection status is deweighted and available, are determined as other satellites.
[0022] The difference between the code pseudorange residual value corresponding to the reference satellite and the code pseudorange residual value corresponding to the first other satellite is taken as the code pseudorange residual single difference value corresponding to the first other satellite, where the first other satellite is any one of the other satellites;
[0023] If the single difference value of the code pseudorange residual corresponding to the first other satellite is greater than the first detection threshold, the code pseudorange detection result of the first other satellite is determined to be unusable; otherwise, the code pseudorange is usable.
[0024] As an optional implementation, in the first aspect of this embodiment, the step of calculating the integer ambiguity corresponding to each satellite based on the carrier phase residual value corresponding to each satellite, and determining the carrier phase detection result of each satellite based on the second detection threshold and the integer ambiguity corresponding to each satellite, includes:
[0025] Calculate the integer ambiguity of each satellite based on the carrier phase residual value of each satellite;
[0026] The integer ambiguity corresponding to each satellite is determined by a carrier phase timing smoothing algorithm. If the integer ambiguity corresponding to the first satellite is successfully fixed, the carrier phase residual value corresponding to the first satellite is corrected according to the integer ambiguity corresponding to the first satellite to obtain the corrected carrier phase residual value corresponding to the first satellite. The first satellite is any one of the satellites.
[0027] If the corrected carrier phase residual value corresponding to the first satellite is greater than the second detection threshold, the carrier phase detection result of the first satellite is determined to be carrier unavailable; otherwise, the carrier is available.
[0028] If it is determined that the integer ambiguity corresponding to the first satellite cannot be successfully fixed, the carrier phase detection result of the first satellite is determined to be carrier unavailable.
[0029] As an optional implementation, in the first aspect of this embodiment, the step of correcting the initial detection state of each satellite based on the code pseudorange detection result and carrier phase detection result of each satellite to obtain the corrected detection state of each satellite includes:
[0030] If the code pseudorange detection result of a certain satellite is that the code pseudorange is available and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite will not be corrected.
[0031] If the carrier phase detection result of a certain satellite is that the carrier is unavailable, the initial detection state of the certain satellite is corrected to the carrier unavailable state;
[0032] When the code pseudorange detection result of a certain satellite is that the code pseudorange is unavailable, and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite is corrected to the code pseudorange unavailable state.
[0033] The step of determining the target satellite in an available state based on the corrected detection status of each satellite includes:
[0034] Satellites in the normal state, the reduced-weighted usable state, and the code pseudorange unusable state are identified as target satellites in the usable state.
[0035] As an optional implementation, in the first aspect of this embodiment, the GNSS observation data is calculated using a double-difference model and a Kalman filter algorithm to obtain positioning information, which includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite and includes:
[0036] Based on the target satellites in the available state, the filtering equations and double-difference model in the Kalman filter algorithm are constructed. The noise matrix of the filtering equations in the Kalman filter algorithm is adjusted according to the target satellites in the reduced-weight available state and the code pseudorange unavailable state to obtain the adjusted Kalman filter algorithm.
[0037] The GNSS observation data is calculated using a double-difference model and the adjusted Kalman filter algorithm to obtain positioning information, which includes location information and time information.
[0038] As an optional implementation, in the first aspect of this embodiment, the method further includes:
[0039] Based on the positioning information and the observation data from the RTK reference station, determine the code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite;
[0040] The positioning information is verified based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite.
[0041] If the location information is verified, the location information is output.
[0042] As an optional implementation, in the first aspect of this embodiment, after verifying the positioning information based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite, the method further includes:
[0043] If the positioning information verification fails, a code pseudorange residual sequence is constructed based on the code pseudorange residual data corresponding to each satellite, a carrier phase residual sequence is constructed based on the carrier phase residual data corresponding to each satellite, and the first median and first mean of the code pseudorange residual sequence are calculated, as well as the second median and second mean of the carrier phase residual sequence are calculated.
[0044] A first proportional coefficient is determined based on the first median and the first mean, and a second proportional coefficient is determined based on the second median and the second mean;
[0045] When the first scaling factor is less than the scaling factor threshold, and / or the second scaling factor is less than the scaling factor threshold, the reference satellite is determined to be a satellite in a carrier unavailable state, wherein the reference satellite is the target satellite with the largest elevation angle selected from each target satellite in the normal state.
[0046] When the first scaling factor is greater than or equal to the scaling factor threshold, and the second scaling factor is greater than or equal to the scaling factor threshold, the target satellite in the code pseudorange unavailable and / or the downweighted available state is determined to be a satellite in the carrier unavailable state.
[0047] As an optional implementation, in the first aspect of this embodiment, after determining that the reference satellite is a satellite in a carrier unavailable state, or after determining that the target satellite in the code pseudorange unavailable and / or the downweighted available state is a satellite in a carrier unavailable state, the steps of calculating the GNSS observation data using a double-difference model and a Kalman filter algorithm to obtain positioning information, and verifying the positioning information based on the code pseudorange residual data and the carrier phase residual data, and subsequent steps, are performed again.
[0048] A second aspect of this application provides a positioning device based on RTK and SBAS, the device comprising:
[0049] The data acquisition module is used to acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data.
[0050] The data detection module is used to perform code pseudorange and carrier phase detection on each satellite of the GNSS based on the observation data of the RTK reference station and the status data of the SBAS, and to determine the target satellites that are in an available state.
[0051] The satellite positioning module is used to calculate the positioning information from the GNSS observation data using a double-difference model and a Kalman filter algorithm. The positioning information includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite.
[0052] A third aspect of this application provides a terminal device, including a memory and a processor. The memory stores a computer program, and when the computer program is executed by the processor, the processor enables the processor to implement any of the RTK and SBAS-based positioning methods disclosed in this application.
[0053] A fourth aspect of this application provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements any of the RTK- and SBAS-based positioning methods disclosed in the embodiments of this application.
[0054] Compared with related technologies, the embodiments of this application have the following beneficial effects:
[0055] By acquiring positioning data that includes GNSS observation data, RTK reference station observation data, and SBAS status data, code pseudorange detection and carrier phase detection are performed on each GNSS satellite based on the RTK reference station observation data and SBAS status data to determine the target satellites in an available state. Then, the filtering equations in the Kalman filter algorithm are constructed based on the available target satellites. Finally, the GNSS observation data is processed using the Kalman filter algorithm and a double-difference model to obtain positioning information. This method can simultaneously receive RTK differential data and SBAS differential data, and comprehensively utilizes information such as the precise coordinates of the reference station and the user positioning solution results to monitor the integrity of the differential data during the RTK positioning process, thereby improving the positioning accuracy and reliability. Attached Figure Description
[0056] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0057] Figure 1 This is a schematic diagram illustrating an application scenario of a localization method based on RTK and SBAS disclosed in an embodiment of this application;
[0058] Figure 2 This is a schematic flowchart of a localization method based on RTK and SBAS disclosed in an embodiment of this application;
[0059] Figure 3 This is a schematic diagram of a method flow for another localization method based on RTK and SBAS disclosed in an embodiment of this application;
[0060] Figure 4 This is a schematic flowchart of another positioning method based on RTK and SBAS disclosed in the embodiments of this application;
[0061] Figure 5 This is a flowchart illustrating the data verification process in the positioning method based on RTK and SBAS in the embodiments of this application;
[0062] Figure 6 This is a schematic diagram of the structure of a positioning device based on RTK and SBAS disclosed in an embodiment of this application;
[0063] Figure 7 This is a schematic diagram of the structure of a terminal device disclosed in one embodiment. Detailed Implementation
[0064] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0065] It should be noted that the terms "comprising" and "having," and any variations thereof, in the embodiments and accompanying drawings of this application are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or devices.
[0066] This application discloses a positioning method, apparatus, terminal device, and storage medium based on RTK and SBAS, which can monitor the integrity of differential data during the RTK positioning process, thereby improving the positioning accuracy and reliability. These will be described in detail below.
[0067] Please see Figure 1 , Figure 1 This is a schematic diagram illustrating an application scenario of a localization method based on RTK and SBAS disclosed in an embodiment of this application. For example... Figure 1 As shown, the system may include a terminal device 10, an RTK reference station 20, a satellite-based augmentation system 30, and multiple satellites 40. The terminal device 10 can be a smartwatch, smart bracelet, or smart earphone, or a mobile device such as a smartphone, tablet, or laptop, or a large device such as a vehicle, ship, or aircraft. The terminal device 10 acquires GNSS observation data from multiple satellites, RTK reference station observation data from the RTK reference station 20, and SBAS status data from the satellite-based augmentation system 30. This data constitutes the positioning data. Based on the RTK reference station observation data and the SBAS status data, the terminal device 10 performs code pseudorange and carrier phase detection on each GNSS satellite to determine the target satellite in an available state. Based on the target satellite, it determines the filtering equation in the Kalman filter. Finally, using a double-difference model and the Kalman filter algorithm, it calculates the GNSS observation data to obtain positioning information containing both location and time information.
[0068] Please see Figure 2 , Figure 2 This is a flowchart illustrating a localization method based on RTK and SBAS disclosed in an embodiment of this application. This method can be applied to, for example... Figure 1 The terminal device 10 in the application scenario shown. For example... Figure 2 As shown, the method may include the following steps:
[0069] 210. Acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data.
[0070] In this embodiment, the terminal device receives observation data transmitted by GNSS satellites, which includes at least the broadcast ephemeris of the GNSS satellites and the distances between each GNSS satellite and the terminal device; the terminal device also receives observation data transmitted by an RTK reference station, which includes at least the coordinates of the RTK reference station and the code pseudorange differential correction values and carrier phase differential correction values of each satellite broadcast by the RTK reference station; and the terminal device receives status data broadcast by SBAS, which includes at least satellite correction data and integrity data of several satellites broadcast by SBAS. The aforementioned data received by the terminal device constitute positioning data.
[0071] 220. Based on the observation data from the RTK reference station and the status data from the SBAS, perform code pseudorange and carrier phase detection on each GNSS satellite to determine the target satellites that are in a usable state.
[0072] In this embodiment, the terminal device determines the satellites requiring code pseudorange detection and carrier phase detection based on the various GNSS satellites, satellites broadcasting observation data from RTK reference stations, and satellites broadcasting satellite correction data from SBAS. Specifically, among the visible satellites of the terminal device, detection is performed on satellites broadcasting correction data from RTK and SBAS, including code pseudorange detection and carrier phase detection.
[0073] The terminal equipment calculates the code pseudorange residual value of the satellite requiring code pseudorange detection based on the status data of the RTK reference station and SBAS (which can be based on the RTK reference station coordinates, RTK code pseudorange differential correction values, and SBAS correction data). Then, based on the code pseudorange residual value and satellite integrity data of several satellites broadcast by SBAS, it determines the code pseudorange detection result for each satellite requiring code pseudorange detection. Simultaneously, the terminal equipment calculates the carrier phase residual value of the satellite requiring carrier phase detection based on the status data of the RTK reference station and SBAS (which can be based on the RTK reference station coordinates, RTK carrier phase differential correction values, and SBAS correction data). Then, based on the carrier phase residual value and satellite integrity data of several satellites broadcast by SBAS, it determines the carrier phase detection result for each satellite requiring carrier phase detection. Based on the code pseudorange detection result and / or carrier phase detection result for each satellite, the terminal equipment determines whether each satellite is a target satellite in a usable state.
[0074] 230. Using a double-difference model and Kalman filtering algorithm, the GNSS observation data is calculated to obtain positioning information, which includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite.
[0075] In this embodiment, the terminal device can select observation data of a target satellite in an available state to construct the filter variance in the Kalman filter, and construct a double-difference model based on the code pseudorange residual value and carrier phase residual value of the target satellite in an available state. The terminal device calculates the GNSS observation data in the positioning data through the constructed double-difference model and the Kalman filter algorithm to obtain the positioning information of the terminal device.
[0076] By employing the above embodiments, positioning data is acquired, including GNSS observation data, RTK reference station observation data, and SBAS status data. Based on the RTK reference station observation data and SBAS status data, code pseudorange detection and carrier phase detection are performed on each GNSS satellite to determine the target satellite in an available state. The filtering equation in the Kalman filter algorithm is then constructed based on the available target satellite. Finally, the GNSS observation data is processed using the Kalman filter algorithm and a double-difference model to obtain positioning information. This approach can simultaneously receive RTK differential data and SBAS differential data, and comprehensively utilizes information such as the precise coordinates of the reference station and the user positioning solution results to monitor the integrity of the differential data during the RTK positioning process, thereby improving the positioning accuracy and reliability.
[0077] In one embodiment, see Figure 3 , Figure 3This is a flowchart illustrating another localization method based on RTK and SBAS disclosed in an embodiment of this application. This method can be applied to, for example... Figure 1 The terminal device 10 in the application scenario shown. For example... Figure 3 As shown, the method may include the following steps:
[0078] 310. Acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data. The SBAS status data includes SBAS correction data and SBAS integrity data.
[0079] 320. Determine the initial detection status of each satellite based on the integrity data of SBAS.
[0080] In this embodiment of the application, the terminal device can first perform an initial determination of the detection status of each GNSS satellite based on the status data of SBAS, specifically the integrity data corresponding to each satellite broadcast by SBAS, and obtain the initial detection status corresponding to each satellite.
[0081] 330. Based on the observation data of the RTK reference station, the correction data of SBAS, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite, and the initial detection state of each satellite is corrected according to the detection results to obtain the corrected detection state of each satellite.
[0082] In this embodiment, the terminal device performs code pseudorange detection on the satellites based on the coordinates of the RTK reference station, the RTK code pseudorange differential correction value in the observation data of the RTK reference station, and the correction data of SBAS in the status data of SBAS. This can involve calculating the code pseudorange residual value of the satellites that need to be detected, determining the code pseudorange detection result for each satellite based on the code pseudorange residual value, and correcting the initial detection state of each satellite based on the code pseudorange detection result of each satellite. This can involve keeping the initial detection state of the satellite unchanged or setting the initial detection state of the satellite to a code pseudorange unavailable state.
[0083] Meanwhile, the terminal equipment performs carrier phase detection on the satellites based on the coordinates of the RTK reference station, the RTK carrier phase differential correction value in the observation data of the RTK reference station, and the SBAS correction data in the status data of the SBAS. This can involve calculating the carrier phase residual value of the satellites that need to be carrier phase detected, determining the carrier phase detection result for each satellite based on the carrier phase residual value, and correcting the initial detection state of each satellite based on the carrier phase detection result of each satellite. This can involve keeping the initial detection state of the satellite unchanged or setting the initial detection state of the satellite to a carrier unavailable state.
[0084] The terminal equipment combines the corrected states of each satellite based on the code pseudorange detection results and the corrected states based on the carrier phase detection results to comprehensively determine the corrected detection states of each satellite.
[0085] 340. Based on the corrected detection status of each satellite, determine the target satellites that are in an available state.
[0086] In this embodiment of the application, the terminal device can determine whether each satellite is a target satellite in an available state based on the corrected detection state. For example, the initial detection state includes a normal state and a reduced-weight available state, and the corrected detection state includes a normal state, a reduced-weight available state, a code pseudorange unavailable state, and a carrier unavailable state. The terminal device can determine the satellites in the normal state, the reduced-weight available state, and the code pseudorange unavailable state as target satellites in an available state, that is, remove the satellites in the carrier unavailable state.
[0087] By using the above embodiments, the initial detection status of the satellite is determined by the status data of SBAS, and the initial detection status of the satellite is corrected based on the observation data of RTK reference station, so that SBAS and RTK are combined to identify the detection status of the satellite and eliminate some unusable satellites, thereby improving the accuracy and reliability of positioning.
[0088] 350. Using a double-difference model and Kalman filtering algorithm, the GNSS observation data is calculated to obtain positioning information, which includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite.
[0089] In one embodiment, see Figure 4 , Figure 4 This is a flowchart illustrating another localization method based on RTK and SBAS disclosed in this application. This method can be applied to, for example... Figure 1 The terminal device 10 in the application scenario shown. For example... Figure 4 As shown, the method may include the following steps:
[0090] 401. Acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data. The SBAS status data includes SBAS correction data and SBAS integrity data.
[0091] 402. Based on the SBAS integrity data, obtain the SBAS integrity parameters corresponding to each satellite.
[0092] In this embodiment of the application, the terminal device can first use the GNSS broadcast ephemeris in the GNSS observation data to calculate the real-time broadcast position of each GNSS satellite. and clock difference T brd The real-time broadcast positions and clock errors of the aforementioned satellites are corrected using the status data of each satellite broadcast by SBAS to obtain the precise orbits [X] corresponding to each satellite. sbas Y sbas Z sbas and precision clock difference T sbas .
[0093] Meanwhile, the terminal device obtains the User Differential Range Error Index (UDREI) or Dual-Frequency Range Error Index (DFREI) parameters corresponding to each satellite broadcast by SBAS from the SBAS integrity data; when receiving single-frequency SBAS service signals, it obtains the UDREE parameters corresponding to each satellite broadcast by SBAS; when receiving dual-frequency multi-constellation (DFMC) SBAS, it obtains the DFREE parameters corresponding to each satellite broadcast by SBAS.
[0094] 403. Based on the relationship between the SBAS integrity parameter and the detection threshold for each satellite, determine the initial detection status of each satellite. If the SBAS integrity parameter of the target satellite is greater than the detection threshold, the initial detection status of the target satellite is determined to be a deweighted available state; otherwise, the initial detection status of the target satellite is determined to be a normal state. The target satellite is any one of the satellites.
[0095] In this embodiment, the terminal device determines the initial detection state of each satellite based on the relationship between the corresponding UDRIE parameter and the UDRIE threshold, or based on the relationship between the corresponding DFRIE parameter and the corresponding DFRIE threshold. This can involve setting the initial detection state of satellites with UDRIE parameters greater than the UDRIE threshold of 5 to a deweighted usable state, or setting the initial detection state of satellites with DFRIE parameters greater than the DFRIE threshold of 11 to a deweighted usable state, or setting the initial detection state of satellites that have not broadcast their corresponding UDRIE parameters or DFRIE parameters to a deweighted usable state. In all other cases, the initial detection state of the satellites is set to a normal state. The UDRIE threshold of 5 and the DFRIE threshold of 11 can be determined by those skilled in the art based on practical experience, and are not specifically limited thereto.
[0096] By adopting the above embodiments, the SBAS integrity parameters corresponding to each satellite can be obtained through the SBAS integrity data, and the initialization detection status of the satellite can be determined according to the corresponding SBAS integrity parameters. The positioning accuracy and integrity of the satellite navigation service can be initialized based on the SBAS status data, which improves the positioning accuracy and reliability to a certain extent.
[0097] 404. Calculate the code pseudorange residual value corresponding to each GNSS satellite based on the reference station coordinates, RTK pseudorange correction data, and SBAS correction data. Also, calculate the carrier phase residual value corresponding to each GNSS satellite based on the reference station coordinates, RTK carrier phase correction data, and SBAS correction data. The observation data of the RTK reference station includes RTK pseudorange correction data and RTK carrier phase correction data.
[0098] In this embodiment, the terminal device performs code pseudorange detection on the satellite based on the coordinates of the RTK reference station, the correction data of SBAS in the SBAS status data, and the RTK code pseudorange differential correction data in the observation data of the RTK reference station, which is the RTK code pseudorange differential correction value. This can be achieved by calculating the code pseudorange residual value corresponding to each GNSS satellite. If a satellite does not have a corresponding code pseudorange differential correction value, then the code pseudorange residual value corresponding to that satellite is not calculated.
[0099] Meanwhile, the terminal equipment performs carrier phase detection on the satellite based on the coordinates of the RTK reference station, the SBAS correction data in the SBAS status data, and the RTK carrier phase differential correction data in the observation data of the RTK reference station, which is the RTK carrier phase differential correction value. This can be done by calculating the carrier phase residual value corresponding to each GNSS satellite. If a satellite does not have a corresponding carrier phase differential correction value, then the carrier phase residual value corresponding to that satellite is not calculated.
[0100] In this embodiment of the application, the formula for calculating the code pseudorange residual value corresponding to the satellite can be as shown in equation (1).
[0101]
[0102] Among them, [X ref Y ref Z ref ]and These are the reference station position coordinates and the satellite position coordinates after SBAS correction, respectively, in meters; P represents the pseudorange residual value, in meters; i j This refers to the RTK pseudorange correction data in the observation data of the RTK reference station. Specifically, it is the code pseudorange differential correction value broadcast by the RTK reference station, in meters. The observation data of the RTK reference station here may also include other parameters; this is just an example. R is the geometric distance from the satellite to the reference station, in meters; c is the speed of light, in meters per second. This is the SBAS-corrected precision clock bias for the satellite, in seconds. Trop represents the ionospheric delay at the reference station, in meters. j is the tropospheric delay at the reference station calculated by the model, in meters; j is the visible GNSS satellite; i is the GNSS signal measurement frequency or a combination thereof, when it is a single frequency, Iono i Obtained via SBAS correction; when it is a non-ionosphere combination, Iono i It is 0.
[0103] In this embodiment of the application, the formula for calculating the carrier phase residual value corresponding to the satellite can be as shown in equation (2).
[0104]
[0105] in, This represents the carrier phase residual value, in meters. This refers to the RTK carrier phase correction data in the observation data of the RTK reference station. Specifically, it refers to the carrier phase differential correction value broadcast by the RTK reference station, in weeks. The observation data of the RTK reference station here may also include other parameters; this is just an example. i The carrier circle is defined in meters; other parameters are defined as follows: Same as above.
[0106] 405. Calculate the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determine the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold.
[0107] In this embodiment, the terminal device can calculate the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite. After calculation, the terminal device determines the code pseudorange detection result for each satellite based on whether the single difference value of the code pseudorange residual for each satellite meets a first detection threshold. For example, if the single difference value of the code pseudorange residual for a satellite meets the first detection threshold, the terminal device determines that the code pseudorange detection result for the satellite is usable; otherwise, the code pseudorange detection result for the satellite is unusable.
[0108] In some embodiments, step 405, which calculates the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determines the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold, may specifically include the following:
[0109] The satellite with the highest elevation angle among all satellites whose initial detection status is normal is selected as the reference satellite, and all satellites whose initial detection status is normal and those whose initial detection status is deweighted and available are selected as other satellites.
[0110] The difference between the code pseudorange residual value corresponding to the reference satellite and the code pseudorange residual value corresponding to the first other satellite is taken as the code pseudorange residual single difference value corresponding to the first other satellite, where the first other satellite is any one of the other satellites.
[0111] If the single difference value of the code pseudorange residual corresponding to the first other satellite is greater than the first detection threshold, the code pseudorange detection result of the first other satellite is determined to be unusable; otherwise, the code pseudorange is usable.
[0112] In this embodiment of the application, the terminal device traverses all visible GNSS satellites at the RTK reference station, and selects satellites with a normal initial detection state from all visible GNSS satellites at the RTK reference station. Then, it selects the satellite with the largest elevation angle from the selected satellites with a normal initial detection state and identifies this satellite as the reference satellite. The other satellites with a normal initial detection state and satellites with a reduced-weighted usable initial state, or the remaining GNSS satellites visible at the RTK reference station, are identified as other satellites.
[0113] The terminal equipment calculates the single difference value of the code pseudorange residual for each other satellite by subtracting the code pseudorange residual value for the reference satellite. The calculation formula is shown in equation (3).
[0114]
[0115] in, This is the single difference value of the code pseudorange residual; The code pseudorange residual value is used as a reference satellite; For other satellite codes, the pseudorange residual value is used.
[0116] The terminal device also calculates the first detection threshold for each satellite. That is, the SBAS detection threshold. The calculation formula for the first detection threshold is shown in equation (4).
[0117]
[0118] in, The standard deviation corresponding to the code pseudorange residual value can be calculated using the User Differential Range Error Index (UDREI) or Dual-Frequency Range Error Index (DFREI) broadcast by SBAS, as well as the Grid Ionosphere Vertical Error Index (GIVEI) parameter, in meters; the superscript refsat represents the selected reference satellite; K pr This is the threshold coefficient for code pseudorange detection, with a typical value of 3.29.
[0119] The terminal equipment compares the single difference value of the code pseudorange residual of each satellite with the first detection threshold corresponding to the satellite. If it is greater than the corresponding first detection threshold, the code pseudorange detection result of the first satellite is determined to be unusable; otherwise, the code pseudorange is usable. In addition, if the SBAS does not broadcast the satellite correction data corresponding to the satellite, the code pseudorange detection result of that satellite is also considered to be usable. The comparison of the single difference value of the code pseudorange residual of the satellite with the first detection threshold corresponding to the satellite is shown in Equation (5).
[0120]
[0121] By employing the above embodiments, residual calculation is performed on reference station data, single-difference processing is performed on code pseudorange to eliminate the influence of receiver clock error, and satellite data detection is achieved, specifically code pseudorange detection, which more effectively identifies satellites with abnormal code pseudorange.
[0122] 406. Calculate the integer ambiguity of each satellite based on the carrier phase residual value of each satellite, and determine the carrier phase detection result of each satellite based on the second detection threshold and the integer ambiguity of each satellite.
[0123] In this embodiment, while performing step 405 (i.e., code pseudorange detection of the satellite), the terminal device can also simultaneously perform carrier phase detection of the satellite, i.e., execute this step. In this process, the terminal device can calculate the integer ambiguity corresponding to each satellite based on the carrier phase residual value. After calculation, the terminal device determines the carrier phase detection result for each satellite based on whether the integer ambiguity of each satellite meets a second detection threshold. For example, if the integer ambiguity of the satellite meets the second detection threshold, the terminal device determines that the carrier phase detection result is carrier available; otherwise, the carrier phase detection result is carrier unavailable.
[0124] In some embodiments, step 406, which calculates the integer ambiguity of each satellite based on the carrier phase residual value of each satellite and determines the carrier phase detection result of each satellite based on the second detection threshold and the integer ambiguity of each satellite, may specifically include the following steps:
[0125] The integer ambiguity of each satellite is calculated based on the carrier phase residual value of each satellite.
[0126] The integer ambiguity corresponding to each satellite is determined by a carrier phase timing smoothing algorithm. If the integer ambiguity corresponding to the first satellite is successfully fixed, the carrier phase residual value corresponding to the first satellite is corrected according to the integer ambiguity corresponding to the first satellite to obtain the corrected carrier phase residual value corresponding to the first satellite. The first satellite can be any one of the satellites.
[0127] If the corrected carrier phase residual value corresponding to the first satellite is greater than the second detection threshold, the carrier phase detection result of the first satellite is determined to be carrier unavailable; otherwise, the carrier is available.
[0128] If it is determined that the integer ambiguity corresponding to the first satellite cannot be successfully fixed, the carrier phase detection result of the first satellite is determined to be carrier unavailable.
[0129] In this embodiment, since the receiver clock of the terminal device changes stably in the short term and the timing variation is small, the terminal device can use a carrier phase timing smoothing algorithm to calculate and eliminate the integer ambiguity and clock error in the carrier phase residual value corresponding to the satellite. The timing smoothing algorithm is shown in equation (6).
[0130]
[0131] in, This represents the initial carrier phase residual of the satellite at the current moment, expressed in meters. and These are the estimated values of "ambiguity and receiver clock error" for the current time and the previous time, respectively, in meters; T is the length of the smoothing time window, typically 5. λ is a fixed value for "ambiguity and receiver clock bias", measured in weeks; i The wavelength of the corresponding observed carrier wave is given in meters. Indicates will The calculation result is rounded down.
[0132] The terminal device determines the integer ambiguity corresponding to each satellite to determine whether the integer ambiguity corresponding to the satellite has been successfully fixed. The determination method is shown in Equation (7).
[0133]
[0134] Among them, TH amb To determine the threshold, the unit is meters, with a typical value of 0.05m; σ ph To improve the accuracy of ambiguity estimation, Standard deviation of the sequence; Ratio amb The confidence level for ambiguity fixation is typically set to 99.9%. When the integer ambiguity corresponding to a satellite simultaneously satisfies both the decision threshold in equation (7) and the confidence level for ambiguity fixation, the integer ambiguity corresponding to the satellite is considered successfully fixed. For satellites that cannot complete ambiguity fixation, their detection status is set to "carrier unavailable".
[0135] For satellites whose integer ambiguity is successfully fixed, the terminal device corrects the carrier phase residual value corresponding to the satellite based on the integer ambiguity, obtaining the corrected carrier phase residual value. The corrected carrier phase residual value for each satellite is then compared with the second detection threshold corresponding to the satellite. If the value is greater than the second detection threshold, the carrier phase detection result is determined to be carrier unusable; otherwise, the carrier is usable. The carrier phase residual value correction formula is shown in equation (8), and the comparison between the corrected carrier phase residual value and the second detection threshold corresponding to the satellite is shown in equation (9).
[0136]
[0137]
[0138] in, To correct and obtain the final carrier phase residual value; The detection threshold for satellite carrier phase, typically set to...
[0139] Using the above embodiments, residual calculation is performed on the reference station data, and the carrier phase is time-smoothed to eliminate integer ambiguity and receiver clock bias. This enables data detection of the satellite, specifically carrier phase detection, and more effectively identifies satellites with abnormal code pseudorange.
[0140] 407. Based on the code pseudorange detection results and carrier phase detection results of each satellite, the initial detection state of each satellite is corrected to obtain the corrected detection state of each satellite.
[0141] In this embodiment, the terminal device corrects the initialization state of each satellite by combining the code pseudorange detection results and carrier phase detection results of each satellite.
[0142] By employing the above embodiments, residual calculation is performed on the reference station data, single-difference processing is performed on the code pseudorange to eliminate the influence of receiver clock bias, timing smoothing is performed on the carrier phase to eliminate integer ambiguity and the influence of receiver clock bias, and the SBAS integrity parameter is amplified to form a judgment threshold. The residual exceeding the limit is detected and identified, and the satellite status is corrected for the satellite exceeding the limit. This improves the identification process of abnormal satellites and enhances positioning accuracy and reliability.
[0143] 408. Based on the corrected detection status of each satellite, determine the target satellites that are in an available state.
[0144] In some embodiments, step 407, which corrects the initial detection state of each satellite based on the code pseudorange detection result and carrier phase detection result of each satellite to obtain the corrected detection state of each satellite, may specifically include the following steps:
[0145] If the code pseudorange detection result of a certain satellite is that the code pseudorange is available, and the carrier phase detection result is that the carrier is available, the initial detection state of that satellite will not be corrected.
[0146] If the carrier phase detection result of a certain satellite is that the carrier is unavailable, the initial detection state of that satellite is corrected to the carrier unavailable state.
[0147] If the code pseudorange detection result of a certain satellite is that the code pseudorange is unavailable, and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite is corrected to the code pseudorange unavailable state.
[0148] Step 408, which involves determining the target satellites in an available state based on the corrected detection status of each satellite, may specifically include the following steps:
[0149] Satellites in normal status, deweighted usable status, and code pseudorange unusable status are identified as target satellites in usable status.
[0150] In this embodiment of the application, when the code pseudorange detection result of a satellite is that the code pseudorange is available, that is, when the above equation (5) is satisfied, the initial detection state of the satellite remains unchanged, that is, the initial detection state of the satellite is not corrected according to the code pseudorange detection result; while when the code pseudorange detection result of a satellite is that the code pseudorange is unavailable, that is, when the above equation (5) is not satisfied, the terminal device corrects the initial detection state of the satellite to the code pseudorange unavailable state according to the code pseudorange detection result.
[0151] Similarly, if the carrier phase detection result of a satellite is that the carrier is available, that is, if the above equation (9) is satisfied, the initial detection state of the satellite remains unchanged, that is, the initial detection state of the satellite is not corrected according to the carrier phase detection result; but if the carrier phase detection result of a satellite is that the carrier is unavailable, that is, if the above equation (9) is not satisfied, the terminal device corrects the initial detection state of the satellite to the carrier unavailable state according to the carrier phase detection result.
[0152] Therefore, during the process of correcting the satellite's initialization state by integrating the code pseudorange detection results and carrier phase detection results from the terminal equipment, the following situations may occur:
[0153] When the code pseudorange detection result of a certain satellite is that the code pseudorange is available, and the carrier phase detection result is that the carrier is available, that is, the terminal equipment does not need to correct the initial detection state of the satellite based on the code pseudorange detection result and the carrier phase result.
[0154] When the carrier phase detection result of a certain satellite is that the carrier is unavailable, but the code pseudorange detection result is that the code pseudorange is available, that is, the terminal device does not need to correct the initial detection state of the satellite according to the code pseudorange detection result, but needs to correct the initial detection state of the satellite to the carrier unavailable state according to the carrier phase detection result.
[0155] When the carrier phase detection result of a satellite is "carrier unavailable" and the code pseudorange detection result is "code pseudorange unavailable," meaning the terminal device needs to correct the satellite's initial detection state to "code pseudorange unavailable" based on the code pseudorange detection result and the initial detection state to "carrier unavailable" based on the carrier phase detection result, the terminal device can correct the satellite's corrected detection state to "carrier unavailable." This is because in subsequent positioning calculations, if a satellite's detection state is set to "carrier unavailable" after carrier phase detection, it needs to be discarded, without needing to consider the satellite's detection state after code pseudorange detection.
[0156] When the code pseudorange detection result of a certain satellite is code pseudorange unavailable, but the carrier phase detection result is carrier available, that is, the terminal device does not need to correct the initial detection state of the satellite according to the carrier phase detection result, but needs to correct the initial detection state of the satellite to code pseudorange unavailable according to the code pseudorange detection result.
[0157] The terminal equipment identifies satellites in their initialization state (normal or downweighted available) as available target satellites. It also identifies satellites whose initialization state, after code pseudorange detection and carrier phase detection, has been corrected to code pseudorange unavailable as available target satellites. In other words, satellites whose initialization state, after carrier phase detection, has been corrected to carrier unavailable are excluded.
[0158] By combining the code pseudorange detection results and carrier phase detection results with the above embodiments, abnormal satellites and target satellites that can be used for subsequent positioning calculations are comprehensively identified, thereby improving the accuracy and reliability of positioning.
[0159] 409. Construct the filtering equation and double-difference model in the Kalman filter algorithm based on the target satellite in the available state. Adjust the noise matrix of the filtering equation in the Kalman filter algorithm according to the target satellite in the reduced-weight available state and the code pseudorange unavailable state to obtain the adjusted Kalman filter algorithm.
[0160] 410. Using a double-difference model and an adjusted Kalman filter algorithm, the GNSS observation data is calculated to obtain positioning information, which includes location information and time information.
[0161] In this embodiment of the application, the terminal device establishes a double-difference model as shown in equation (10) based on the satellite's "detection status".
[0162]
[0163] Where v is the double-difference vector of code pseudorange and carrier phase, including the double-difference code pseudorange residual ddPR and carrier phase residual ddPH, both in meters; the subscript user represents terminal equipment receiver data, the subscript ref represents RTK reference station receiver data; the superscript ik represents the satellite to be calculated, and the superscript refsat represents the selected reference satellite. H k The k-th row of the observation matrix contains the first three columns, which are the direction vectors from the user to the corresponding satellite, calculated based on the user and satellite positions; par ik and par refsat These are the ambiguity terms for satellite ik and the reference satellite, respectively. When H k When the corresponding double-difference observation is the code pseudorange, its value is 0. When the corresponding double-difference observation is the carrier phase, it is the carrier wavelength of the corresponding signal, in meters. X is the parameter vector to be estimated; the first three rows are the three-dimensional user position coordinates, in meters; bias ik and bias refsat These are the carrier phase ambiguity parameters for satellite IK and the reference satellite, respectively, in weeks.
[0164] In this embodiment, the terminal device calculates the state observation noise matrix R by combining the satellite's "detection status" and the satellite elevation angle weight, as shown in equation (11).
[0165]
[0166] Among them, w ik,p For the double-difference observation weights corresponding to satellite IK, cov ik,ij,pr For the weights of pseudo-double differences for different satellite codes, cov ik,ij,ph The weights for the phase differences between different satellite carriers. ik,p σ is the variance of satellite Ik observation noise. ik,p 2 The reciprocal of the product of the noise variance of the reference satellite observations, cov ik,ij,p This is the reciprocal of the product of the observation noise variances of satellite ik and satellite ij. The subscript p represents code pseudorange noise when it is pr, and carrier phase noise when it is ph. The observation noise variance σ i,p 2It is calculated by weighting the satellite elevation angle and the "detection status", where E is the satellite elevation angle in degrees; σ is the satellite elevation angle. p 2 The measurement accuracy is for code pseudorange or carrier phase, measured in square meters; W i The weighting coefficient for satellite "detection status" is set under the following conditions: W for "normal" satellites. i The value is 1; the reference satellite must be a satellite in a "normal" state; satellites with "carrier unavailable" are not used for positioning calculations; for satellites with "deweighted availability" and "code pseudorange unavailable", increase W. i The value, with a typical coefficient set to 10.0.
[0167] Under this setting, the terminal device receiver completes the positioning calculation through Kalman filtering to obtain the position and time information. The Kalman filtering equation is shown in equation (12).
[0168]
[0169] Where H is the observation matrix, X t Let v be the state variable estimated for this epoch, and v be the double-difference observation, as shown in Equation (10). R is the noise matrix, as shown in Equation (11). Furthermore, Φ t|t-1 X is the extrapolation model matrix; Q is the model noise; X is the extrapolation model matrix. t|t-1 P is the state estimator of the current epoch from the previous epoch; t|t-1 K is the covariance matrix of the state estimate of the previous epoch to the current epoch; K is the gain matrix of the observations in the current epoch; and I is the identity matrix.
[0170] By using the above embodiments, the satellite positioning solution model can be adjusted by combining the above code pseudorange detection and carrier phase detection, thereby reducing the impact of satellite detection status on the solution results and improving positioning accuracy and reliability.
[0171] In one embodiment, see Figure 5 , Figure 5 This is a flowchart illustrating the data verification process in the RTK and SBAS-based positioning method in this application embodiment. This method can be applied to, for example... Figure 1 The terminal device 10 in the application scenario shown. For example... Figure 5 As shown, the method may include the following steps:
[0172] 510. Based on the positioning information and the observation data from the RTK reference station, determine the code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite.
[0173] In this embodiment of the application, after obtaining the positioning information containing location information and time information by performing step 230, step 350 or step 410, the terminal device can also determine the code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite based on the calculated location information and time information, combined with the observation data of the RTK reference station, which may be code pseudorange differential correction value and carrier phase differential correction value.
[0174] 520. Verify the positioning information based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite.
[0175] In this embodiment, the terminal device verifies the positioning information based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite. This can be based on the position [X] calculated by the terminal device. u Y u Z u and clock difference T u Based on the observation data from the RTK reference station, the double-difference code pseudorange and carrier phase residuals are recalculated according to equation (10). Furthermore, based on empirical values of satellite elevation angle and ranging accuracy, the measurement noise standard deviations of the code pseudorange and carrier phase are calculated and denoted as follows: and The verification threshold value is obtained by amplification. The double-difference residual value is compared with the verification threshold to verify the positioning information based on the comparison result. The comparison formula is shown in equation (13).
[0176]
[0177] Among them, K dd This is the double-difference check threshold amplification factor, with a typical value of 4.0.
[0178] 530. If the location information verification passes, output the location information.
[0179] In this embodiment of the application, if all satellites meet the requirements of the above formula (13), the verification is passed and the calculated positioning information is output.
[0180] If not all satellites meet the requirements of the above formula (13), then the residual data and corresponding "satellite pairs" (including reference satellites and used satellites) that do not meet the requirements of the above formula (13) are statistically analyzed.
[0181] 540. When the positioning information verification fails, construct a code pseudorange residual sequence based on the code pseudorange residual data corresponding to each satellite, construct a carrier phase residual sequence based on the carrier phase residual data corresponding to each satellite, and calculate the first median and first mean of the code pseudorange residual sequence, as well as the second median and second mean of the carrier phase residual sequence.
[0182] 550. Determine the first proportional coefficient based on the first median and the first mean, and determine the second proportional coefficient based on the second median and the second mean.
[0183] 560. When the first scaling factor is less than the scaling factor threshold and / or the second scaling factor is less than the scaling factor threshold, the reference satellite is determined to be a satellite in a carrier unavailable state. The reference satellite is the target satellite with the largest elevation angle selected from all target satellites in a normal state.
[0184] 570. When the first scaling factor is greater than or equal to the scaling factor threshold and the second scaling factor is greater than or equal to the scaling factor threshold, the target satellite in the code pseudorange unavailable and / or downweighted available state is determined to be a satellite in the carrier unavailable state.
[0185] In this embodiment, the out-of-tolerance code pseudorange and carrier phase residual sequences are processed separately. By statistically analyzing and comparing the mean and median, it is determined whether an anomaly has occurred in the reference satellite, as shown in equation (14) below.
[0186]
[0187] Where k refers to the type of statistical residual sequence, which can be code pseudorange pr or carrier phase ph; median k This is the statistical median, in meters; k This is the statistical mean, in meters; Max{} is the function to find the maximum value; TH dd The out-of-tolerance data determination ratio is typically 0.15. When equation (14) is satisfied, the reference satellite is determined to be abnormal, and the "detection status" of the reference satellite is set to "carrier unavailable"; otherwise, the other satellites are traversed, and the detection status of the satellites with the detection status of "code pseudorange unavailable" and / or the satellites with the detection status of "weighted available" is set to "carrier unavailable".
[0188] Using the above embodiments, residual data verification is performed based on the RTK double-difference residuals after user positioning and the corresponding measurement standard deviation. Excess residuals and corresponding "satellite pair" information are recorded. By statistically analyzing the consistency between the mean and median of the excess residuals, abnormal satellites are identified, and adjustments are made to satellite detection.
[0189] In some embodiments, after the terminal device performs step 560 to determine the reference satellite as a satellite in a carrier unavailable state, or after performing step 570 to determine the target satellite in a code pseudorange unavailable and / or downweighted available state as a satellite in a carrier unavailable state, the terminal device may repeat the process of calculating the positioning information containing location information and time information in steps 230, 350, or 410, as well as the process of steps 510-570.
[0190] In this embodiment of the application, the terminal device repeatedly executes the process of calculating the positioning information containing location information and time information in step 230, step 350 or step 410, and the number of times the process of step 510-step 570 can be 1 time or the maximum number of loops, the maximum number of loops is generally 3 times.
[0191] By employing the above embodiments, multiple cycles of positioning and identification are used to ensure that all abnormal satellites are eliminated, thereby improving the accuracy and reliability of positioning.
[0192] Please see Figure 6 , Figure 6 This is a schematic diagram of a positioning device based on RTK and SBAS disclosed in an embodiment of this application. This RTK and SBAS-based positioning device can be applied to terminal devices. Figure 6 As shown, the RTK and SBAS-based positioning device 600 may include: a data acquisition module 610, a data detection module 620, and a satellite positioning module 630.
[0193] The data acquisition module 610 is used to acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data.
[0194] The data detection module 620 is used to perform code pseudorange and carrier phase detection on each GNSS satellite based on the observation data of the RTK reference station and the status data of SBAS, and to determine the target satellite in an available state.
[0195] The satellite positioning module 630 is used to calculate the positioning information from GNSS observation data using a double-difference model and a Kalman filter algorithm. The positioning information includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite.
[0196] In some embodiments, the status data of SBAS includes SBAS correction data and SBAS integrity data.
[0197] The data detection module 620 is also used for:
[0198] The initial detection status of each satellite is determined based on the integrity data of SBAS;
[0199] Based on the observation data from the RTK reference station, the correction data from SBAS, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite. The initial detection state of each satellite is then corrected based on the detection results to obtain the corrected detection state of each satellite.
[0200] Based on the corrected detection status of each satellite, the target satellites that are in a usable state are identified.
[0201] In some embodiments, the data detection module 620 is further configured to:
[0202] Based on the SBAS integrity data, obtain the SBAS integrity parameters corresponding to each satellite;
[0203] Based on the relationship between the SBAS integrity parameter of each satellite and the detection threshold, the initial detection status of each satellite is determined. If the SBAS integrity parameter of the target satellite is greater than the detection threshold, the initial detection status of the target satellite is determined to be a deweighted usable state; otherwise, the initial detection status of the target satellite is determined to be a normal state. The target satellite can be any one of the satellites.
[0204] In some embodiments, the observation data from the RTK reference station includes RTK pseudorange correction data and RTK carrier phase correction data;
[0205] In some embodiments, the data detection module 620 is further configured to:
[0206] The code pseudorange residual value for each GNSS satellite is calculated based on the reference station coordinates, RTK pseudorange correction data, and SBAS correction data. The carrier phase residual value for each GNSS satellite is also calculated based on the reference station coordinates, RTK carrier phase correction data, and SBAS correction data.
[0207] Calculate the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determine the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold.
[0208] The integer ambiguity of each satellite is calculated based on the carrier phase residual value of each satellite, and the carrier phase detection result of each satellite is determined based on the second detection threshold and the integer ambiguity of each satellite.
[0209] The initial detection state of each satellite is corrected based on the code pseudorange detection results and carrier phase detection results of each satellite, resulting in the corrected detection state of each satellite.
[0210] In some embodiments, the data detection module 620 is further configured to:
[0211] The satellite with the highest elevation angle is selected from all satellites whose initial detection status is normal and designated as the reference satellite. All satellites whose initial detection status is normal and those whose initial detection status is deweighted and available are designated as other satellites.
[0212] The difference between the code pseudorange residual value corresponding to the reference satellite and the code pseudorange residual value corresponding to the first other satellite is taken as the code pseudorange residual single difference value corresponding to the first other satellite, where the first other satellite is any one of the other satellites;
[0213] If the single difference value of the code pseudorange residual corresponding to the first other satellite is greater than the first detection threshold, the code pseudorange detection result of the first other satellite is determined to be unusable; otherwise, the code pseudorange is usable.
[0214] In some embodiments, the data detection module 620 is further configured to:
[0215] Calculate the integer ambiguity of each satellite based on the carrier phase residual value of each satellite;
[0216] The integer ambiguity corresponding to each satellite is determined by the carrier phase timing smoothing algorithm. When the integer ambiguity corresponding to the first satellite is successfully fixed, the carrier phase residual value corresponding to the first satellite is corrected according to the integer ambiguity corresponding to the first satellite to obtain the corrected carrier phase residual value corresponding to the first satellite. The first satellite is any one of the satellites.
[0217] If the corrected carrier phase residual value corresponding to the first satellite is greater than the second detection threshold, the carrier phase detection result of the first satellite is determined to be carrier unavailable; otherwise, the carrier is available.
[0218] If it is determined that the integer ambiguity corresponding to the first satellite cannot be successfully fixed, the carrier phase detection result of the first satellite is determined to be carrier unavailable.
[0219] In some embodiments, the data detection module 620 is further configured to:
[0220] If the code pseudorange detection result of a certain satellite is that the code pseudorange is available and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite will not be corrected.
[0221] If the carrier phase detection result of a certain satellite is that the carrier is unavailable, the initial detection state of the certain satellite is corrected to the carrier unavailable state.
[0222] When the code pseudorange detection result of a certain satellite is that the code pseudorange is unavailable, and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite is corrected to the code pseudorange unavailable state.
[0223] Satellites in normal status, deweighted usable status, and code pseudorange unusable status are identified as target satellites in usable status.
[0224] In some embodiments, the satellite positioning module 630 is further configured to:
[0225] Based on the target satellites in an available state, the filtering equations and double-difference model in the Kalman filter algorithm are constructed. Furthermore, the noise matrix of the filtering equations in the Kalman filter algorithm is adjusted based on the target satellites in a weighted available state and a code pseudorange unavailable state, to obtain the adjusted Kalman filter algorithm.
[0226] The double-difference model and the adjusted Kalman filter algorithm are used to calculate the positioning information from the GNSS observation data. The positioning information includes location information and time information.
[0227] Figure 6 The positioning device based on RTK and SBAS shown also includes:
[0228] The data verification module 640 is used to determine the code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite based on the positioning information and the observation data of the RTK reference station.
[0229] The positioning information is verified based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite.
[0230] If the location information is verified, the location information is output.
[0231] In some embodiments, the data verification module 640 is further configured to:
[0232] When the positioning information verification fails, a code pseudorange residual sequence is constructed based on the code pseudorange residual data corresponding to each satellite, a carrier phase residual sequence is constructed based on the carrier phase residual data corresponding to each satellite, and the first median and first mean of the code pseudorange residual sequence are calculated, as well as the second median and second mean of the carrier phase residual sequence are calculated.
[0233] The first proportional coefficient is determined based on the first median and the first mean, and the second proportional coefficient is determined based on the second median and the second mean;
[0234] When the first scaling factor is less than the scaling factor threshold, and / or the second scaling factor is less than the scaling factor threshold, the reference satellite is determined to be a satellite in a carrier unavailable state. The reference satellite is the target satellite with the largest elevation angle selected from all target satellites in a normal state.
[0235] When the first scaling factor is greater than or equal to the scaling factor threshold, and the second scaling factor is greater than or equal to the scaling factor threshold, the target satellite in the code pseudorange unavailable and / or downweighted available state is identified as a satellite in the carrier unavailable state.
[0236] In some embodiments, after the data verification module 640 determines that the reference satellite is in a carrier unavailable state, or after the data verification module 640 determines that the target satellite is in a code pseudorange unavailable and / or downweighted available state as a carrier unavailable state,
[0237] The satellite positioning module 630 is also used to perform calculations on GNSS observation data again using the double-difference model and Kalman filter algorithm to obtain positioning information;
[0238] In addition, the data verification module 640 is also used to re-execute the determination of code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite based on the positioning information and the observation data of the RTK reference station;
[0239] The positioning information is verified based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite.
[0240] If the location information verification passes, the location information will be output.
[0241] When the positioning information verification fails, a code pseudorange residual sequence is constructed based on the code pseudorange residual data corresponding to each satellite, a carrier phase residual sequence is constructed based on the carrier phase residual data corresponding to each satellite, and the first median and first mean of the code pseudorange residual sequence are calculated, as well as the second median and second mean of the carrier phase residual sequence are calculated.
[0242] The first proportional coefficient is determined based on the first median and the first mean, and the second proportional coefficient is determined based on the second median and the second mean;
[0243] When the first scaling factor is less than the scaling factor threshold, and / or the second scaling factor is less than the scaling factor threshold, the reference satellite is determined to be a satellite in a carrier unavailable state. The reference satellite is the target satellite with the largest elevation angle selected from all target satellites in a normal state.
[0244] When the first scaling factor is greater than or equal to the scaling factor threshold, and the second scaling factor is greater than or equal to the scaling factor threshold, the target satellite in the code pseudorange unavailable and / or downweighted available state is identified as a satellite in the carrier unavailable state.
[0245] Please see Figure 7 , Figure 7 This is a schematic diagram of the structure of a terminal device disclosed in one embodiment. This terminal device can be applied to driving vehicles, but is not specifically limited thereto. Figure 7 As shown, the terminal device 700 may include:
[0246] Memory 710 storing executable program code;
[0247] Processor 720 coupled to memory 710;
[0248] The processor 720 calls the executable program code stored in the memory 710 to execute any of the RTK and SBAS-based positioning methods disclosed in the embodiments of this application.
[0249] This application discloses a computer-readable storage medium storing a computer program that causes a computer to execute any of the RTK and SBAS-based positioning methods disclosed in this application.
[0250] This application discloses a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to cause a computer to execute any of the RTK and SBAS-based positioning methods disclosed in this application.
[0251] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. Those skilled in the art should also recognize that the embodiments described in the specification are optional embodiments, and the actions and modules involved are not necessarily essential to this application.
[0252] In the various embodiments of this application, it should be understood that the sequence number of each process does not necessarily imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0253] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units; they can be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0254] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0255] If the aforementioned integrated units are implemented as software functional units and sold or used as independent products, they can be stored in a computer-accessible memory. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several requests to cause a computer device (which can be a personal computer, server, or network device, specifically a processor in the computer device) to execute some or all of the steps of the methods described in the various embodiments of this application.
[0256] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, including read-only memory (ROM), random access memory (RAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), one-time programmable read-only memory (OTPROM), electrically-Erasable Programmable Read-Only Memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, disk storage, magnetic tape storage, or any other computer-readable medium capable of carrying or storing data.
[0257] The foregoing has provided a detailed description of a positioning method, apparatus, terminal device, and storage medium based on RTK and SBAS disclosed in the embodiments of this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. Furthermore, those skilled in the art will recognize that, based on the ideas of this application, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of this application.
Claims
1. A localization method based on RTK and SBAS, characterized in that, The method includes: Acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data; Based on the observation data from the RTK reference station and the status data from the SBAS, code pseudorange and carrier phase detection are performed on each satellite of the GNSS to determine the target satellites that are in an available state. The GNSS observation data is calculated using a double-difference model and a Kalman filter algorithm to obtain positioning information, which includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite. The status data of the SBAS includes SBAS correction data and SBAS integrity data; the step of performing code pseudorange and carrier phase detection on each satellite of the GNSS based on the observation data of the RTK reference station and the status data of the SBAS to determine the target satellites in an available state includes: The initial detection status of each satellite is determined based on the integrity data of the SBAS; Based on the observation data of the RTK reference station, the correction data of SBAS, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite, and the initial detection state of each satellite is corrected according to the detection results to obtain the corrected detection state of each satellite. Based on the corrected detection status of each satellite, the target satellites that are in an available state are determined.
2. The method according to claim 1, characterized in that, The initial detection status of each satellite is determined based on the integrity data of the SBAS, including: Based on the integrity data of the SBAS, obtain the SBAS integrity parameters corresponding to each satellite; Based on the relationship between the SBAS integrity parameter corresponding to each satellite and the detection threshold, the initial detection state of each satellite is determined. If the SBAS integrity parameter corresponding to the target satellite is greater than the detection threshold, the initial detection state of the target satellite is determined to be a deweighted available state; otherwise, the initial detection state of the target satellite is determined to be a normal state. The target satellite is any one of the satellites.
3. The method according to claim 2, characterized in that, The observation data from the RTK reference station includes RTK pseudorange correction data and RTK carrier phase correction data. Based on the observation data from the RTK reference station, the SBAS correction data, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite. The initial detection state of each satellite is then corrected based on the detection results to obtain the corrected detection state of each satellite, including: The code pseudorange residual value corresponding to each satellite of the GNSS is calculated based on the reference station coordinates, RTK pseudorange correction data and SBAS correction data, and the carrier phase residual value corresponding to each satellite of the GNSS is calculated based on the reference station coordinates, RTK carrier phase correction data and SBAS correction data. Calculate the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determine the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold. The integer ambiguity of each satellite is calculated based on the carrier phase residual value of each satellite, and the carrier phase detection result of each satellite is determined based on the second detection threshold and the integer ambiguity of each satellite. The initial detection state of each satellite is corrected based on the code pseudorange detection results and carrier phase detection results of each satellite, resulting in the corrected detection state of each satellite.
4. The method according to claim 3, characterized in that, The step of calculating the single difference value of the code pseudorange residual for each satellite based on the code pseudorange residual value for each satellite, and determining the code pseudorange detection result for each satellite based on the single difference value of the code pseudorange residual for each satellite and the first detection threshold, includes: The satellite with the highest elevation angle is selected from all the satellites whose initial detection status is normal and determined as the reference satellite. All satellites whose initial detection status is normal and other than the reference satellite, as well as satellites whose initial detection status is deweighted and available, are determined as other satellites. The difference between the code pseudorange residual value corresponding to the reference satellite and the code pseudorange residual value corresponding to the first other satellite is taken as the code pseudorange residual single difference value corresponding to the first other satellite, where the first other satellite is any one of the other satellites; If the single difference value of the code pseudorange residual corresponding to the first other satellite is greater than the first detection threshold, the code pseudorange detection result of the first other satellite is determined to be unusable; otherwise, the code pseudorange is usable.
5. The method according to claim 4, characterized in that, The step of calculating the integer ambiguity corresponding to each satellite based on the carrier phase residual value corresponding to each satellite, and determining the carrier phase detection result of each satellite based on the second detection threshold and the integer ambiguity corresponding to each satellite, includes: Calculate the integer ambiguity of each satellite based on the carrier phase residual value of each satellite; The integer ambiguity corresponding to each satellite is determined by a carrier phase timing smoothing algorithm. If the integer ambiguity corresponding to the first satellite is successfully fixed, the carrier phase residual value corresponding to the first satellite is corrected according to the integer ambiguity corresponding to the first satellite to obtain the corrected carrier phase residual value corresponding to the first satellite. The first satellite is any one of the satellites. If the corrected carrier phase residual value corresponding to the first satellite is greater than the second detection threshold, the carrier phase detection result of the first satellite is determined to be carrier unavailable; otherwise, the carrier is available. If it is determined that the integer ambiguity corresponding to the first satellite cannot be successfully fixed, the carrier phase detection result of the first satellite is determined to be carrier unavailable.
6. The method according to claim 5, characterized in that, The step of correcting the initial detection state of each satellite based on the code pseudorange detection results and carrier phase detection results of each satellite to obtain the corrected detection state of each satellite includes: If the code pseudorange detection result of a certain satellite is that the code pseudorange is available and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite will not be corrected. If the carrier phase detection result of a certain satellite is that the carrier is unavailable, the initial detection state of the certain satellite is corrected to the carrier unavailable state; When the code pseudorange detection result of a certain satellite is that the code pseudorange is unavailable, and the carrier phase detection result is that the carrier is available, the initial detection state of the certain satellite is corrected to the code pseudorange unavailable state. The step of determining the target satellite in an available state based on the corrected detection status of each satellite includes: Satellites in the normal state, the reduced-weighted usable state, and the code pseudorange unusable state are identified as target satellites in the usable state.
7. The method according to claim 6, characterized in that, The method employs a double-difference model and a Kalman filter algorithm to calculate the positioning information from the GNSS observation data. This positioning information includes location and time information. The filtering equations in the Kalman filter are determined based on the target satellite and include: Based on the target satellite in the available state, the filtering equation and double-difference model in the Kalman filter algorithm are constructed, and the noise matrix of the filtering equation in the Kalman filter algorithm is adjusted according to the target satellite in the reduced-weight available state and the target satellite in the code pseudorange unavailable state, so as to obtain the adjusted Kalman filter algorithm. The GNSS observation data is calculated using a double-difference model and the adjusted Kalman filter algorithm to obtain positioning information, which includes location information and time information.
8. The method according to any one of claims 1 to 7, characterized in that, The method further includes: Based on the positioning information and the observation data from the RTK reference station, determine the code pseudorange residual data and carrier phase residual data corresponding to each GNSS satellite; The positioning information is verified based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite. If the location information is verified, the location information is output.
9. The method according to claim 8, characterized in that, After verifying the positioning information based on the code pseudorange residual data and carrier phase residual data corresponding to each satellite, the method further includes: If the positioning information verification fails, a code pseudorange residual sequence is constructed based on the code pseudorange residual data corresponding to each satellite, a carrier phase residual sequence is constructed based on the carrier phase residual data corresponding to each satellite, and the first median and first mean of the code pseudorange residual sequence are calculated, as well as the second median and second mean of the carrier phase residual sequence are calculated. A first proportional coefficient is determined based on the first median and the first mean, and a second proportional coefficient is determined based on the second median and the second mean; When the first scaling factor is less than the scaling factor threshold, and / or the second scaling factor is less than the scaling factor threshold, the reference satellite is determined to be a satellite in a carrier unavailable state, wherein the reference satellite is the target satellite with the largest elevation angle selected from each target satellite in a normal state. When the first scaling factor is greater than or equal to the scaling factor threshold, and the second scaling factor is greater than or equal to the scaling factor threshold, the target satellite in the code pseudorange unavailable and / or downweighted available state is determined to be a satellite in the carrier unavailable state.
10. The method according to claim 9, characterized in that, After identifying the reference satellite as a satellite in a carrier unavailable state, or after identifying the target satellite in the code pseudorange unavailable and / or the downweighted available state as a satellite in a carrier unavailable state, the steps of calculating the GNSS observation data using the double-difference model and Kalman filtering algorithm to obtain positioning information, and verifying the positioning information based on the code pseudorange residual data and carrier phase residual data, and subsequent steps are performed again.
11. A positioning device based on RTK and SBAS, characterized in that, The device includes: The data acquisition module is used to acquire positioning data, which includes GNSS observation data, RTK reference station observation data, and SBAS status data. The data detection module is used to perform code pseudorange and carrier phase detection on each satellite of the GNSS based on the observation data of the RTK reference station and the status data of the SBAS, and to determine the target satellites that are in an available state. The satellite positioning module is used to calculate the positioning information from the GNSS observation data using a double-difference model and a Kalman filter algorithm. The positioning information includes location information and time information. The filtering equation in the Kalman filter is determined based on the target satellite. The status data of the SBAS includes the correction data of the SBAS and the integrity data of the SBAS; The data detection module is also used for: The initial detection status of each satellite is determined based on the integrity data of the SBAS; Based on the observation data of the RTK reference station, the correction data of SBAS, and the coordinate information of the RTK reference station, code pseudorange and carrier phase detection are performed on each GNSS satellite, and the initial detection state of each satellite is corrected according to the detection results to obtain the corrected detection state of each satellite. Based on the corrected detection status of each satellite, the target satellites that are in an available state are determined.
12. A terminal device, characterized in that, The method includes a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the processor causes the processor to perform the method as described in any one of claims 1 to 10.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 10.