Positioning method and computer program product
By using multiple calculation modules sorted by accuracy in the positioning device, the problem of positioning failure caused by satellite signal interference or obstruction is solved, and the positioning success rate is improved in unstable signal environments.
Patent Information
- Application Number
- CN202110221210.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-02-26
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2041-02-26
AI Technical Summary
Existing positioning equipment struggles to consistently and stably obtain high-precision positioning when satellite signals are interfered with or blocked, leading to positioning failures.
Multiple location calculation modules were tested in descending order of accuracy, including a GNSS single-point location calculation module, a missing TOW location calculation module, a coarse three-satellite location calculation module, and a two-satellite location calculation module. The appropriate calculation mode was selected by decoding the satellite signals to obtain the positioning position.
In situations with poor satellite signals, the positioning success rate of the positioning device was improved by trying multiple solution modules step by step, ensuring that a lower-precision positioning position could still be obtained even when a high-precision position could not be obtained.
Smart Images

Figure CN114966768B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, specifically to a positioning method and a computer program product. Background Technology
[0002] With the development of technology, positioning technology has been widely used. Currently, positioning devices typically support satellite positioning, that is, positioning the device based on satellite signals received from satellites. In some scenarios, satellite signals are frequently interfered with or blocked, which can easily lead to the positioning device not receiving consistently high-quality satellite signals, thus resulting in the inability to obtain the device's location at certain times. Therefore, how to ensure the continuous acquisition of the positioning device's location is one of the technical problems that needs to be solved in this field. Summary of the Invention
[0003] This disclosure provides a positioning method and a computer program product.
[0004] In a first aspect, this disclosure provides a positioning method, which includes:
[0005] Acquire satellite signals received by the positioning device from the positioning satellite;
[0006] Decode the satellite signals;
[0007] In descending order of position calculation accuracy, the position calculation module corresponding to the position calculation accuracy is triggered to determine the target positioning position of the positioning device based at least on the decoding result. If the current position calculation module cannot successfully calculate the target positioning position, the next position calculation module is triggered.
[0008] Furthermore, in order of decreasing position calculation accuracy, the position calculation modules are: GNSS single-point position calculation module, missing TOW position calculation module, coarse three-star position calculation module, and two-star position calculation module.
[0009] Furthermore, the GNSS single-point position calculation module is used to determine the target positioning position of the positioning device by using the classic GNSS single-point calculation algorithm when decoding the complete satellite signals of at least four satellites.
[0010] Furthermore, the missing TOW position calculation module is used to decode the signal transmission time corresponding to fewer than four satellites, but decode the code phase measurement value corresponding to at least five satellites. The target positioning position is determined based on the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement value.
[0011] Furthermore, the initial coarse time is used as the satellite signal transmission time of the at least five satellites. The step of calculating the target positioning position based on the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement value includes: correcting the position, coarse time, and device time of the positioning device based on the initial position, initial coarse time, reception time of the satellite signal on the positioning device, code phase measurement value of the at least five satellites, and ephemeris, until the correction term is less than or equal to a preset first threshold.
[0012] The position corrected using the aforementioned correction term is determined as the GNSS positioning position of the positioning device.
[0013] Furthermore, the coarse time three-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value when the complete satellite signal of less than four satellites is decoded, but the code phase measurement value of less than five satellites is decoded, and the code phase measurement value is greater than or equal to three satellites.
[0014] Further, determining the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value includes:
[0015] For each of at least three satellites, within a first preset time range corresponding to the initial coarse time, a candidate coarse time for the positioning device at the initial reference position is determined;
[0016] At the plurality of reference locations, the candidate positioning position of the positioning device at the candidate coarse time is determined;
[0017] Within a second preset time range corresponding to the candidate coarse time, the positioning device determines the target coarse time corresponding to the satellite at the candidate positioning location;
[0018] Within the first preset position range corresponding to the candidate positioning position, the target positioning position of the positioning device under the target coarse time is determined.
[0019] Furthermore, the dual-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device when decoding complete satellite signals of at least two but less than four satellites.
[0020] Further, determining the target positioning location based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device includes: determining the geographical altitude of the positioning device's location based on the initial position of the positioning device; determining candidate positioning locations of the positioning device based on the geographical altitude and the multiple reference positions; and determining the target positioning location of the positioning device within a second preset position range corresponding to the candidate positioning locations.
[0021] Furthermore, before triggering the position calculation module corresponding to the position calculation accuracy in descending order of position calculation accuracy to determine the target positioning position of the positioning device based at least on the decoding result, the method further includes: selecting one satellite from the plurality of satellites as a reference satellite and the other satellites as non-reference satellites; determining invalid satellites from the non-reference satellites based on the reference satellite; and filtering out the decoding results corresponding to the invalid satellites.
[0022] Secondly, this disclosure provides a positioning device, comprising: a first acquisition module configured to acquire satellite signals received by the positioning device from a positioning satellite; a decoding module configured to decode the satellite signals; and a first selection module configured to trigger a position calculation module corresponding to the position calculation accuracy in descending order of position calculation accuracy to determine the target positioning position of the positioning device based at least on the decoding result; if the current position calculation module cannot successfully calculate the target positioning position, then triggering the next position calculation module.
[0023] The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above function.
[0024] In one possible design, the above-described device includes a memory and a processor. The memory stores one or more computer instructions that support the device in performing the corresponding methods described above, and the processor is configured to execute the computer instructions stored in the memory. The device may also include a communication interface for communicating with other devices or communication networks.
[0025] Thirdly, embodiments of this disclosure provide an electronic device, including a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method described in any of the above aspects.
[0026] Fourthly, embodiments of this disclosure provide a computer-readable storage medium for storing computer instructions used by any of the above-described devices, including computer instructions for performing the methods described in any of the above aspects.
[0027] Fifthly, embodiments of this disclosure provide a computer program product including computer instructions, wherein the computer instructions, when executed by a processor, implement the computer instructions involved in the methods described in any of the preceding aspects.
[0028] The technical solutions provided in this disclosure may have the following beneficial effects:
[0029] In the satellite positioning process of this embodiment, a position calculation mode with higher accuracy is preferentially selected. If the selected position calculation mode fails to calculate the target location, other position calculation modes with lower accuracy are selected sequentially to ultimately obtain the positioning location of the device. This embodiment utilizes multiple different position calculation modes to prioritize obtaining a higher-accuracy target location for the positioning device, and even when a higher-accuracy target location cannot be obtained, it can still obtain a lower-accuracy target location, ultimately improving the positioning success rate of the positioning device.
[0030] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0031] Other features, objects, and advantages of this disclosure will become more apparent from the following detailed description of non-limiting embodiments, taken in conjunction with the accompanying drawings. In the drawings:
[0032] Figure 1 A flowchart illustrating a positioning method according to an embodiment of the present disclosure is shown;
[0033] Figure 2 A schematic diagram illustrating the structure of a satellite signal is shown.
[0034] Figure 3 A schematic diagram illustrating an application process on a mobile phone according to an embodiment of the present disclosure is shown.
[0035] Figure 4 This is a schematic diagram of the structure of an electronic device suitable for implementing the positioning method according to an embodiment of the present disclosure. Detailed Implementation
[0036] In the following, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to enable those skilled in the art to readily implement them. Furthermore, for clarity, portions unrelated to the description of the exemplary embodiments have been omitted from the drawings.
[0037] In this disclosure, it should be understood that terms such as “comprising” or “having” are intended to indicate the presence of features, figures, steps, behaviors, components, parts or combinations thereof disclosed in this specification, and are not intended to exclude the possibility of the presence or addition of one or more other features, figures, steps, behaviors, components, parts or combinations thereof.
[0038] It should also be noted that, unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other. This disclosure will now be described in detail with reference to the accompanying drawings and embodiments.
[0039] The details of the embodiments of this disclosure are described in detail below through specific examples.
[0040] Figure 1 A flowchart illustrating a positioning method according to an embodiment of this disclosure is shown. Figure 1 As shown, the positioning method includes the following steps:
[0041] In step S101, the satellite signal received by the positioning device from the positioning satellite is acquired;
[0042] In step S102, the satellite signal is decoded;
[0043] In step S103, the position calculation module corresponding to the position calculation accuracy is triggered in descending order of position calculation accuracy to determine the target positioning position of the positioning device based at least on the decoding result. If the current position calculation module cannot successfully calculate the target positioning position, the next position calculation module is triggered.
[0044] In this embodiment, the positioning device can be, for example, a mobile phone, iPad, computer, smartwatch, vehicle, robot, etc. This embodiment addresses scenarios where satellite signals may be interfered with or blocked, making it impossible to obtain a positioning location. It intelligently selects an appropriate location calculation method based on the actual situation of the received satellite signals to ultimately obtain the target positioning location of the positioning device, thereby improving the positioning success rate.
[0045] Positioning devices can receive satellite signals from multiple positioning satellites. It's understandable that the satellite signals received by a positioning device at different times can come from different positioning satellites, and the number of positioning satellites corresponding to the received signals can also vary. Based on pre-set parameters, the positioning device can calculate its current location using the satellite signals received from these multiple satellites.
[0046] In some embodiments, the positioning device decodes the received satellite signals.
[0047] Figure 2 This diagram illustrates a possible structure of a satellite signal. (Example:) Figure 2 As shown, a satellite signal can include multiple subframes, each with a period of 6 seconds. Each subframe sends 300 bits of data, with a period of 20ms per bit. Each bit sends 20 C / A codes, with a period of 1ms per C / A code. Each C / A code sends 1023 symbols, and each symbol contains multiple carriers. Each carrier frequency is approximately 1GHz. Since one C / A code is sent every 1ms, the corresponding code phase measurement value of the satellite, i.e., the pseudorange sub-millisecond value, can be obtained by measuring the offset of the symbol.
[0048] Pseudorange refers to the logical distance between a satellite and a positioning device. This logical distance is not the actual distance between the satellite and the positioning device because errors such as clock differences between the positioning device and the satellite need to be considered. Pseudorange can be obtained by subtracting the signal transmission time and reception time of the satellite signal received by the positioning device, and then multiplying by the speed of light. The signal transmission time can be determined based on the second time of week (TOW) decoded from the satellite signal. Pseudorange corresponds to two values: an integer millisecond pseudorange value and a sub-millisecond pseudorange value. The integer millisecond pseudorange value can be determined from the TOW of a received complete satellite signal, while the sub-millisecond pseudorange value can be obtained by measuring the symbol offset. Even without receiving a complete satellite signal, the sub-millisecond pseudorange value can still be obtained by measuring the symbol offset.
[0049] It should be noted that when using satellite positioning, the satellite must be locked for at least 6 seconds to obtain a complete satellite signal and decode the week seconds. Then, the position of the positioning satellite is determined by combining the signal transmission time indicated by the week seconds with the ephemeris of the positioning satellite (the ephemeris is used to indicate the correspondence between time and satellite position). The position of the positioning satellite can be represented by the satellite coordinates in the geocentric coordinate system. Finally, the position of the positioning device is determined based on the satellite coordinates.
[0050] When the positioning device is in an environment where the signal is interfered with or there is obstruction, it may not be able to lock onto the satellite signal for a long time. That is, it may not be able to receive a complete satellite signal, or the number of satellites corresponding to the complete satellite signal received may be small. This will result in the inability to locate the positioning device through satellite signals.
[0051] To address this situation, this embodiment of the disclosure pre-sets multiple location calculation modules and sorts them from highest to lowest accuracy. At each location calculation moment, based on the decoding result of the received satellite signal, a location calculation module with higher accuracy is preferentially selected. If the selected module fails to calculate the current location, the next ranked module is triggered to perform the calculation, and so on, until the target location of the positioning device is obtained or all location calculation modules fail to calculate the target location of the positioning device.
[0052] In some embodiments, the location calculation module may include, but is not limited to, a location calculation module that calculates the target location of the positioning device using complete satellite signals received from multiple satellites, and a location calculation module that calculates the target location of the positioning device using incomplete satellite signals received from multiple satellites.
[0053] A location calculation module can be used to calculate the positioning location of a positioning device using complete satellite signals received from multiple satellites. This module can include, for example, a classic four-satellite location calculation module, i.e., a GNSS single-point location calculation module and a two-satellite location calculation module. Alternatively, a location calculation module can be used to calculate the positioning location of a positioning device using incomplete satellite signals received from multiple satellites. This module can include, for example, a missing TOW (Total Time) location calculation module and a coarse-time three-satellite location calculation module. It should be noted that the position calculation accuracy is ranked from highest to lowest as follows: GNSS single-point location calculation module > missing TOW location calculation module > coarse-time three-satellite location calculation module > two-satellite location calculation module. Therefore, in one embodiment, based on the above ranking of calculation accuracy, it can be determined whether the target positioning location can be obtained using a higher-ranked location calculation module. If a higher-ranked location calculation module cannot successfully calculate the target positioning location, the next higher-ranked location calculation module is selected for calculation. It should be noted that failure to successfully calculate the target location can include various situations. For example, the decoding result may not meet the necessary conditions of the currently selected location calculation module, such as the number of satellites with complete satellite signals or the number of satellites with code phase measurements. Another example is the inability to obtain a converged target location during the location iteration process. The classic method is to obtain the location of the positioning device by decoding the TOW time obtained from complete satellite signals received from at least four satellites and substituting it into the classic GNSS location calculation formula.
[0054] In the satellite positioning process of this embodiment, the positioning module with higher accuracy is triggered first. If the selected positioning module fails to calculate the target location, other positioning modules with lower accuracy are triggered sequentially to finally obtain the positioning location of the device. This embodiment uses multiple different positioning modules to prioritize obtaining a higher-accuracy target location for the positioning device, and even when a higher-accuracy target location cannot be obtained, it can still obtain a lower-accuracy target location, ultimately improving the positioning success rate of the device.
[0055] In one optional implementation of this embodiment, the position calculation modules are arranged in descending order of position calculation accuracy as follows: GNSS single-point position calculation module, missing TOW position calculation module, coarse three-star position calculation module, and two-star position calculation module.
[0056] In an optional implementation of this embodiment, the GNSS single-point position calculation module is used to determine the target positioning position of the positioning device by using a classic GNSS single-point calculation algorithm when decoding the complete satellite signals of at least four satellites.
[0057] In this optional implementation, after decoding the satellite signal received at the current moment, if the number of satellite signals that can be completely decoded (i.e., the complete signal transmission time (TOW) of the satellite signal can be decoded) is greater than or equal to the number of satellite signals corresponding to four satellites, that is, when the number of satellites whose TOW can be decoded from the satellite signal received at the current moment is at least four, the target positioning position of the positioning device can be calculated based on the TOW of the at least four satellites. For example, the GNSS single-point position calculation module can be triggered to calculate the target positioning position of the positioning device using the classic GNSS calculation formula.
[0058] The following explanation uses the classic GNSS position calculation formula as an example.
[0059] In classic GNSS point location calculation modules, the TOW (Total Earth Position) of at least four satellites is required to complete the location calculation. Below is a positioning equation used in GNSS calculations utilizing at least four satellites:
[0060]
[0061] Where Δρ is the pseudorange residual, Δx includes four unknown variables, namely the correction amount of the four parameters of the positioning device's three-dimensional coordinates x, y, z and the clock error of the positioning device, ε is the error term, x0 is the initial value of coordinate x, and ρ is the pseudorange.
[0062] In the above formula, the unknown variable Δx involves four variables: the three-dimensional coordinates x, y, and z of the positioning device and the clock error of the positioning device. After performing a partial derivative operation on the above formula (1), we can obtain the following formula:
[0063]
[0064] in:
[0065]
[0066] Where r0 is the initial distance between the satellite and the positioning device (which can be determined based on the initial position of the positioning device and the estimated position of the satellite), and (x0, y0, z0) is the initial position of the positioning device.
[0067] Since the above positioning equation includes four unknown variables, the three-dimensional coordinates of the positioning device can be obtained by observing at least four satellites and iteratively calculating the positioning equation in formula (1). However, the solution process of this positioning equation requires at least four satellite TOWs (Total Dimensions) to be read from the received satellite signals before the solution can be performed. When the signal is blocked or weak, it is impossible to lock onto the satellite for a long time, that is, it is impossible to guarantee that the complete satellite signals of at least four satellites can be received and the TOWs can be decoded from the complete satellite signals. Therefore, the correct target positioning position cannot be successfully calculated.
[0068] In an optional implementation of this embodiment, the TOW position calculation module is missing. When decoding the signal transmission times corresponding to fewer than four satellites, but decoding the code phase measurement values corresponding to at least five satellites, the target positioning position is determined based on the initial position of the positioning device, the reception time of the satellite signals on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement values.
[0069] In this optional implementation, if the number of satellites corresponding to the complete satellite signal is less than four (i.e., the number of satellites with a TOW (Total Wound) value that can be decoded is less than four), then the classic GNSS decoding formula cannot be used to locate the positioning device. However, if the decoding result yields code phase measurements of at least five satellites (i.e., the pseudorange sub-millisecond values of at least five satellites can be determined), then the missing TOW position calculation module can be used to determine the target positioning location of the positioning device.
[0070] The missing TOW location calculation module can employ various calculation methods. Any method that utilizes code phase measurements from at least five satellites and coarse time to obtain the positioning device's location when the complete signal transmission time cannot be calculated falls under the category of missing TOW location calculation modules. For example, one method involves modifying the classic GNSS calculation formula by adding the unknown variable of coarse time, resulting in an updated GNSS calculation formula. This updated formula then uses code phase measurements from at least five satellites, the initial coarse time, the ephemeris of the positioning satellites, the initial position of the positioning device, and the reception time of the satellite signals on the positioning device to determine the target positioning location.
[0071] The coarse time can be related to the satellite signal transmission time, for example, it can be the error between the estimated and accurate value of the satellite signal transmission time. The initial coarse time can be the coarse time obtained in the previous moment of the position calculation process, or it can be an estimated value based on the initial position of the positioning device and the signal reception time. At the beginning of the position calculation, the initial coarse time can be, for example, 0. The initial position of the positioning device can also be the target positioning position of the positioning device obtained in the previous moment of the calculation process, or the network positioning position of the positioning device at the current moment.
[0072] In this way, even when the signals from all four satellites cannot be fully received due to interference or obstruction, the target location of the positioning device can still be calculated.
[0073] In an optional implementation of this embodiment, the initial coarse time is used as the satellite signal transmission time of the at least five satellites. The step of calculating the target positioning position based on the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement value further includes the following steps:
[0074] Based on the initial position of the positioning device, the initial coarse time, the reception time, and the code phase measurement values of the at least five satellites, calculate the position correction amount and the coarse time correction amount of the positioning device;
[0075] The target positioning position of the positioning device is determined based on the position correction amount, the coarse time correction amount, the initial position of the positioning device, and the initial coarse time.
[0076] In this optional implementation, if the positioning device can decode the code phase measurement values corresponding to at least five satellites from the received satellite signals, the positioning device's location and coarse time can be treated as unknown variables. Using the positioning device's initial location, initial coarse time, satellite signal reception time, code phase measurement values of at least five satellites, and ephemeris data, the positioning device's location correction and coarse time correction are iteratively calculated. The initial location and initial coarse time are used as the initial values for the positioning device's location and coarse time. Based on the location correction and coarse time correction, the positioning device's location, device time, and coarse time are continuously corrected. Finally, the target positioning location and corrected coarse time of the current moment are obtained. This target coarse time can be cached as the initial coarse time for the next moment. During this process, if the correction terms for the positioning device's location, device time, and coarse time are less than or equal to a first threshold, the location calculation is considered successful, and the corrected location can be determined as the positioning device's GNSS location. The correction term can be determined based on the correction amounts of location, device time, and coarse time. For example, the correction term can be the sum of the squares of the correction amounts of each unknown variable in the current iteration result, namely location, device time, and coarse time.
[0077] The missing TOW location calculation module in this embodiment is illustrated below with an example.
[0078] In this embodiment, in environments where the signal is blocked or weak, and the complete satellite signal cannot be decoded (i.e., the TOW cannot be determined), the code phase measurement values of at least five satellites can be obtained, along with the initial position, coarse time, signal reception time, and ephemeris of at least five satellites for the positioning device. The initial position of the positioning device can be understood as its initial location. This initial position can be near the satellite positioning position of the positioning device, such as a network location obtained using a network (e.g., 4G / 5G network, Wi-Fi, Bluetooth) (this network location is not the precise positioning device location), and there is a certain deviation between the network location and the satellite positioning position. Alternatively, the initial position of the positioning device can be the target positioning position obtained from the previous position calculation.
[0079] The positioning equation used in this embodiment, based on the classic GNSS calculation formula, adds a variable tc to Δx, which represents coarse time. Since tc affects the satellite's position and velocity, we can obtain:
[0080]
[0081] in, Indicates the satellite clock drift velocity. Representing the satellite velocity, adding the aforementioned increased partial derivative to equation (4) in the classical solution process yields the following positioning equation:
[0082]
[0083] Among them, Δx involves five unknown variables: the three-dimensional coordinates of the positioning device (x, y, z), the clock bias of the positioning device (b), and the coarse time (tc); v is the satellite velocity; and δ... t It's a satellite clock drift. ε is the satellite clock drift velocity, and ε is the error term. In the above formula, Δx includes the correction amount of the above 5 unknown variables (that is, the absolute value of the difference between the current iteration solution result and the previous iteration solution result of the corresponding unknown variable). Compared with the above-mentioned existing technology, the positioning equation (5) adds coarse time.
[0084] The positioning equation (5) used in this embodiment adds one more unknown variable compared to positioning equation (1). Therefore, only one more satellite is needed to solve it. It is understood that using five or more satellites can achieve better results in solving the positioning equation (5). Furthermore, the solution can be obtained using the positioning equation (5) and pseudorange residuals without solving for TOW. After obtaining the correction values for the five unknown variables using the positioning equation (5), the initial values of the five unknown variables can be corrected using these correction values. The initial value of the clock bias can be determined using the signal reception time.
[0085] After calculating the position correction, coarse time correction, and clock error correction of the positioning device using the above positioning equation (5), the position correction can be used to correct the position of the positioning device, the coarse time correction can be used to correct the coarse time, and the clock error correction can be used to correct the clock error. In order to obtain accurate results, this embodiment of the present disclosure continuously corrects the position, coarse time, and clock error of the positioning device by iteratively executing the above correction process.
[0086] During the iterative correction process, the pseudorange can be calculated based on the code phase measurement data, the initial position of the positioning device, and the initial coarse time. Then, the pseudorange residual is calculated based on the calculated pseudorange and the initial pseudorange (the pseudorange obtained in the previous iteration or the pseudorange estimated in the initial iteration). The pseudorange residual is then substituted into the positioning equation (5) to solve for the correction amount of the five unknown variables. The iteration termination condition may include, but is not limited to, the correction term being less than or equal to a preset threshold or the number of iterations being greater than or equal to a number threshold. The preset threshold and the number threshold can be preset according to the actual application scenario, such as the required positioning accuracy. In some embodiments, the correction term may be, for example, the sum of the squares of the correction amounts of each unknown variable in the current iteration result. If the iteration termination condition is not met, the next iteration can be performed based on the current iteration result and the positioning equation, until the iteration termination condition is met.
[0087] The above positioning equation (5) is only one feasible expression. It can also be modified according to the relevant theoretical knowledge of GNSS satellite positioning. As long as the positioning equation involves the positioning location of the positioning device (including three variables: x, y, and z), coarse time, and five unknown variables: the clock difference of the positioning device, it can be applied to the above method proposed in the embodiments of this disclosure to solve the target positioning location of the positioning device.
[0088] In this embodiment, under conditions of weak or blocked satellite signals, and where the TOW (Time of Observation) corresponding to at least four satellites cannot be calculated, the target positioning position of the positioning device is calculated using code phase measurements from at least five satellites, the initial position of the positioning device, and an initial coarse time. This technical solution makes satellite positioning possible even when complete satellite signals from at least four satellites cannot be received by incorporating coarse time. Furthermore, by introducing the initial position of the positioning device during the positioning process, this technical solution reduces the requirement for time accuracy and improves the efficiency and accuracy of position calculation.
[0089] In some embodiments, during the initial correction process, i.e. the first iteration, the initial coarse time can be set to 0. That is, in the initial state, it is assumed that the estimated value of the signal transmission time (which can be determined based on the signal reception time and the transmission time of the satellite signal from the satellite to the positioning device) is equal to the accurate value. In subsequent iterations, the coarse time can be continuously corrected to finally obtain the target coarse time.
[0090] In some embodiments, the satellite position of each satellite at the time of signal transmission can be determined based on the ephemeris of at least five satellites and the corresponding initial coarse time. The initial coarse time is set to 0, at which point the estimated value of the signal transmission time is equal to the precise value. The estimated value of the signal transmission time can initially be the network time of the positioning device or the network time minus the transmission time of the satellite signal. The transmission time can also be an estimated value. The distance between the satellite and the Earth is approximately 20,000 kilometers. Based on this distance, the transmission time of the satellite signal can be roughly estimated.
[0091] The distance between the positioning device and the satellite can be determined based on the satellite's position and the positioning device's position (in the initial process, the positioning device's initial position). It should be noted that this distance is calculated using the coordinates of the satellite and the positioning device, unlike pseudorange, which is calculated using signal transmission and reception times and has a certain degree of bias. In the initial correction process, i.e., the first iteration, the positioning device's position is the initial position. Subsequent correction processes, starting from the second iteration, use the position corrected in the previous iteration, and the coarse time is also the coarse time corrected in the previous iteration.
[0092] Based on the distance between the positioning device and the satellite, as well as the deviation in the pseudorange, a relationship between the pseudorange and the distance can be established. Then, based on the distance and the pseudorange sub-millimeter value (which is calculated from the code phase measurement value, is known and accurate), the pseudorange integer millisecond value can be calculated.
[0093] The following example illustrates an exemplary relationship between distance and pseudorange.
[0094] N 0 =round(r 0 -δ 0 t +b+T i +T t -ρ sub 0 (6)
[0095] Where, N 0 r represents the pseudorange in milliseconds between the satellite and the positioning device. 0 δ represents the distance between the satellite and the positioning device (in actual calculations, this distance can be expressed as equivalent time, i.e., the distance between the satellite and the positioning device divided by the speed of light). 0 t 'b' represents the satellite clock bias, 'b' represents the positioning device clock bias, and 'T' represents the positioning device clock bias. i and T t ρ represents the ionospheric and tropospheric delays, respectively, also known as physical delays. sub0 This represents the pseudorange sub-millisecond value; round is the rounding function.
[0096] Since the pseudorange sub-millisecond values of at least five satellites can be obtained based on known code phase measurements, while the pseudorange integer millisecond values are calculated according to the above process, the complete pseudorange of at least five satellites can be obtained through the pseudorange integer millisecond values and pseudorange sub-millisecond values. Based on the initial pseudorange value and the calculated complete pseudorange, the pseudorange residual can be calculated. Substituting this pseudorange residual into the positioning equation (5) with five unknown variables proposed in this embodiment, the correction amount corresponding to the position, coarse time, and clock bias of the positioning device in the current iteration can be calculated. This correction amount can be used to correct the position, coarse time, and clock bias of the positioning device. It should be noted that when calculating the pseudorange residual, the initial pseudorange value is the estimated pseudorange value in the first iteration, while in subsequent iterations, it is the complete pseudorange calculated in the previous iteration.
[0097] In an optional implementation of this embodiment, the coarse time three-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value when the complete satellite signal of less than four satellites is decoded, but the code phase measurement value of less than five satellites is decoded, which is greater than or equal to the code phase measurement value of three satellites.
[0098] In this optional implementation, if the number of satellites corresponding to the complete satellite signal is less than four (i.e., the number of satellites with a TOW (Total Time of Shift) value that can be decoded is less than four), then the classic GNSS calculation formula cannot be used to locate the positioning device. Similarly, if the number of satellites corresponding to the code phase measurement value obtained in the decoding result is less than five, the missing TOW position calculation module mentioned above cannot be used to calculate the target positioning location of the positioning device. If the number of satellites corresponding to the code phase measurement value is three or more, then the coarse-time three-satellite position calculation module can be used to calculate the positioning location of the positioning device.
[0099] The multiple reference locations of the positioning device in the navigation planning path may include, but are not limited to: multiple navigation position points on the navigation path during the current navigation process of the positioning device, and interpolated points obtained by interpolating these multiple navigation position points (e.g., interpolating in 50m increments). It can be understood that the multiple navigation position points on the navigation planning path include navigation position points after the target positioning position calculated at the previous moment, that is, navigation position points that the positioning device may traverse from the previous moment to the current moment. These multiple navigation position points can be taken as navigation position points within a certain distance after the target positioning position at the previous moment. It should be noted that the longitude and latitude of these multiple navigation position points are known.
[0100] In the coarse-time three-star location calculation module, coarse-grained and fine-grained searches can be performed on coarse time and the location of the positioning device, respectively, to finally obtain the target positioning location of the positioning device. In some embodiments, the coarse-time three-star location calculation module includes four stages: a coarse search process for coarse time, a coarse search process for positioning location, a fine search process for coarse time, and a fine search process for positioning location.
[0101] During the coarse search process, with the location device's position fixed at the initial reference position, the most likely candidate coarse time is searched within a first preset time range corresponding to the initial coarse time. This initial reference position can be determined as the initial position of the location device, i.e., the current network location position of the location device or the target location position obtained during the previous location calculation. The first preset time range can be a range of time before and after the initial coarse time (e.g., n1 seconds before and after).
[0102] During the coarse search for the positioning location, with the coarse time fixed at the candidate coarse time obtained from the coarse search process, the most likely candidate positioning location of the positioning device is determined from multiple reference locations. This candidate positioning location is the location closest to the target positioning location of the positioning device among the multiple reference locations.
[0103] During the fine-grained search of the coarse time, with the positioning device fixed at the aforementioned candidate positioning positions, the most probable target coarse time is searched within the second preset time range corresponding to the aforementioned candidate coarse time. The second preset time range can be a range of time before and after the candidate coarse time (e.g., n2 seconds before and after, where n2 seconds can be the same as or different from n1 seconds).
[0104] During the fine-grained search for the location, with the coarse time fixed at the aforementioned target coarse time, the most probable target location is searched within the first preset location range corresponding to the candidate location. The first preset location range can be the range after expanding the candidate location by a certain distance (for example, expanding the longitude and latitude of the candidate location by 50 meters each).
[0105] In this way, even in scenarios with signal interference or obstruction, where it is impossible to fully receive satellite signals from all four satellites, the target positioning location of the positioning device can still be calculated.
[0106] In an optional implementation of this embodiment, the step of determining the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value further includes the following steps:
[0107] For each of at least three satellites, within a first preset time range corresponding to the initial coarse time, a candidate coarse time for the positioning device at the initial reference position is determined;
[0108] At the plurality of reference locations, the candidate positioning position of the positioning device at the candidate coarse time is determined;
[0109] Within a second preset time range corresponding to the candidate coarse time, the positioning device determines the target coarse time corresponding to the satellite at the candidate positioning location;
[0110] Within the first preset position range corresponding to the candidate positioning position, the target positioning position of the positioning device under the target coarse time is determined.
[0111] In this optional implementation, if the number of satellites corresponding to the complete satellite signal received at the current moment is less than four (i.e., the number of satellites that can be decoded to TOW is less than four), then the classic GNSS calculation formula cannot be used to locate the positioning device. However, if the number of satellites corresponding to the code phase measurement values that can be obtained in the decoding result is less than five but greater than or equal to three, then the coarse-time three-satellite position calculation module can be used to calculate the positioning location of the positioning device.
[0112] The coarse-time three-star location calculation module can be divided into four stages: coarse search process for coarse time, coarse search process for location, fine search process for coarse time, and fine search process for location.
[0113] The four stages described above will be described in detail below.
[0114] (a) Coarse search process in coarse time.
[0115] In this process, it can be assumed that the positioning device is located at the initial position. Under the condition that the initial position is fixed, a coarse search process for the coarse time is performed within the first preset time range corresponding to the initial coarse time, so as to obtain the most likely candidate coarse time of the positioning device at the initial position.
[0116] During the coarse search process for coarse time, with the position of the positioning device fixed at the initial position, multiple candidate coarse time times are obtained within a first preset time range (e.g., the range of [-3s, 3s]) with a first preset time step (e.g., 0.1s). Under each candidate coarse time time, the absolute value of the difference between the pseudorange residuals of at least three satellites is calculated, and then the candidate coarse time time is determined based on the absolute value. For example, the candidate coarse time time corresponding to the smallest sum of the obtained absolute values can be determined as the final candidate coarse time time.
[0117] The following example illustrates the coarse-time search process:
[0118] 1) For each satellite, the pseudorange sub-millisecond value is determined using code phase measurements.
[0119] 2) For each satellite, the signal transmission time is determined using the satellite signal reception time and the pseudorange sub-millisecond value. That is, the signal transmission time is the signal reception time minus the time corresponding to the pseudorange at the current candidate coarse time. In the first iteration, due to the uncertainty of the incomplete pseudorange, the signal transmission time can be obtained by subtracting the pseudorange sub-millisecond value from the signal reception time.
[0120] 3) For each satellite, determine the satellite's position at the time of signal transmission based on the ephemeris and signal transmission time.
[0121] 4) For each satellite, the pseudorange integer millisecond value can be calculated based on the relationship between distance and pseudorange. The calculation method can be found in the above formula (6).
[0122] 5) For each satellite, the complete pseudorange can be obtained from the pseudorange sub-millisecond value calculated from the pseudorange integer millisecond value and the code phase measurement value.
[0123] 6) Determine the absolute value of the difference between the pseudorange residuals of at least three satellites for each pair of satellites, and calculate the sum of these absolute values. For example, the pseudorange residuals can be calculated as follows:
[0124]
[0125] Among them, resp (n)Let n be the pseudorange residual of the nth satellite. Let x be the residual of the nth satellite. (n) y (n) z (n) Let x, y, and z be the satellite position coordinates of the nth satellite calculated in the above steps, and let x, y, and z be the position coordinates of the positioning device.
[0126] 7) For each step length corresponding to the candidate coarse time, repeat the above steps iteratively and obtain the sum of the absolute values. For example, if three of the above at least three satellites are located in the same galaxy, the sum of the absolute values resp can be calculated as follows:
[0127] resp=|resp (1) -resp (2) |+|resp (1) -resp (3) | (8)
[0128] For example, if four of the aforementioned three satellites are located in two satellite systems, the sum of the absolute values, resp, can be calculated as follows:
[0129] resp=|resp (1) -resp (2) |+|resp (3) -resp (4) | (9)
[0130] The first and second satellites are located in the same galaxy, and the third and fourth satellites are located in the same galaxy.
[0131] 8) The candidate coarse time corresponding to the smallest sum of the above absolute values is determined as the final candidate coarse time.
[0132] In some embodiments, 4) and 5) above can still be replaced by the following:
[0133] 4) Select one of the at least three satellites as the reference satellite, calculate the integer millisecond value of the pseudorange of the reference satellite according to the relationship between distance and pseudorange (see formula (10) below), and calculate the complete pseudorange of the reference satellite according to the integer millisecond value of the pseudorange and the sub-millisecond value of the pseudorange determined by the code phase measurement value.
[0134] 5) For non-reference satellites, the pseudorange integer millisecond value of the non-reference satellite is obtained according to the pseudorange relationship between the reference satellite and the non-reference satellite. Given the pseudorange integer millisecond value of each satellite, the complete pseudorange can be determined based on the pseudorange sub-millisecond value obtained from the pseudorange integer millisecond value and the code phase measurement value.
[0135] The following example illustrates the pseudorange relationship between reference satellites and non-reference satellites:
[0136] N k =N 0 +ρ 0 -ρ k +(r k -δ k t )-(r 0 -δ 0 t )+(d 0 -d t )-(ε 0 -ε k (10)
[0137] Where, N k N represents the integer millisecond value of the pseudorange between the k-th non-reference satellite and the positioning device. 0 ρ represents the integer millisecond value of the pseudorange between the reference satellite and the positioning device. 0 ρ represents the pseudorange of the reference satellite. k Let r represent the pseudorange of the k-th satellite. k r represents the distance between the k-th non-reference satellite and the positioning device. 0 δ represents the distance between the reference satellite and the positioning device. k t Let δ represent the clock bias of the k-th non-reference satellite. 0 t Indicates the clock bias of the reference satellite; d 0 To reference the positional deviation of the satellite, d k Let ε be the position deviation of the k-th non-reference satellite. 0 For the error term of the reference satellite, ε k This is the error term for the k-th non-reference satellite.
[0138] Since this embodiment selects the network positioning location of the positioning device or the target positioning location of the previous moment as the initial position of the positioning device, this initial position is relatively accurate, with an error within 1 kilometer. Therefore, the resulting position deviation of the reference satellite and the position deviation of the k-th non-reference satellite are small. Thus, according to the above relationship, the pseudorange error relationship between the reference satellite and the k-th non-reference satellite can be obtained (error term ε). 0 -ε k (Can be ignored):
[0139] N k =round(N 0 +ρ 0 -ρ k +(r k -δ k t)-(r 0 -δ 0 t (11)
[0140] The pseudorange error N between the reference satellite and the k-th non-reference satellite can be determined using the above relationship. k -N 0 The pseudorange integer millisecond value between the k-th non-reference satellite and the positioning device can be obtained by rounding the part within the parentheses above.
[0141] In theory, since the pseudorange integer value in milliseconds is an integer, the value in the parentheses above should be close to an integer. If the decimal part in the parentheses is too large, it can be assumed that the pseudorange error between the kth other satellite and the reference satellite is large. Therefore, it is possible to determine whether other satellites are valid by comparing the decimal part in the parentheses in the above formula with a preset threshold. If the decimal part is less than or equal to the preset threshold, then the other satellite is determined to be a valid satellite.
[0142] (ii) The coarse search process for locating the position.
[0143] During the coarse search for the location, the coarse time can be fixed at the candidate coarse time obtained in the previous search process. With the coarse time fixed, the search is performed at multiple reference locations in the navigation planning path of the positioning device to obtain the most likely location of the positioning device under the candidate coarse time.
[0144] During the coarse search for the positioning location, with the coarse time of the positioning device fixed at the candidate coarse time, the value of resp is calculated for the positioning location at multiple reference locations. The calculation of resp is described in the coarse search process for the coarse time above, and will not be repeated here. The reference location corresponding to the minimum resp is determined as the candidate positioning location.
[0145] (III) Fine search process of coarse time.
[0146] The fine search process for coarse time is similar to the coarse search process for coarse time, except that the positioning device is fixed at the candidate positioning location. The most likely target coarse time is searched within a second preset time range corresponding to the candidate coarse time; that is, the time corresponding to the minimum resp within the second preset time range is the target coarse time. In some embodiments, the second preset time range is searched with a preset time step, such as 0.1s. This means that multiple candidate coarse times are obtained within the second preset time range with a preset time step (e.g., 0.1s). For each candidate coarse time, the absolute value of the difference between the pseudorange residuals between any two satellites out of at least three satellites is calculated. The candidate coarse time corresponding to the minimum sum of these absolute values is then determined as the final target coarse time.
[0147] (iv) The detailed search process for locating the position.
[0148] During the detailed search for the location, the coarse time can be fixed at the target coarse time obtained in the previous search process. With the coarse time fixed, the most likely target location of the positioning device can be searched within the first preset location range corresponding to the candidate positioning locations obtained in the above process.
[0149] During the fine-grained search for the location, with the coarse time of the positioning device fixed at the candidate coarse time, multiple positioning locations are selected within a first preset position range corresponding to the candidate positioning location with a preset position step size. The values of multiple resp values for the positioning device at these multiple positioning locations are calculated. The calculation of resp is described in the coarse search process for the coarse time above and will not be repeated here. The positioning location corresponding to the smallest resp is determined as the candidate positioning location. In some embodiments, the preset position step size can be 10 meters.
[0150] As can be seen from the above description, the candidate coarse time, candidate positioning location, target coarse time and / or target positioning location are all determined based on the difference in pseudorange residuals between each pair of the at least three satellites.
[0151] In an optional implementation of this embodiment, the dual-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device when decoding complete satellite signals of at least two but fewer than four satellites.
[0152] In this optional implementation, if the aforementioned position calculation modules, namely the classic GNSS single-point position calculation module, the missing TOW position calculation module, and the coarse-time three-satellite position calculation module, cannot calculate the target position of the positioning device, and if the complete signal transmission time included in the decoding result corresponds to fewer than four but more than or equal to two satellites, a two-satellite position calculation module can be used.
[0153] In the dual-satellite position calculation module, the network positioning position or the target positioning position obtained during the previous position calculation is used as the initial position of the positioning device. Multiple reference positions are then acquired within the navigation planning path of the positioning device. These reference positions may include, but are not limited to, multiple navigation position points on the navigation planning path during the current navigation process, and interpolated points obtained by interpolating these multiple navigation position points (e.g., interpolating in 50m increments). It can be understood that the multiple navigation position points on the navigation planning path include navigation position points after the target positioning position obtained in the previous position calculation; that is, navigation position points that the positioning device may traverse from the previous moment to the current moment. These multiple navigation position points can be taken as navigation position points within a certain distance after the target positioning position in the previous moment. It should be noted that the longitude and latitude of these multiple navigation position points are known.
[0154] Based on the signal transmission time and the signal reception time on the positioning device, the pseudorange corresponding to at least two satellites can be determined (signal reception time on the positioning device minus signal transmission time multiplied by the speed of light). The satellite's position can be determined based on the signal transmission time and the satellite's ephemeris. The distance between the satellite and the positioning device can be determined based on the satellite's position and the positioning device's initial position. Using this information, a coarse search can be performed from multiple reference positions to determine the reference position closest to the target positioning position of the positioning device. Then, a fine search can be performed near this closest reference position to find the most probable target positioning position. Through this embodiment, the classic GNSS single-point position calculation module can be extended to utilize a two-satellite position calculation module, meaning the target positioning position of the positioning device can be calculated using the complete satellite signals from two satellites.
[0155] In an optional implementation of this embodiment, the step of determining the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device further includes the following steps:
[0156] The geographical altitude of the location of the positioning device is determined based on the initial position of the positioning device;
[0157] The candidate positioning location of the positioning device is determined based on the geographic altitude and the multiple reference locations.
[0158] Within the second preset location range corresponding to the candidate location, the target location of the positioning device is determined.
[0159] In this optional implementation, the binary star position calculation module can be divided into two search stages: a coarse search process for locating the position and a fine search process for locating the position. These two search processes are described below.
[0160] (a) The coarse search process for locating the position.
[0161] 1) Calculate the altitude of the positioning device's location based on its initial position. For example, the altitude can be calculated using the following formula:
[0162] x = (N + h)cos(lat)cos(lon)
[0163] y = (N + h)cos(lat)sin(lon)
[0164] z=[N(1-e 2 )+h]sin(lat) (12)
[0165] Where (x, y, z) are the position coordinates of the positioning device, N is the radius of curvature of the Earth, e is the eccentricity of the ellipsoid, and lat and lon are the longitude and latitude corresponding to the position coordinates, respectively. The altitude h of the location of the positioning device at the initial position can be calculated using the above formula (12).
[0166] 2) Based on the height calculated from the initial position, perform a coarse search on multiple reference positions, that is, search for the reference position closest to the target positioning position of the positioning device from multiple reference positions.
[0167] The following example illustrates this coarse search process.
[0168] Substitute the longitude, latitude, and altitude calculated from the initial position of multiple reference locations into the above formula (12) to obtain the position coordinates of each reference location, and let:
[0169]
[0170] Where abs(·) represents the absolute value, The pseudorange of the first satellite. x is the pseudorange of the second satellite. (1) y (1) z (1) x is the satellite position coordinate of the first satellite calculated based on the signal transmission time. (2) y (2) z (2) The satellite position coordinates of the second satellite are calculated based on the signal transmission time. x, y, and z are the position coordinates of the positioning device at each reference position. resp represents the absolute value of the difference between the pseudorange residuals of at least two satellites.
[0171] The reference position corresponding to the minimum resp is determined as the coarse search result, which is the candidate location closest to the target location.
[0172] (ii) The detailed search process for locating the position.
[0173] During the fine search of the location, within the first preset location range corresponding to the candidate location obtained in the coarse search of the location, the most likely target location of the search positioning device is selected.
[0174] During the fine-grained search for the positioning location, multiple positioning locations are selected within the second preset position range corresponding to the candidate positioning location with a preset position step size. The absolute value of the difference between the pseudorange residuals of the two satellites at these multiple positioning locations, resp, is calculated. The calculation of resp is given in the above formula (13), and will not be repeated here. The positioning location corresponding to the smallest resp is determined as the target positioning location. In some embodiments, the second preset position range can be the range obtained by extending the candidate positioning location by a certain distance in the longitude and latitude directions, for example, extending it by 50 meters to obtain the second preset position range, and multiple positioning locations are selected with a preset position step size of 10 meters.
[0175] In an optional implementation of this embodiment, before step S103, that is, before triggering the position calculation module corresponding to the position calculation accuracy in descending order of position calculation accuracy to determine the target positioning position of the positioning device based at least on the decoding result, the method further includes the following steps:
[0176] Select one satellite from the plurality of satellites as a reference satellite and the other satellites as non-reference satellites; determine invalid satellites from the non-reference satellites based on the reference satellite; filter out the decoding results corresponding to the invalid satellites.
[0177] In this optional implementation, before performing position calculation based on the decoding results in the missing TOW position calculation module and the coarse-time three-satellite position calculation module, one of the multiple satellites can be selected as a reference satellite. In some embodiments, the satellite with the largest elevation angle can be selected as the reference satellite based on the initial position of the positioning device. To reduce errors, valid and invalid satellites among the non-reference satellites can be determined based on the reference satellite. Valid satellites can be those among the non-reference satellites that will not cause significant errors, while invalid satellites can be those among the non-reference satellites that will cause significant errors. In some embodiments, the pseudorange difference between the non-reference satellites and the reference satellite can be determined first, and the non-reference satellites with smaller pseudorange errors can be determined as valid satellites, while the non-reference satellites with larger pseudorange differences can be determined as invalid satellites.
[0178] Since invalid satellites can cause large pseudorange errors, the decoding results corresponding to invalid satellites can be filtered out from the decoding results, so that the final decoding results used for position calculation only include the decoding results corresponding to the reference satellite and the valid satellite.
[0179] In an optional implementation of this embodiment, the step of determining invalid satellites from non-reference satellites based on the reference satellite further includes the following steps: determining the pseudorange difference between the reference satellite and the non-reference satellite; and determining invalid satellites from the other satellites based on the pseudorange difference.
[0180] In this optional implementation, the calculation process of the difference of pseudo-distances can be found in the description of formulas (10) and (11) above, and will not be repeated here.
[0181] Figure 3 This diagram illustrates an application flow on a mobile phone according to an embodiment of the present disclosure. Figure 3 As shown, the mobile phone receives satellite signals from multiple satellites and decodes the received signals. First, it determines whether the classic GNSS position calculation formula can be used. If so, the target positioning position of the positioning device is calculated using the classic GNSS position calculation formula. If the calculation is successful, the position calculation process ends. If the classic GNSS position calculation formula cannot be used (i.e., the conditions for the classic GNSS single-point position calculation module are not met, such as fewer than four satellites whose signal transmission time can be decoded), or if the classic GNSS single-point position calculation formula fails, it can be determined whether the missing TOW position calculation module can be used. If the missing TOW position calculation module cannot be used (i.e., the conditions for the missing TOW position calculation module are not met), the calculation process ends. If the conditions for using the coarse-time three-satellite position calculation module are not met (e.g., the number of satellites whose code phase measurement values can be decoded is less than five), or the calculation fails, it can be determined whether the coarse-time three-satellite position calculation module can be used. If the conditions for using the coarse-time three-satellite position calculation module are not met (e.g., the number of satellites whose code phase measurement values can be decoded is less than three), or the calculation fails, it can be determined whether the two-satellite position calculation module can be used. If the conditions for using the two-satellite position calculation module are not met (e.g., the number of satellites whose signal transmission time can be decoded is less than two), or the calculation fails, then the positioning of the positioning device at the current moment fails to be calculated. If the positioning of the positioning device is successfully calculated using any of the above position calculation modules, then the positioning of the positioning device at the current moment is successfully calculated, and the calculation result of the current moment (which may include the positioning position, clock difference, and coarse time) can be cached as the initial value for the next moment.
[0182] The following example illustrates an illustrative implementation process of an embodiment of this disclosure.
[0183] The following are embodiments of the apparatus disclosed herein, which can be used to execute embodiments of the method disclosed herein.
[0184] According to one embodiment of the present disclosure, the positioning device can be implemented as part or all of an electronic device through software, hardware, or a combination of both. The positioning device includes: a first acquisition module configured to acquire satellite signals received by the positioning device from a positioning satellite; a decoding module configured to decode the satellite signals; and a first selection module configured to trigger a position calculation module corresponding to the position calculation accuracy in descending order of accuracy, determining the target positioning position of the positioning device based at least on the decoding result; if the current position calculation module cannot successfully calculate the target positioning position, then triggering the next position calculation module.
[0185] In one optional implementation of this embodiment, the position calculation modules are arranged in descending order of position calculation accuracy as follows: GNSS single-point position calculation module, missing TOW position calculation module, coarse three-star position calculation module, and two-star position calculation module.
[0186] In an optional implementation of this embodiment, the GNSS single-point position calculation module is used to determine the target positioning position of the positioning device by using a classic GNSS single-point calculation algorithm when decoding the complete satellite signals of at least four satellites.
[0187] In an optional implementation of this embodiment, the missing TOW position calculation module is used to decode the signal transmission times corresponding to fewer than four satellites, but decode the code phase measurement values corresponding to at least five satellites, and then determine the target positioning position based on the initial position of the positioning device, the reception time of the satellite signals on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement values.
[0188] In an optional implementation of this embodiment, the missing TOW location calculation module includes: a correction submodule configured to correct the location, coarse time, and device time of the positioning device based on the initial location, initial coarse time, reception time of the satellite signal on the positioning device, code phase measurement values of the at least five satellites, and ephemeris, until the correction term is less than or equal to a preset first threshold; and a first determination submodule configured to determine the location corrected by the correction term as the GNSS positioning location of the positioning device.
[0189] In an optional implementation of this embodiment, the coarse time three-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value when the complete satellite signal of less than four satellites is decoded, but the code phase measurement value of less than five satellites is decoded, which is greater than or equal to the code phase measurement value of three satellites.
[0190] In an optional implementation of this embodiment, the coarse-time three-satellite position calculation module includes: a second determining submodule configured to determine, for each of at least three satellites, a candidate coarse-time time of the positioning device at the initial reference position within a first preset time range corresponding to the initial coarse-time time; a third determining submodule configured to determine, at the plurality of reference positions, the candidate positioning position of the positioning device at the candidate coarse-time time; a fourth determining submodule configured to determine, within a second preset time range corresponding to the candidate coarse-time time, the target coarse-time time of the positioning device corresponding to the satellite at the candidate positioning position; and a fifth determining submodule configured to determine, within a first preset position range corresponding to the candidate positioning position, the target positioning position of the positioning device at the target coarse-time time.
[0191] In an optional implementation of this embodiment, the dual-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device when decoding complete satellite signals of at least two but fewer than four satellites.
[0192] In an optional implementation of this embodiment, the dual-satellite position calculation module includes: a sixth determining submodule configured to determine the geographic altitude of the location of the positioning device based on the initial position of the positioning device; a seventh determining submodule configured to determine candidate positioning positions of the positioning device based on the geographic altitude and the plurality of reference positions; and an eighth determining submodule configured to determine the target positioning position of the positioning device within a second preset position range corresponding to the candidate positioning positions.
[0193] In an optional implementation of this embodiment, the initial position includes the target positioning position calculated at the previous moment, or the network positioning position of the positioning device.
[0194] In an optional implementation of this embodiment, the initial coarse time is determined based on the solution result of the previous time step.
[0195] In an optional implementation of this embodiment, before the first selection module, the device further includes: a second selection module configured to select one satellite from the plurality of satellites as a reference satellite and the other satellites as non-reference satellites; a determination module configured to determine invalid satellites from the non-reference satellites based on the reference satellite; and a filtering module configured to filter out the decoding results corresponding to the invalid satellites.
[0196] In an optional implementation of this embodiment, the determining module includes: a ninth determining submodule configured to determine the pseudorange difference between the reference satellite and the non-reference satellite; and a tenth determining submodule configured to determine an invalid satellite from the other satellites based on the pseudorange difference.
[0197] Figure 4 This is a schematic diagram of the structure of an electronic device suitable for implementing the positioning method according to embodiments of the present disclosure.
[0198] like Figure 4 As shown, the electronic device 400 includes a processing unit 401, which can be implemented as a CPU, GPU, FPGA, NPU, or other processing unit. The processing unit 401 can execute various processes according to any of the methods described above in this disclosure, based on a program stored in the read-only memory (ROM) 402 or a program loaded from the storage portion 408 into the random access memory (RAM) 403. The RAM 403 also stores various programs and data required for the operation of the electronic device 400. The processing unit 401, ROM 402, and RAM 403 are interconnected via a bus 404. An input / output (I / O) interface 405 is also connected to the bus 404.
[0199] The following components are connected to I / O interface 405: an input section 406 including a keyboard, mouse, etc.; an output section 407 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 408 including a hard disk, etc.; and a communication section 409 including a network interface card such as a LAN card, modem, etc. The communication section 409 performs communication processing via a network such as the Internet. A drive 410 is also connected to I / O interface 405 as needed. A removable medium 411, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on drive 410 as needed so that computer programs read from it can be installed into storage section 408 as needed.
[0200] In particular, according to embodiments of this disclosure, any of the methods described above in the embodiments of this disclosure can be implemented as a computer software program. For example, embodiments of this disclosure include a computer program product comprising a computer program tangibly embodied on a readable medium thereof, the computer program containing program code for performing any of the methods in the embodiments of this disclosure. In such an embodiment, the computer program can be downloaded and installed from a network via communication section 409, and / or installed from removable medium 411.
[0201] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0202] The units or modules described in the embodiments of this disclosure can be implemented in software or hardware. The described units or modules can also be located in a processor, and the names of these units or modules do not necessarily constitute a limitation on the unit or module itself.
[0203] In another aspect, this disclosure also provides a computer-readable storage medium, which may be a computer-readable storage medium included in the apparatus described in the above embodiments; or it may be a standalone computer-readable storage medium not assembled into a device. The computer-readable storage medium stores one or more programs that are used by one or more processors to perform the methods described in this disclosure.
[0204] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the invention involved in this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the inventive concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
Claims
1. A positioning method, wherein, include: Acquire satellite signals received by the positioning device from the positioning satellite; Decode the satellite signals; In descending order of position calculation accuracy, the position calculation modules corresponding to the accuracy are triggered. The position calculation modules determine the target position of the positioning device based at least on the decoding results. If the current position calculation module fails to calculate the target position, the next position calculation module is triggered until the target position of the positioning device is obtained or all position calculation modules fail to calculate the target position of the positioning device. The location calculation module includes a location calculation module that calculates the target location of the positioning device using complete satellite signals received from multiple satellites, and a location calculation module that calculates the target location of the positioning device using incomplete satellite signals received from multiple satellites.
2. The method according to claim 1, wherein, In order of decreasing position calculation accuracy, the position calculation modules are: GNSS single-point position calculation module, missing signal transmission time (TOW) position calculation module, coarse time three-star position calculation module, and two-star position calculation module.
3. The method according to claim 2, wherein, The GNSS single-point position calculation module is used to determine the target positioning position of the positioning device by using the classic GNSS single-point calculation algorithm when decoding the complete satellite signals of at least four satellites.
4. The method according to claim 2, wherein, The missing signal transmission time (TOW) location calculation module is used to determine the target positioning location based on the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement value when the signal transmission time corresponding to fewer than four satellites is decoded but the code phase measurement value corresponding to at least five satellites is decoded.
5. The method according to claim 4, wherein, The initial coarse time is used as the satellite signal transmission time of the at least five satellites. The calculation of the target positioning position based on the initial position of the positioning device, the satellite signal reception time on the positioning device, the initial coarse time, the ephemeris, and the code phase measurement value includes: Based on the initial position of the positioning device, the initial coarse time, the reception time of the satellite signal on the positioning device, the code phase measurement value of the at least five satellites, and the ephemeris, the position, coarse time, and device time of the positioning device are corrected until the correction item is less than or equal to a preset first threshold. The position corrected using the aforementioned correction term is determined as the GNSS positioning position of the positioning device.
6. The method according to claim 2, wherein, The coarse-time three-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse-time, and the code phase measurement value when the complete satellite signal of less than four satellites is decoded, but the code phase measurement value of less than five satellites is decoded, and the code phase measurement value is greater than or equal to three satellites.
7. The method according to claim 6, wherein, The step of determining the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the reception time of the satellite signal on the positioning device, the initial coarse time, and the code phase measurement value includes: For each of at least three satellites, within a first preset time range corresponding to the initial coarse time, a candidate coarse time for the positioning device at the initial reference position is determined; At the plurality of reference locations, a candidate positioning position of the positioning device at the candidate coarse time is determined; Within a second preset time range corresponding to the candidate coarse time, the positioning device determines the target coarse time corresponding to the satellite at the candidate positioning location; Within the first preset position range corresponding to the candidate positioning position, the target positioning position of the positioning device under the target coarse time is determined.
8. The method according to claim 2, wherein, The dual-satellite position calculation module is used to determine the target positioning position based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device when the complete satellite signals of at least two but less than four satellites are decoded.
9. The method according to claim 8, wherein, The step of determining the target positioning location based on multiple reference positions of the positioning device in the navigation planning path, the initial position of the positioning device, the signal transmission time, and the initial position of the positioning device includes: The geographical altitude of the location of the positioning device is determined based on the initial position of the positioning device; The candidate positioning location of the positioning device is determined based on the geographic altitude and the multiple reference locations. Within the second preset location range corresponding to the candidate location, the target location of the positioning device is determined.
10. The method according to any one of claims 3-6, wherein, Before triggering the position calculation module corresponding to the position calculation accuracy in descending order of accuracy to determine the target positioning position of the positioning device based at least on the decoding result, the method further includes: One satellite is selected from the plurality of satellites as a reference satellite, and the other satellites are used as non-reference satellites; Invalid satellites are identified from the non-reference satellites based on the reference satellites; Filter out the decoding results corresponding to the invalid satellites.
11. A computer program product comprising computer instructions, wherein, When executed by a processor, the computer instructions implement the method described in any one of claims 1-10.
Citation Information
Patent Citations
Quasi-state dual-satellite positioning method and application thereof
CN103713300A
Equipment positioning method and device, computer equipment and storage medium
CN112333819A