Extended Real-Time Kinematic (RTK)
The GNSS rover device's extended RTK mode, which involves storing and using historical GNSS data to calculate positions, addresses the challenges of achieving high accuracy in dynamic scenarios, particularly by improving the reliability of RTK calculations and mitigating multipath errors.
Patent Information
- Application Number
- JP2022563935
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-04-21
- Filing Date
- 2021-04-20
- Publication Date
- 2025-06-23
- Estimated Expiration
- 2041-04-20
AI Technical Summary
Existing GNSS systems face challenges in achieving high accuracy for relative navigation, particularly in dynamic scenarios where both the base station and the rover are moving, due to factors like multipath errors and limited access to previous data in real-time kinematic (RTK) modes.
The method involves a GNSS rover device operating in extended RTK mode, where a first set of GNSS data is stored in a buffer and used in conjunction with a second set of data to calculate the rover's position. This approach allows for the use of historical data when RTK calculations fail, enabling more accurate position determination in real-time.
This solution enhances the accuracy of GNSS positioning in dynamic environments by leveraging stored data to improve the reliability of RTK calculations, thereby mitigating the impact of multipath errors and other sources of inaccuracy.
Smart Images

Figure 0007696629000001 
Figure 0007696629000002 
Figure 0007696629000003
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 013,398, filed on April 21, 2020, entitled "ENHANCED RTK", which is incorporated herein by reference in its entirety.
[0002] This disclosure relates to global navigation satellite systems (GNSS) such as the Global Positioning System (GPS), GLONASS, Galileo, BeiDou, and other satellite navigation and positioning systems.
Background Art
[0003] Navigation receivers that use global navigation satellite systems such as GPS or GLONASS (hereinafter collectively referred to as "GNSS") enable accurate determination of the altitude of the receiver's position. The satellite signals can be modulated by a pseudo - random binary code and can include a carrier harmonic signal that can be used on the receiver side to measure the delay relative to a local reference clock. These delay measurements may be used to determine a pseudo - range between the receiver and the satellite. The pseudo - range is not the true geometric range because the receiver's local clock can differ from the satellite - mounted clock. When the number of satellites in the field of view is greater than or equal to four, the measured pseudo - ranges can be processed to determine the single - point location of the user, represented by a vector X=(x,y,z) T and to compensate for the receiver clock offset.
[0004] GNSS finds specific applications in the field of surveying, which requires highly accurate measurements. The need to improve positioning accuracy has ultimately led to the development of differential navigation / positioning. In this mode, the user's position is determined with respect to an antenna connected to a reference receiver or a network of reference receivers, using the assumption that the position coordinates of the reference receiver are known with high accuracy. The reference receiver (also called the base receiver or base station) or the receiver network transmits its measurements (or corrections to the complete measurements) to a mobile navigation receiver (also called the rover station or rover). The rover uses this data to refine its measurements during the data processing. The rationale behind this approach is that since the pseudo-range measurement errors on the base side and the rover side are strongly correlated, using differential measurements can substantially improve the positioning accuracy.
[0005] Typically, the base station is static and located at a known position. However, in the relative navigation mode, both the base station and the rover are moving. In this mode, the user is interested in determining the vector between the base station and the rover. In other words, the user is interested in determining the continuously changing rover position relative to the continuously changing position of the base station. For example, when one aircraft or spacecraft is approaching another for aerial refueling or docking, a highly accurate determination of the relative position is important, while the absolute positions of the individual vehicles are generally not critical.
[0006] The position of the rover changes continuously over time and thus the time scale should be referred to. The determination of the position of the mobile rover relative to the base receiver in real time may be carried out using a Real - Time Kinematic (RTK) algorithm, which may be stored in the memory on the rover. As implied by the name "Real - Time Kinematic", the rover receiver is capable of calculating / outputting its precise position as raw data measurements and differential corrections become available at the rover. When implementing the RTK algorithm, a data communication link (e.g., a wireless communication link, a GSM (registered trademark) binary data communication link, etc.) may be used to transmit the necessary information from the base station to the rover.
[0007] Further improvement in accuracy in differential navigation / positioning applications can be achieved by the receiver using both carrier phase and pseudorange measurements from the satellites to which it is locked. For example, at the base receiver, by measuring the carrier phase of the signal received from a satellite and comparing it with the carrier phase of the same satellite measured at the rover receiver, measurement accuracy can be obtained down to within a fraction of the wavelength of some carriers.
[0008] One well - known type of measurement error that can reduce the accuracy of differential navigation / positioning is the multipath error. The multipath error is caused by the reflection of GNSS satellite signals by surfaces located near the receiving antenna. As a result of these reflections, the antenna receives both the direct signal traveling along the shortest path from the satellite to the receiver and the reflected signal following an indirect path. The combination of the two (or more) signals at the antenna leads to distortion of the raw measurements. The multipath error can affect both the pseudorange and the carrier phase measurements. Summary of the Invention Means for Solving the Problems
[0009] An exemplary method of calculating the location of a GNSS rover device includes, in a GNSS rover device in extended RTK mode, receiving a first set of GNSS data corresponding to a first reference time point, storing the first set of GNSS data in a buffer, after the first reference time point, receiving a second set of GNSS data corresponding to a second reference time point, after receiving the second set of GNSS data, reading the first set of GNSS data from the buffer, and calculating the location of the GNSS rover device based on the read first set of GNSS data and the second set of GNSS data.
[0010] In some embodiments, the method further includes, in a GNSS rover device in standard RTK mode, receiving a set of GNSS data corresponding to the most recent reference time point, calculating the location of the GNSS rover device based on the set of GNSS data, and omitting storing the set of GNSS data in a buffer.
[0011] In some embodiments, the first set of GNSS data is read in response to a user input.
[0012] In some embodiments, the first set of GNSS data is read in response to a determination that the location of the GNSS rover device has not been successfully calculated for a predetermined amount of time.
[0013] An exemplary method for calculating the location of a GNSS rover device includes, in a GNSS rover device in extended RTK mode, receiving a first set of GNSS data corresponding to a first reference time point, storing the first set of GNSS data in a buffer, receiving a second set of GNSS data corresponding to a second reference time point different from the first reference time point, and when the extended RTK operation is not triggered, calculating the location of the GNSS rover device based on the second set of data without reading data from the buffer, and when the extended RTK operation is triggered, calculating the location of the GNSS rover device based on the data read from the buffer.
[0014] In some embodiments, the method further includes, in a GNSS rover device in standard RTK mode, receiving a set of GNSS data corresponding to the most recent reference time point, calculating the location of the GNSS rover device based on the set of GNSS data, and omitting storing the set of GNSS data in a buffer.
[0015] In some embodiments, the extended RTK operation is triggered by an input by the user.
[0016] In some embodiments, the extended RTK operation is triggered by a determination that the location of the GNSS rover device has not been calculated properly for a predetermined amount of time.
[0017] In some embodiments, the predetermined amount of time is selectable by the user.
[0018] In some embodiments, the method further includes clearing the buffer based on user input. This specification also provides, for example, the following. (Item 1) A method for calculating the position of a Global Navigation Satellite System (GNSS) device, the method comprising: Receiving a first set of GNSS data corresponding to a first reference time point; Storing the first set of GNSS data in a buffer; Receiving a second set of GNSS data corresponding to a second reference time point after the first reference time point; After receiving the second set of GNSS data, reading the first set of GNSS data from the buffer; Calculating the position of the GNSS device based on the read first set of GNSS data and the second set of GNSS data A method comprising. (Item 2) The first set of GNSS data and the second set of GNSS data each Is a first measurement of a plurality of GNSS satellite signals, the first measurement being a first measurement of a plurality of GNSS satellite signals performed at the GNSS device, A second measurement of the plurality of GNSS satellite signals, the second measurement being a second measurement of the plurality of GNSS satellite signals received from another GNSS device The method according to item 1, comprising. (Item 3) The first measurement includes a code phase measurement and a carrier phase measurement, The second measurement includes a code phase measurement and a carrier phase measurement, The method according to item 2. (Item 4) The first measurement includes a Doppler measurement, and the second measurement includes a Doppler measurement, the method according to item 3. (Item 5) Calculating the position of the GNSS device includes: Calculating a corresponding filter state with respect to the first reference time point; Updating the calculated filter state with respect to the first reference time point using information from the second set of GNSS data The method according to item 1, comprising. (Item 6) Calculating the position of the GNSS device includes calculating a value of a characteristic of a GNSS antenna of the GNSS device used to receive the plurality of GNSS satellite signals based on the read first set of GNSS data and the second set of GNSS data, the method according to item 1. (Item 7) Calculating the value of the characteristic of the GNSS antenna includes: Calculating a first value of the characteristic with respect to a first GNSS satellite elevation angle; Calculating a second value of the characteristic that is different from the first value with respect to a second GNSS satellite elevation angle that is different from the first GNSS satellite elevation angle The method according to item 6, comprising the above. (Item 8) The method according to item 6, wherein the characteristic of the GNSS antenna is phase center variation. (Item 9) The method according to item 1, wherein the first set of GNSS data is read in response to a user input. (Item 10) The method according to item 1, wherein the first set of GNSS data is read in response to a determination that the position of the GNSS device has not been calculated properly over a predetermined amount of time. (Item 11) Receiving a third set of GNSS data corresponding to a third reference time point that is after the first and second reference time points, Calculating the position of the GNSS device based on the third set of GNSS data, Deferring storing the third set of GNSS data in the buffer The method according to item 1, further comprising the above. (Item 12) The method according to any one of items 1-11, wherein calculating the position of the GNSS device includes resolving carrier phase integer ambiguity for each of the plurality of GNSS satellite signals. (Item 13) The method according to any one of items 1-11, wherein calculating the position of the GNSS device is performed by a processor of the GNSS device that is a reduced instruction set computer. (Item 14) The method according to any one of items 1-11, wherein the GNSS device is a rover. (Item 15) A global navigation satellite system (GNSS) rover device, A buffer, A processing circuit, wherein Receiving a first set of GNSS data corresponding to a first reference time point, Storing the first set of GNSS data in the buffer, Receiving a second set of GNSS data corresponding to a second reference time point that is different from the first reference time point, When extended real-time kinematic (RTK) operation is not triggered, calculating the position of the GNSS rover device based on the second set of GNSS data without reading data from the buffer, When the extended RTK operation is triggered, calculating the position of the GNSS rover device based on the GNSS data read from the buffer A processing circuit for performing the above A device including (Item 16) When the extended RTK operation is not triggered, the processing circuit further Receives a third set of GNSS data corresponding to a third reference time point that is after the first and second reference time points, Calculates the position of the GNSS rover device based on the third set of GNSS data, And defers storing the third set of GNSS data in the buffer The GNSS rover device according to item 15, which is for performing the above. (Item 17) The processing circuit further clears the buffer based on a user input. The GNSS rover device according to item 15. (Item 18) The processing circuit further triggers the extended RTK operation in response to an input by the user. The GNSS rover device according to any one of items 15 - 17. (Item 19) The processing circuit further triggers the extended RTK operation in response to a determination that the position of the GNSS rover device has not been calculated properly for a predetermined amount of time. The GNSS rover device according to any one of items 15 - 17. (Item 20) The predetermined amount of time can be selected by the user. The GNSS rover device according to item 19.
Brief Description of the Drawings
[0019]
Figure 1
[0020]
Figure 2
[0021]
Figure 3
[0022]
Figure 4
[0023] In the following description, reference is made to the accompanying drawings, which form a part hereof and illustrate some embodiments of the principles disclosed herein. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present disclosure. The use of the same reference numerals in different drawings indicates similar or identical items.
DETAILED DESCRIPTION
[0024] Detailed Description The following description is presented to enable a person skilled in the art to make and use various embodiments. The description of specific devices, techniques, and applications is provided only as examples. Various modifications to the examples described herein will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other examples and applications without departing from the spirit and scope of the invention as claimed. Accordingly, the various embodiments are not intended to be limited to the examples described and shown herein, but should be accorded the scope consistent with the claims.
[0025] Today, the number of applications using GNSS information is increasing rapidly. For example, GNSS information is a valuable tool for geodesists. Geodesists generally use GNSS devices to determine the location of points of interest anywhere on or near the Earth. In many cases, these points of interest are located at remote destinations that are difficult to access. Therefore, a compact and easily portable positioning device is desired.
[0026] A GNSS receiver operates by receiving data from GNSS satellites. To achieve millimeter and centimeter level accuracy, at least two GNSS receivers are required. One receiver (e.g., a base station) is located on a site where its position is known. A second receiver (e.g., a rover) is located on a site whose position needs to be determined. Measurements from the first receiver are used to correct for GNSS system errors in the second receiver. In post-processing mode, data from both receivers can be stored and then transferred to a computer for processing. Alternatively, corrections from the first receiver, i.e., the known receiver, can be transmitted in real-time to the unknown receiver (via a wireless modem, Global System for Mobile Communications (GSM (registered trademark)), mobile phone, etc.), and the exact position of the unknown receiver can be determined in real-time.
[0027] Various embodiments are described below in relation to portable (e.g., handheld) GNSS devices. The GNSS device may include various sensors such as one or more cameras, distance sensors, and / or horizon sensors. A display element may also be included to assist the user in positioning the device without the aid of an external positioning device (e.g., a tripod or pole).
[0028] Figure 1 illustrates an exemplary GNSS device 100. The GNSS device 100 may utilize a single housing 102. Some GNSS elements may be integral with the housing 102 in that they are within or firmly mounted in the housing. The firmly mounted elements may be removable. The housing 102 may be configured to enable a user to hold the GNSS device 100 in a manner similar to how a typical camera is held. In one embodiment, the housing 102 may include a GNSS antenna cover 104 for covering a GNSS antenna that can receive signals transmitted by a plurality of GNSS satellites and used by the GNSS device 100 to determine a position. The GNSS antenna may be integral with the housing 102 in that it resides within the housing 102 under the GNSS antenna cover 104.
[0029] In one embodiment, the GNSS antenna may receive signals transmitted by at least four GNSS satellites. In the embodiment shown by FIG. 1, the GNSS antenna cover 104 is located on the upper side of the GNSS device 100. The GNSS device 100 further includes a cover for a communication antenna that is integral with the housing 102. In the embodiments disclosed herein, there may be three such communication antennas including GSM®, UHF, and Wifi / Bluetooth® antennas encapsulated directly under the cover for the communication antenna.
[0030] The GNSS device 100 may further include a display 112 for displaying information to assist the user in positioning the device. The display 112 may be any electronic display such as a liquid crystal (LCD) display, a light emitting diode (LED) display, and the like. Such display devices are well known to those skilled in the art, and any such device may be used. In the embodiment shown by FIG. 1, the display 112 is integral with the back side of the housing 102 of the GNSS device 100. Additional details regarding the GNSS device 100 can be found in U.S. Patent No. 2019 / 0353798 (「Total Station with GNSS Device」), the content of which is incorporated herein by reference in its entirety).
[0031] Figure 2 illustrates an exemplary logic diagram showing the relationships between various components of the implementation of the portable GNSS device 100. In one embodiment, the GNSS receiver 200 receives GNSS satellite signals from GNSS satellites (e.g., GPS, GLONASS, Galileo, and / or BeiDou satellites) via the GNSS antenna 201. Each GNSS satellite signal may contain two pseudo-noise (“PN”) code components, i.e., a coarse code and a precise code, that reside on orthogonal carrier components, which may be used by the GNSS receiver 200 to determine the position of the GNSS receiver. For example, a typical GNSS satellite signal may include a carrier signal modulated by two PN code components. The frequency of the carrier signal may be satellite-specific. Thus, each GNSS satellite may transmit GNSS satellite signals at different frequencies. The GNSS antenna 201 may be provided as part of the GNSS device 100 (which may be within the housing 102), or may be an external antenna connected to the GNSS device (e.g., via an SMA connector). The GNSS receiver 200 may produce measurements of GPS satellite signals (e.g., code phase measurements, carrier phase measurements, Doppler measurements, and / or signal strength measurements) to be used by the processor 230 for position calculation and / or to be stored in the buffer 260.
[0032] The GNSS device 100 may include processor-executable instructions stored in the memory 240 for performing position calculations (e.g., for performing process 300 or 400, which is described in more detail below with respect to FIGS. 3 and 4). The instructions may be executable by one or more processors such as the processor 230. However, those skilled in the art will also recognize ways to implement the current technology using other computer systems or architectures. The processor 230 may be implemented using a general or special purpose processing engine such as, for example, a microprocessor, a microcontroller, or other control logic. As discussed below, the processor 230 may be implemented using a reduced instruction set computer (RISC) architecture. In the embodiment of FIG. 2, a bus 250 transports data and instructions between the processor 230, which may be in a non-volatile (e.g., flash) RAM, a disk storage device, a USB drive, etc., the memory 240, and the buffer 260.
[0033] The memory 240 may include a read-only memory ("ROM") or other static storage device coupled to the bus 250 for storing static information and instructions regarding the processor 230. The memory 240 may also include a random access memory (RAM) or other dynamic memory for storing information and instructions to be executed by the processor 230. The memory 240 may also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by the processor 230.
[0034] The GNSS device 100 may further include a communication receiver 220 that receives GNSS data from one or more other GNSS devices (e.g., from a base station) via a communication antenna 225. The received GNSS data may include measurements of GPS satellite signals (e.g., code phase measurements, carrier phase measurements, Doppler measurements, and / or signal strength measurements) as received by other GNSS devices, which may be used by the processor 230 for position calculations and / or stored in the buffer 260. The communication receiver 220 may receive GNSS data over a communication channel such as, for example, a cellular phone link, an RF (e.g., UHF) link, or a Wi-Fi or other wireless network link. In one embodiment, the communication receiver 220 receives GNSS data in the form of RTCM messages. The communication receiver 220 may also receive additional information for position calculations, such as the position of the base station (or of each of the other GNSS devices providing GNSS data), e.g., in the form of coordinates.
[0035] In some embodiments, at least the GNSS receiver 200, the processor 230, the memory 240, and the bus 250 may be included within a handheld GNSS device similar or identical to that described in U.S. Patent Application No. 12 / 871,705, filed August 30, 2010, issued as U.S. Patent No. 8,125,376, and assigned to the assignee of the present application, which is hereby incorporated by reference in its entirety. For example, the handheld GNSS device may include a display, an orientation sensor, a distance sensor, a camera, a compass, and the like, coupled to the GNSS receiver 200 and / or the processor 230.
[0036] The GNSS device 100 may be configured to receive GNSS signals from one or more satellite GNSS signal sources. The GNSS signals received from the satellites can include a predetermined code sequence that is repeated. A timer on both the GNSS device 100 and the satellite GNSS signal source is used to calculate the distance between the GNSS device 100 and the satellite GNSS signal source. For example, the GNSS signal may have a predetermined sequence known to both the GNSS device 100 and the satellite GNSS signal source. Based on when the sequence is transmitted by the satellite GNSS signal source, when the same sequence is received by the GNSS device 100, the time of flight (which may be based on the speed of light), i.e., the distance between the GNSS device 100 and the satellite GNSS signal source, can be calculated.
[0037] The carrier phase of the received GNSS satellite signal includes very short repetitions and can provide high phase differences and / or distance accuracy, but the complete cycles may not contain sufficient information to determine the number separating the GNSS device 100 and the satellite GNSS signal source. The code phase of the received GNSS satellite signal may not have sufficient granularity to estimate the distance with sufficient accuracy without knowledge of the carrier phase of the signal. For example, the carrier phase may enable a horizontal granularity of 1 millimeter, while the code phase may only enable a horizontal granularity of 1 meter.
[0038] The carrier phase of the received GNSS satellite signal can be used to quickly estimate the phase difference (and thus a component of the distance from the satellite signal source), but the number of cycles of the carrier signal between the GNSS device 100 and the satellite GNSS signal source cannot be known (an unknown integer, also referred to as, for example, "carrier phase integer ambiguity"). In some embodiments, once the code phase of the GNSS satellite signal is obtained / interpreted, the GNSS device can be considered to be "locked" to the originating satellite GNSS signal source. Determining the RTK solution can include the process of obtaining / interpretating the carrier phase and code phase of the GNSS satellite signal to determine the distance from the satellite GNSS signal source. In some embodiments, determining the RTK solution can include identifying a point in three-dimensional space based on the distance estimated from the satellite GNSS signal source (which may have a known location and / or orbit). In some embodiments, the RTK solution can be reached more quickly and / or be more accurate as the number of detectable satellite GNSS signal sources increases.
[0039] As part of calculating an RTK solution, the GNSS device 100 may receive one or more correction signals from a base station (e.g., via the communication receiver 220 as described above). The base station may be installed at a known and / or fixed location and may be configured to receive GNSS signals from one or more satellite GNSS signal sources. Since the base station may be installed at a known and / or fixed location, one or more corrections (e.g., position corrections) may be determined based on the position calculated from the GNSS signals and the known and / or fixed position. The corrections may be used to offset inaccuracies in clock measurements (e.g., between the GNSS device and the satellite), ionospheric effects on the GNSS signals, or other sources of error. The RTK solution may be used to estimate the position of the GNSS device 100 using the GNSS signals received by the GNSS device 100 and / or the correction data received from the base station. Additional information regarding RTK solutions can be found in U.S. Patent No. 8,120,527 (“Satellite Differential Positioning Receiver Using Multiple Base-Rover Antennas”), U.S. Patent No. 8,872,700 (“GNSS Surveying Receiver with Multiple RTK Engines”), U.S. Patent No. 10,281,588 (“GNSS Surveying Using RTK Engine Verification”), U.S. Patent No. 10,408,944 (“Hybrid RTK”) (the contents of which are hereby incorporated by reference in their entirety for the purpose of disclosing additional information regarding RTK solutions).
[0040] In some embodiments, a GNSS rover device (e.g., GNSS device 100) can support a post - processing mode, an RTK mode, an extended RTK mode, or any combination thereof. In the extended RTK mode, the GNSS device can continue to perform RTK calculations, and RTPK (Real - Time Post - Processing Kinematic) operations can also be triggered manually or automatically. The RTPK technique provides the benefits of both the post - processing mode and the RTK mode by bringing post - processing techniques online within the rover data combined with RTK.
[0041] Using the post - processing mode, the 3 - D position of the GNSS rover device can be determined in an accurate manner at a base station or on a computer separate from the rover device. In the post - processing mode, GNSS data, including data from the base station (e.g., correction data) and data from the rover station (e.g., GNSS signals received at the rover), is recorded. Both data are transferred to a computer (e.g., a remote computer or server) and processed via batch processing to calculate the position of the rover. The data being batch - processed is not limited to one reference time point; rather, it can span multiple reference time points. For example, the data being batch - processed can include GNSS signals from multiple reference time points and base data (e.g., correction data) from multiple reference time points. In this mode, all the recorded data is available to the processing engine, which can iterate back and forth through many cycles (e.g., perform forward and reverse Kalman filtering (e.g., smoothing)) and inspect all the data together from start to finish. Thus, the processing engine can more easily isolate bad data (e.g., measurements from reflected GNSS satellite signals) and result in an accurate estimation of the position of the GNSS device.
[0042] Using the RTK mode, an RTK solution is calculated at the rover for each reference time point based only on the most recent observation reference time point of the GNSS data, which can include base data (e.g., transmitted from the base to the rover) and rover data (e.g., GNSS signals received at the rover). Previous GNSS data, including previous base data and rover data (i.e., from the reference time point before the most recent reference time point), is not used directly. Rather, the previous base data and rover data are used in an indirect and cumulative manner. For example, in a Kalman filter approach, the previous data can be used to shape the filter and improve the capabilities of the RTK engine (e.g., launched on one or more processors of the GNSS device 100) to find the RTK solution. However, the RTK engine does not have direct access to the previous data. In other words, RTK has access only to the GNSS data corresponding to the most recent reference time point. The previous GNSS data is discarded once its effect has been accumulated (e.g., by updating the filter state of the Kalman filter). The device cannot access the previous GNSS data back in the RTK mode.
[0043] The most recent reference time can refer to the most recent observation period (e.g., time window) during which base data and rover data are collected. RTK is an incremental process during which data continues to be collected between multiple reference times while the GNSS device attempts to generate an RTK solution. The length of the reference time can depend on environmental factors and the distance between the base and the rover. For example, if the sky is not blocked by trees or buildings, 1 second or a few seconds may be sufficient as the reference time. As another example, if the distance between the base and the rover is relatively far, the reference time may be relatively long. This is because the sky is blocked (e.g., by trees), and satellite signals bounce off buildings, so some data may be corrupted and thus need to be isolated and excluded from the calculation. In such scenarios, more data may be required, and the reference time can be set longer.
[0044] The post-processing mode and the RTK mode have their individual advantages and disadvantages. Post-processing can, in part, provide a more accurate estimate than RTK because post-processing uses more data (i.e., from multiple reference times), while RTK uses only data from the most recent reference time. However, post-processing occurs on a computer separate from the base station and the rover station and thus does not provide a solution in real-time fashion. If the GNSS data collected on-site is inappropriate for supporting post-processing, the user may not discover this inadequacy until returning from the measurement site, which can require the inconvenience of returning to the site to collect more data. The advantage of RTK is that the user obtains a solution within the field and does not need to request base and rover data to another computer and process it later. However, the RTK solution may not be as accurate as the post-processing solution because the RTK solution is based only on data from the most recent reference time. Therefore, it may be desirable to integrate RTK techniques and post-processing techniques so that the position can be accurately resolved in real-time using extended RTK and a separate computing device may not be required for the benefits of post-processing.
[0045] RTPK is an extended RTK mode. In the RTPK mode, RTK calculations can continue to be performed at the rover, but the RTPK operation can be triggered manually or automatically at the rover. The RTPK operation utilizes more GNSS data than the GNSS data from the most recent reference time point and processes the GNSS data recorded in batch processing through multiple cycles at the rover. In some embodiments, base data spanning and obtained across multiple reference time points is transmitted from the base unit to the rover unit. The rover has access to the GNSS data and batch processes it, which includes both base data and rover data from multiple reference time points and can provide results in near real-time (as opposed to post-processing that provides results, for example, hours later at another location). In the RTPK mode, the processing engine can progress back and forth through many cycles from the beginning to the end of the buffered data (for example, perform forward and reverse Kalman filtering (for example, smoothing)). In the RTPK mode, the processing engine can also estimate and apply one or more parameters of the antenna calibration table, such as phase center variation (PCV) parameters, which identify the amount by which the electrical phase center of the antenna moves in response to changes in satellite position (for example, elevation, azimuth). Thus, the processing engine can more easily isolate bad data (for example, measurements from reflected GNSS satellite signals) and produce an accurate estimate of the position of the GNSS device.
[0046] Rather than requiring a separate computer, the RTPK operation can provide a location estimate in a rover in the field. In other words, the RTPK operation can combine the computational advantages of post-processing (e.g., having access to data at multiple reference times for batch processing) with the operational advantages of standard RTK (e.g., the convenience of calculating a solution in the rover). One of the main benefits of RTPK can be to provide both forward and reverse data processing (e.g., Kalman filtering). Another main benefit of RTPK can be to provide solution verification, which is an important issue in real-time processing. Conventional RTK processors separate the data stream into two or three sets of data (e.g., GPS+GLONASS, Beidou+Galileo) and process these data sets independently. If the solutions from different data sets do not match each other, the RTK process continues to search for a solution (e.g., at the next reference time). In contrast, RTPK may use a different type of verification. Instead of separating the data into blocks, for example, RTPK may use a partial search procedure to compare different candidate solutions for verification. This procedure may include determining the best solution by ignoring satellites one by one to determine which satellite signals are poor and should be rejected. Solutions for many different sets of satellites may be evaluated, and measurements from a particular satellite may be used in many different candidate solutions. Iteration through the buffered data in this way (e.g., until a solution with maximum contrast is identified) can provide more flexibility in the ambiguity search process.
[0047] In some embodiments, a GNSS device (e.g., GNSS device 100) provides a user interface that presents an RTPK mode. The user interface can include a hardware or software button classified as "RTPK". When a user selects the button (e.g., via a tap, long click, etc.), the device displays an RTPK parameter screen. The RTPK parameter screen may provide a plurality of options such as an OFF option, a MANUAL option, and one or more N-MINUTE options (e.g., 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 6 minutes, 7 minutes, 8 minutes, 9 minutes, 10 minutes, 15 minutes, 20 minutes) and / or M-SECOND options (e.g., 10 seconds, 30 seconds, 90 seconds, 120 seconds, 180 seconds). These options may define how the RTPK operation can be triggered and / or configured.
[0048] The selection of the N-MINUTE option allows data to be processed in the RTPK buffer that should initiate (e.g., trigger) the RTPK operation when a period of N minutes elapses without a successful RTK solution. Similarly, the selection of the M-SECOND option allows data within the RTPK buffer that should initiate (e.g., trigger) the RTPK operation to be processed when a period of M seconds elapses without a successful RTK solution. For example, if the user selects the N-MINUTE option of 5 minutes, the GNSS device 100 continuously receives GNSS data, which includes GNSS signals and / or base station data (e.g., correction data), and may attempt to calculate an RTK solution based on the GNSS signals and / or base station data corresponding to the most recent reference time point. If the GNSS device 100 is unable to calculate an RTK solution based on the most recent reference time point, a new set of GNSS signals and / or base station data may be received and the calculation may be attempted again. The previous set of GNSS signals and / or base station data may be stored in memory (e.g., the designated RTPK buffer). After the selected threshold of 5 minutes, if an RTK solution cannot be calculated using the most recent reference time point, the GNSS device 100 triggers the RTPK operation. In some embodiments, the GNSS device 100 may use post-processing techniques to calculate a location solution using GNSS signals and / or base station data corresponding to multiple reference time points. For example, the GNSS device 100 may use some or all of the GNSS signals and / or base station data received and / or stored in the buffer up to that point to calculate a location estimate. RTPK can be performed in a short time (e.g., less than 3 seconds), which can vary depending on the number of GNSS signals stored in the buffer. Depending on the processor, for example, the ratio of the calculation time (the time required to calculate the RTPK solution) to the observation time (the period over which the buffered data was measured) can be between 1:20 and 1:60. The current progress of RTPK can be presented to the user (e.g., using a visual progress bar on the display 112).
[0049] During RTPK operation, GNSS device 100 may continue to receive new GNSS signals and / or base station data in parallel and may continue to attempt to calculate an RTK solution based on the most recent reference time point in parallel. In some embodiments, GNSS device 100 may pause attempting to calculate an RTK solution using the most recent reference time point while RTPK is being performed. In some embodiments, GNSS device 100 may indicate (e.g., visually on a display such as display 112 or auditorily using a speaker) that a position estimate is being calculated. In some embodiments, GNSS device 100 may indicate whether a position estimate is being calculated using and / or derived from RTK and the most recent reference time point or using RTPK. The position estimate (regardless of origin) may be automatically approved by GNSS device 100 and displayed to the user.
[0050] If the device is unable to determine a solution based on data from the RTPK buffer, the device may resume RTK from the point of interruption for another N minutes while adding data to the RTPK buffer. The process may continue until either a solution is found by either RTK or RTPK or is stopped (e.g., by input from the user). Automatic approval may be applied to both solutions.
[0051] When the user selects the "MANUAL" option, the RTPK operation can be triggered manually by the user. In some embodiments, the GNSS device 100 may continuously receive GNSS signals and / or base station data and attempt to calculate an RTK solution based on the GNSS signals and / or base station data corresponding to the most recent reference time point. If the GNSS device 100 is unable to calculate an RTK solution based on the most recent reference time point, a new set of GNSS signals and / or base station data may be received and the calculation may be attempted again. The previous set of GNSS signals and / or base station data may be stored in memory (e.g., a buffer). This cycle may be repeated until user input is received (e.g., the user may press a physical or virtual button corresponding to RTPK). In response to receiving user input, the GNSS device 100 may start calculating the RTPK solution. In some embodiments, the GNSS device 100 may use post-processing techniques to calculate a location estimate using GNSS signals and / or base station data corresponding to multiple reference time points. For example, the GNSS device 100 may use some or all of the GNSS signals and / or base station data received up to that point and / or stored in the buffer to calculate a location solution. RTPK may be performed in a short time (e.g., less than 3 seconds), which may vary depending on the number of GNSS signals and / or base station data stored in the buffer. The current progress of RTPK can be presented to the user (e.g., using a visual progress bar on the display 112).
[0052] During the RTPK operation, the GNSS device 100 may continue to receive new GNSS signals and / or base station data in parallel and may continue to attempt to calculate an RTK solution based on the most recent reference time point in parallel. In some embodiments, the GNSS device 100 may pause attempting to calculate an RTK solution using the most recent reference time point while RTPK is being performed.
[0053] If the device is unable to determine a solution based on the data from the RTPK buffer, RTK resumes from where it left off (or continues as if it had been in the background), and the device can continue to add base and rover data to the RTPK buffer (e.g., in response to another user initiation) for future RTPK processing.
[0054] In some embodiments, the GNSS device 100 may indicate (e.g., visually on a display or auditorily using a speaker) that a position estimate is being calculated. In some embodiments, the GNSS device 100 may indicate whether the position estimate is being calculated using and / or derived from RTK and the most recent reference time point, or using RTPK. The position estimate (regardless of its origin) may be automatically approved by the GNSS device 100 and presented to the user. In some embodiments, the position estimate and its origin may be presented to the user, and the user may select to approve or deny the position estimate. In some embodiments, approving the estimate may result in storing the position estimate in memory, and the RTPK buffer may be cleared. In some embodiments, denying the position estimate may result in restarting RTK using the most recent reference time point or RTPK, and the RTPK buffer may be cleared. In some embodiments, a stop button is available to stop all calculations (e.g., RTK and RTPK), and the RTPK buffer can be cleared.
[0055] When "OFF" is selected, the RTPK mode can be deactivated. In summary, in some embodiments of the present disclosure, a device (e.g., a GNSS rover device) records base data and rover data in real time. The device processes the data recorded in the device in real time or substantially in real time (in one example, at an acceleration rate of 60 times the period over which the buffered data was measured). Even if the RTK technique fails, the RTPK operation can be triggered to process the data in the device. Since RTPK has access to all previous data in the buffer, the RTPK operation has more flexibility than RTK and is in real time or substantially in real time (e.g., with a delay of a fraction of a second). In some embodiments, the RTK solution and the RTPK solution can be compared in the device (e.g., in the field) for verification purposes.
[0056] Figure 3 illustrates a process 300 for calculating the position of a GNSS device (e.g., a GNSS rover device) according to various embodiments. Process 300 is implemented, for example, using an electronic device (e.g., a GNSS rover device). For example, process 300 may be implemented by a processing circuit (e.g., one or more processors such as processor 230) of the GNSS rover device. In process 300, some blocks are optionally combined, the order of some blocks is optionally changed, and some blocks are optionally omitted. In some embodiments, additional steps may be implemented in combination with process 300. Thus, the operations as illustrated (and described in more detail below) are exemplary in nature and should not be considered as limiting.
[0057] In block 304, the GNSS device receives a first set of GNSS data corresponding to a first reference time point. The first set of GNSS data comprises both GNSS signals received by the GNSS device and base station data (e.g., correction data). For example, the first set of GNSS data includes a first measurement of a plurality of GNSS satellite signals with respect to the first reference time point, the first measurement being performed at the GNSS device, and includes a second measurement of the plurality of GNSS satellite signals, the second measurement being receivable from another GNSS device (e.g., a base station). The first and second measurements may include code phase measurements and carrier phase measurements for each of the plurality of GNSS satellite signals. The first and second measurements may include Doppler measurements and / or signal strength for each of the plurality of GNSS satellite signals. The plurality of GNSS satellite signals may be from satellites of only one constellation (e.g., GPS, GLONASS, Galileo, BeiDou, QZSS (Japan), NAVIC / IRNSS (India)), or may be from satellites of two or more constellations. The plurality of GNSS satellite signals may be within one frequency band (e.g., the L1 or E1 band), or may be from two or more different frequency bands.
[0058] In block 308, the GNSS device stores the first set of GNSS data in a buffer (e.g., within system memory (dynamic or static RAM), non-volatile (e.g., flash) RAM, disk storage, USB drive, etc.). In block 312, the GNSS device receives a second set of GNSS data corresponding to a second reference time point that is after the first reference time point. The second set of GNSS data comprises both GNSS signals received by the GNSS device and base station data (e.g., correction data). For example, the second set of GNSS data may include the first and second measurements of the plurality of GNSS satellite signals at the second reference time point, as described above.
[0059] In block 316, after receiving the second set of GNSS data, the GNSS device reads out the first set of GNSS data from the buffer. In block 320, the GNSS device calculates the position of the GNSS device (e.g., latitude, longitude, and altitude) based on the read-out first set of GNSS data and the second set of GNSS data. Calculating the position of the GNSS device may also be based on other data such as, for example, the position of a base station (e.g., base station coordinates), the rover antenna type, and / or height.
[0060] Calculating the position of the GNSS device may include resolving carrier phase integer ambiguities for each of a plurality of GNSS satellite signals. Calculating the position of the GNSS device may include calculating a corresponding filter state (e.g., the corresponding filter state of a Kalman filter) with respect to a first reference time point and then updating the filter state calculated with respect to the first reference time point using information from the second set of GNSS data. Calculating the position of the GNSS device may include calculating a first solution and calculating a second solution, the first solution being based on measurements of a first one of a plurality of GNSS satellite signals and measurements of a second one of the plurality of GNSS satellite signals, and the second solution being based on measurements of the first one of the plurality of GNSS satellite signals and not based on measurements of the second one of the plurality of GNSS satellite signals.
[0061] Additionally, or alternatively, calculating the position of the GNSS device may include calculating a value of the characteristics of the GNSS antenna of the GNSS device used to receive a plurality of GNSS satellite signals based on the read first set of GNSS data and the second set of GNSS data. Calculating such a value of the antenna characteristics may include calculating a first value of the characteristics related to the first GNSS satellite elevation angle and calculating a second value of the characteristics different from the first value related to a second GNSS satellite elevation angle different from the first GNSS satellite elevation angle. In one embodiment, the antenna characteristic is phase center variation, which identifies the amount by which the electrical phase center of the antenna moves in response to changes in the satellite position (e.g., elevation angle, azimuth angle). In another embodiment, the antenna characteristic is frequency dependence of the phase center.
[0062] Calculating the position of the GNSS device may be performed by a processor of the GNSS device (e.g., rover device) having a reduced instruction set computer (RISC) architecture (e.g., ARM processor) as opposed to a processor having a complex instruction set computer (CISC) architecture (e.g., Intel processor or other implementation of the x86 architecture). The ARM processor may include implementations of the ARM architecture such as, for example, ARMv7, ARMv8, ARMv9, or variations thereof.
[0063] In some embodiments, process 300 is performed by a GNSS rover device in extended RTK mode. In some embodiments, the process further includes receiving a set of GNSS data corresponding to the most recent reference time point, calculating the location of the GNSS rover device based on the set of GNSS data, and deferring storing the set of GNSS data in a buffer in a GNSS rover device in standard RTK mode.
[0064] In some embodiments, the first set of GNSS data is read in response to user input.
[0065] In some embodiments, the first set of GNSS data is read in response to a determination that the location of the GNSS rover device has not been successfully computed over a predetermined amount of time.
[0066] FIG. 4 illustrates a process 400 for computing the position of a GNSS device (e.g., a GNSS rover device) according to various embodiments. The process 400 is implemented using, for example, an electronic device (e.g., a GNSS rover device). For example, the process 400 may be implemented by a processing circuit (e.g., one or more processors such as the processor 230) of the GNSS rover device. In process 400, some blocks may be optionally combined, the order of some blocks may be optionally varied, and some blocks may be optionally omitted. In some embodiments, additional steps may be implemented in combination with process 400. Thus, the operations as illustrated (and described in more detail below) are exemplary in nature and, accordingly, should not be considered as limiting.
[0067] At block 404, the GNSS device receives a first set of GNSS data corresponding to a first reference time point (as described herein with reference to block 304, for example). At block 408, the GNSS device stores the first set of GNSS data in a buffer (as described herein with reference to block 308, for example). At block 412, the GNSS device receives a second set of GNSS data corresponding to a second reference time point different from the first reference time point (as described herein with reference to block 312, for example). At block 416, if the extended RTK operation is not triggered, the GNSS device calculates the position of the GNSS rover device based on the second set of data (for example, by calculating an RTK solution) without reading data from the buffer. At block 420, if the extended RTK operation is triggered, the GNSS device calculates the position of the GNSS rover device based on the data read from the buffer (as described herein with reference to block 320, for example).
[0068] In some embodiments, process 400 further includes receiving a set of GNSS data corresponding to the nearest reference time point in a GNSS rover device in standard RTK mode, calculating the position of the GNSS rover device based on the set of GNSS data, and deferring storing the set of GNSS data in a buffer.
[0069] In some embodiments, the extended RTK operation is triggered by an input by the user.
[0070] In some embodiments, the extended RTK operation is triggered by a determination that the location of the GNSS rover device has not been calculated properly for a predetermined amount of time.
[0071] In some embodiments, the predetermined amount of time is selectable by the user.
[0072] In some embodiments, process 400 further includes clearing the buffer based on user input.
[0073] For the sake of clarity, it should be understood that the above description has been presented with reference to different functional units and processors to describe the embodiments. However, it will be apparent that any suitable distribution of functionality between different functional units, processors, or domains may be used. For example, the functionality shown to be performed by separate processors or controllers may be performed by the same processor or controller. Thus, references to specific functional units should be understood only as references to suitable means for providing the described functionality, and not as indicating a strict logical or physical structure or organization.
[0074] Any of the methods or processes disclosed herein may be implemented as one or more non-transitory computer-readable media including instructions executable by one or more processors (e.g., processor 230) to cause a GNSS device (e.g., GNSS rover, GNSS device 100) to perform such methods or processes. Further, although individually recited, a plurality of means, elements, or method steps may be implemented, for example, by a single unit or processor. Additionally, individual features may be included in different claims, but these may, potentially advantageously, be combined, and inclusion in different claims does not imply that a combination of features is not practicable or advantageous. Also, inclusion of a feature in one category of claims does not imply limitation to this category, rather the feature may equally be applicable, if desired, to other claim categories.
[0075] Although features may be described in relation to particular embodiments, those skilled in the art will recognize that the various features described may be combined. Further, aspects described in relation to one embodiment may be effective alone.
Claims
1. A method for calculating the position of a GNSS device configured to receive a plurality of Global Navigation Satellite System (GNSS) satellite signals, the method comprising: receiving a first set of GNSS data corresponding to a first reference time point; calculating a corresponding filter state with respect to the first reference time point; storing the first set of GNSS data in a buffer; receiving a second set of GNSS data corresponding to a second reference time point after the first reference time point; after receiving the second set of GNSS data, reading the first set of GNSS data from the buffer; calculating the position of the GNSS device based on the read first set of GNSS data and the second set of GNSS data; updating the calculated filter state with respect to the first reference time point using information from the second set of GNSS data A method comprising the above.
2. The first set of GNSS data and the second set of GNSS data each include a first measurement of the plurality of GNSS satellite signals, the first measurement being a first measurement of the plurality of GNSS satellite signals performed at the GNSS device, and a second measurement of the plurality of GNSS satellite signals, the second measurement being a second measurement of the plurality of GNSS satellite signals received from another GNSS device The method according to claim 1.
3. The first measurement includes a code phase measurement and a carrier phase measurement, The second measurement includes a code phase measurement and a carrier phase measurement, The method according to claim 2.
4. The method according to claim 3, wherein the first measurement includes a Doppler measurement and the second measurement includes a Doppler measurement.
5. Calculating the position of the GNSS device includes calculating a value of a characteristic of the GNSS antenna of the GNSS device used to receive the plurality of GNSS satellite signals based on the read first set of GNSS data and the second set of GNSS data. The method according to claim 1.
6. Calculating the value of the characteristic of the GNSS antenna includes Calculating a first value of the characteristic regarding a first GNSS satellite elevation angle; and Calculating a second value of the characteristic different from the first value regarding a second GNSS satellite elevation angle different from the first GNSS satellite elevation angle The method according to claim 5, comprising:
7. The characteristic of the GNSS antenna is phase center variation. The method according to claim 5.
8. The first set of GNSS data is read in response to user input. The method according to claim 1.
9. The first set of GNSS data is read in response to a determination that the position of the GNSS device has not been calculated properly over a predetermined amount of time. The method according to claim 1.
10. Receiving a third set of GNSS data corresponding to a third reference time point after the first and second reference time points; Calculating the position of the GNSS device based on the third set of GNSS data; Deferring storing the third set of GNSS data in the buffer The method according to claim 1, further comprising:
11. Calculating the position of the GNSS device includes resolving carrier phase integer ambiguity for each of the plurality of GNSS satellite signals, the method according to any one of claims 1-10.
12. Calculating the position of the GNSS device is performed by a processor of the GNSS device that is a reduced instruction set computer, the method according to any one of claims 1-10.
13. The GNSS device is a rover, the method according to any one of claims 1-10.
14. A global navigation satellite system (GNSS) rover device, A buffer, A processing circuit, Receiving a first set of GNSS data corresponding to a first reference time point, Calculating a corresponding filter state with respect to the first reference time point, Storing the first set of GNSS data in the buffer, Receiving a second set of GNSS data corresponding to a second reference time point different from the first reference time point, When the extended real-time kinematic (RTK) operation is not triggered, calculating the position of the GNSS rover device based on the second set of GNSS data without reading data from the buffer, When the extended RTK operation is triggered, calculating the position of the GNSS rover device based on the GNSS data read from the buffer, Updating the calculated filter state with respect to the first reference time point using information from the second set of GNSS data And a processing circuit for performing A device comprising.
15. The processing circuit further includes when the extended RTK operation is not triggered, Receiving a third set of GNSS data corresponding to a third reference time point that is after the first and second reference time points; Calculating the position of the GNSS rover device based on the third set of GNSS data; Deferring storing the third set of GNSS data in the buffer; The GNSS rover device according to claim 14, which is for performing the above.
16. The processing circuit is further for clearing the buffer based on a user input. The GNSS rover device according to claim 14.
17. The processing circuit is further for triggering the extended RTK operation in response to an input by a user. The GNSS rover device according to any one of claims 14 - 16.
18. The processing circuit is further for triggering the extended RTK operation in response to a determination that the position of the GNSS rover device has not been calculated properly for a predetermined amount of time. The GNSS rover device according to any one of claims 14 - 16.
19. The predetermined amount of time is selectable by a user. The GNSS rover device according to claim 18.
20. A method for calculating the position of a Global Navigation Satellite System (GNSS) device, the method comprising: Receiving a first set of GNSS data corresponding to a first reference time point; Storing the first set of GNSS data in a buffer; Receiving a second set of GNSS data corresponding to a second reference time point that is after the first reference time point; After receiving the second set of GNSS data, reading out the first set of GNSS data from the buffer; Calculating the position of the GNSS device based on the read first set of GNSS data and the second set of GNSS data including The first set of GNSS data is read in response to a determination that the position of the GNSS device has not been calculated properly over a predetermined amount of time. **Claim 21**: A global navigation satellite system (GNSS) rover device, a buffer, a processing circuit, receiving a first set of GNSS data corresponding to a first reference time point, storing the first set of GNSS data in the buffer, receiving a second set of GNSS data corresponding to a second reference time point different from the first reference time point, when the extended real-time kinematic (RTK) operation is not triggered, calculating the position of the GNSS rover device based on the second set of GNSS data without reading data from the buffer, when the extended RTK operation is triggered, calculating the position of the GNSS rover device based on the GNSS data read from the buffer and a processing circuit for performing including The processing circuit is further for triggering the extended RTK operation in response to a determination that the position of the GNSS rover device has not been calculated properly over a predetermined amount of time.
Citation Information
Patent Citations
Interference position measurement method for gps
JP1995190769A
System for positioning for satellite navigation, and method of positioning-computing satellite
JP2003098245A
Relative positioning device
JP2005321362A
Carrier phase positioning system
JP2009025233A
GNSS survey receiver with multiple RTK engines
JP2014516408A