Positioning method, device, electronic device and storage medium

CN114252890BActive Publication Date: 2025-08-08ALIBABA GROUP HOLDING LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011020802.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-25
Publication Date
2025-08-08
Estimated Expiration
2040-09-25

AI Technical Summary

Technical Problem

[0002]无法获得终端(例如手机)的位置,会影响各类基于位置的服务提供,比如影响地图导航服务、网约车服务等的提供

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114252890B_ABST
    Figure CN114252890B_ABST
Patent Text Reader

Abstract

The embodiments of the present disclosure disclose a positioning method, apparatus, electronic device, and storage medium. The method includes: obtaining code phase measurement data of at least five satellites received by a terminal; obtaining the terminal's coarse positioning position, coarse time, terminal device time, and the ephemeris of the at least five satellites; based on the terminal's coarse positioning position, coarse time, terminal device time, the code phase measurement data of at least five satellites, and the ephemeris, correcting the terminal's coarse positioning position, coarse time, and the terminal device time until the correction term is less than or equal to a preset first threshold; and determining the coarse positioning position corrected by the correction term as the terminal's GNSS positioning position. This solution can determine the terminal's GNSS positioning position without calculating the complete pseudorange in an environment where the satellite signal is weak or blocked, and can reduce the requirements for time accuracy and improve the efficiency and accuracy of position solution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of positioning technology, and in particular to a positioning method, device, electronic device, and storage medium. Background Art

[0002] Failure to obtain the location of a terminal (such as a mobile phone) will affect the provision of various location-based services, such as map navigation services, online car-hailing services, etc. Existing terminals generally support satellite positioning, but satellite positioning often encounters problems with satellite signals being interfered with or blocked. This will cause the terminal to be unable to continuously and stably receive positioning satellite signals of good quality, resulting in the inability to calculate the TOW (Second time of Week) representing the time of satellite signal transmission based on the positioning satellite signals received by the terminal. Existing satellite positioning position solution solutions require solving the TOW of at least 4 satellites to complete the position solution. The inventors of the present disclosure have found that when a valid TOW cannot be calculated, how to perform effective satellite positioning position solution is one of the technical problems that currently need to be solved in this field. Summary of the Invention

[0003] Embodiments of the present disclosure provide a positioning method, apparatus, electronic device, and computer-readable storage medium.

[0004] In a first aspect, an embodiment of the present disclosure provides a positioning method, including:

[0005] Obtain code phase measurement data of at least five satellites received by the terminal;

[0006] Obtaining a rough positioning position, a rough time, a terminal device time, and the ephemeris of the at least five satellites of the terminal;

[0007] Based on the coarse positioning position, coarse time, terminal device time, code phase measurement data of the at least five satellites, and ephemeris of the terminal, correct the coarse positioning position, the coarse time, and the terminal device time of the terminal until a correction term is less than or equal to a preset first threshold;

[0008] The rough positioning position corrected by the correction item is determined as the GNSS positioning position of the terminal.

[0009] Furthermore, the coarse time is used as the signal transmission time of the at least five satellites, and the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the at least five satellites, and the ephemeris are corrected until the correction term is less than or equal to a preset first threshold, including:

[0010] Determining distances from the at least five satellites to the terminal based on the coarse time and the ephemeris of the at least five satellites;

[0011] Determine, based on the distances from the at least five satellites to the terminal, the satellite clock errors of the at least five satellites and the code phase measurement data, the terminal device clock error, and the physical delay, pseudorange integer millisecond values of the at least five satellites;

[0012] The coarse positioning position of the terminal, the coarse time and the terminal device time are corrected based on the whole millisecond values of the pseudoranges of the at least five satellites.

[0013] Furthermore, the coarse time is used as the satellite signal transmission time of the at least five satellites, and the coarse positioning position of the terminal, the coarse time, the code phase measurement data of the at least five satellites, and the ephemeris are corrected until the correction term is less than a preset first threshold, including:

[0014] Selecting one satellite from the at least five satellites as a reference satellite and the other satellites as non-reference satellites;

[0015] determining a valid satellite from the non-reference satellites according to the reference satellite;

[0016] Based on the rough positioning position of the terminal, the rough time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris, the rough positioning position of the terminal, the rough time, and the terminal device time are corrected.

[0017] Further, determining a valid satellite from the non-reference satellites according to the reference satellite includes:

[0018] determining a pseudorange error between the reference satellite and the non-reference satellite;

[0019] The other satellites whose pseudorange errors with the reference satellite are less than or equal to a preset second threshold are determined as the valid satellites.

[0020] Furthermore, determining a pseudorange error between the reference satellite and the non-reference satellite includes:

[0021] Determine a distance from the reference satellite to the terminal based on the coarse time and the ephemeris of the reference satellite;

[0022] Determine a pseudorange in milliseconds value of the reference satellite based on a distance from the reference satellite to the terminal, a satellite clock error of the reference satellite, the code phase measurement data, a device clock error of the terminal, and a physical delay;

[0023] The corrected pseudorange error between the reference satellite and the non-reference satellite is determined based on the pseudorange integer millisecond value of the reference satellite, the pre-corrected pseudorange of the reference satellite, the pre-corrected pseudorange of the non-reference satellite, the distance between the reference satellite and the terminal, the distance between the non-reference satellite and the terminal, the satellite clock error of the reference satellite, and the satellite clock error of the non-reference satellite.

[0024] Further, based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris, the coarse positioning position of the terminal, the coarse time, and the terminal device time are corrected, further comprising:

[0025] Determine the pseudorange integer millisecond value of the valid satellite based on the pseudorange integer millisecond value of the reference satellite, the difference in pseudorange between the reference satellite and the valid satellite before correction, and the difference in distance between the reference satellite, the valid satellite and the terminal;

[0026] The coarse positioning position of the terminal, the coarse time and the terminal device time are corrected based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite.

[0027] Further, the coarse positioning position of the terminal, the coarse time, and the terminal device time are corrected based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite, including:

[0028] Determine sub-millisecond pseudorange values of the reference satellite and the valid satellite based on the code phase measurement data;

[0029] Determine the complete pseudoranges of the reference satellite and the valid satellite according to the pseudorange whole millisecond value and the pseudorange sub-millisecond value;

[0030] Determine the pseudorange residuals of the reference satellite and the valid satellite according to the complete pseudorange and the initial pseudorange value;

[0031] The coarse positioning position of the terminal, the coarse time, and the correction item corresponding to the device clock difference time are determined according to the pseudorange residuals of the reference satellite and the valid satellite.

[0032] Furthermore, the initial pseudorange value is set to the value calculated from the preset whole pseudorange whole millisecond value in the first round of correction process, and is set to the complete pseudorange obtained in the previous round of correction process starting from the second round of correction process.

[0033] Furthermore, the coarse positioning position of the terminal, the coarse time, and the terminal device time are corrected based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite, further comprising:

[0034] When the correction item is greater than the first threshold, the next round of correction is performed on the coarse positioning position, the coarse time and the device clock error based on the coarse positioning position corrected by the correction item, the corrected coarse time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris.

[0035] Further, selecting one satellite from the at least five satellites as a reference satellite includes:

[0036] A satellite with the largest elevation angle among the at least five satellites is selected as the reference satellite.

[0037] In a second aspect, an embodiment of the present disclosure provides a navigation method, which locates the position of a navigated object using the positioning method described in the first aspect.

[0038] In a third aspect, an embodiment of the present disclosure provides a positioning device, including:

[0039] A first acquisition module is configured to acquire code phase measurement data of at least five satellites received by the terminal;

[0040] A second acquisition module is configured to acquire a coarse positioning position, a coarse time, a terminal device time and the ephemeris of the at least five satellites of the terminal;

[0041] a correction module, configured to correct the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the at least five satellites, and the ephemeris, until the correction term is less than or equal to a preset first threshold;

[0042] The first determining module is configured to determine the coarse positioning position corrected by using the correction item as the GNSS positioning position of the terminal.

[0043] In a fourth aspect, an embodiment of the present disclosure provides a navigation device, which uses the positioning device described in the third aspect to locate the position of the navigated object.

[0044] The functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the functions.

[0045] In one possible design, the apparatus includes a memory and a processor. The memory is configured to store one or more computer instructions that enable the apparatus to perform the corresponding method, and the processor is configured to execute the computer instructions stored in the memory. The apparatus may also include a communication interface for communicating with other devices or a communication network.

[0046] In a fifth aspect, an embodiment of the present disclosure provides an electronic device comprising 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 one of the above aspects.

[0047] In a sixth aspect, an embodiment of the present disclosure provides a computer-readable storage medium for storing computer instructions used by any of the above-mentioned devices, which includes computer instructions involved in executing the method described in any of the above-mentioned aspects.

[0048] The technical solutions provided by the embodiments of the present disclosure may have the following beneficial effects:

[0049] The disclosed embodiment utilizes code phase measurement data from at least five satellites, the terminal's rough positioning position, rough time, terminal device time, code phase measurement data from at least five satellites, and ephemeris to correct the terminal's rough positioning position, rough time, and terminal device time. When the correction term is less than or equal to a preset first threshold, the rough positioning position corrected by the correction term is determined as the terminal's GNSS position. In environments where satellite signals are weak or obscured, this technical solution can determine the terminal's GNSS positioning position by adding the rough time of satellite signal transmission to the traditional positioning method without calculating the complete pseudorange. Furthermore, this technical solution utilizes the introduction of the terminal's rough positioning position during the positioning process, reducing the requirements for time accuracy and improving the efficiency and accuracy of position resolution.

[0050] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0051] Other features, objectives and advantages of the present disclosure will become more apparent through the following detailed description of non-limiting embodiments in conjunction with the accompanying drawings. In the accompanying drawings:

[0052] Figure 1 A flowchart of a positioning method according to an embodiment of the present disclosure is shown;

[0053] Figure 2 A schematic diagram showing a structure of a satellite signal;

[0054] Figure 3A schematic diagram showing an application scenario on a mobile phone according to an embodiment of the present disclosure is shown;

[0055] Figure 4 A schematic diagram of the implementation process of position positioning on a mobile phone according to an embodiment of the present disclosure is shown;

[0056] Figure 5 Shown Figure 4 Flowchart of the iterative calculation part of step S406;

[0057] Figure 6 It is a structural diagram of an electronic device suitable for implementing a positioning method and / or navigation method according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0058] Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement them. In addition, for the sake of clarity, parts not related to the description of the exemplary embodiments are omitted in the accompanying drawings.

[0059] In the present disclosure, it should be understood that terms such as "include" or "have" are intended to indicate the presence of features, numbers, steps, actions, components, parts, or combinations thereof disclosed in the present specification, and are not intended to exclude the possibility that one or more other features, numbers, steps, actions, components, parts, or combinations thereof exist or are added.

[0060] It should also be noted that, in the absence of conflict, the embodiments and features of the embodiments of the present disclosure may be combined with each other. The present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0061] The details of the embodiments of the present disclosure are described in detail below through specific examples.

[0062] Figure 1 FIG. 1 is a flow chart of a positioning method according to an embodiment of the present disclosure. Figure 1 As shown, the positioning method includes the following steps:

[0063] In step S101, code phase measurement data of at least five satellites received by the terminal is obtained;

[0064] In step S102, the rough positioning position, rough time, terminal device time and ephemeris of the at least five satellites of the terminal are obtained;

[0065] In step S103, based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the at least five satellites, and the ephemeris, the coarse positioning position of the terminal, the coarse time, and the terminal device time are corrected until the correction term is less than or equal to a preset first threshold;

[0066] In step S104, the rough positioning position corrected by the correction item is determined as the GNSS positioning position of the terminal.

[0067] In this embodiment, the positioning method is executed on a terminal, which may include but is not limited to mobile terminals that can connect to a network (e.g., 4G / 5G network, Wi-Fi, Bluetooth) to obtain network positioning, such as mobile phones, iPads, computers, smart watches, vehicles, etc. This disclosed embodiment applies the coarse time positioning method of satellite positioning to the terminal used by the user, targeting terminals whose positioning is inaccurate and affects navigation.

[0068] Pseudorange refers to the logical distance between a satellite and a terminal. This logical distance is not the actual distance between the satellite and the terminal because it takes into account errors such as the clock offset between the terminal and the satellite. Pseudorange can be calculated by subtracting the transmission time of the satellite signal received by the terminal from the terminal's local time and multiplying the result by the speed of light. The signal transmission time can be calculated from the time of arrival (TOW) obtained by decoding the satellite signal. Pseudorange consists of two values: a whole-millisecond pseudorange value and a sub-millisecond pseudorange value. The whole-millisecond pseudorange value can be obtained from the TOW, while the sub-millisecond pseudorange value can be obtained from the satellite's code phase measurement data.

[0069] Figure 2 A schematic diagram showing the structure of satellite signals is shown in FIG. Figure 2 As shown, the satellite signal includes multiple subframes, each subframe period is 6 seconds, each subframe sends 300 bits of data, each bit period is 20ms, each bit sends 20 C / A codes, each C / A code period is 1ms, each C / A code sends 1023 code elements, each code element contains multiple carriers, and each carrier frequency is about 1GHz. Since a C / A code is sent every 1ms, the code phase measurement data corresponding to the satellite can be obtained by measuring the offset of the code element, that is, the pseudo-range sub-millisecond value; that is, the code phase measurement data can be measured without decoding the TOW in the satellite signal.

[0070] In an embodiment of the present disclosure, in an environment where the signal is blocked or the signal is weak, when the complete satellite signal cannot be resolved (that is, TOW cannot be determined), code phase measurement data of at least five satellites can be obtained, and the terminal's coarse positioning position, coarse time, terminal device time, and ephemeris of at least five satellites can be obtained. The coarse positioning position of the terminal can be understood as the initial positioning position of the terminal. The coarse positioning position of the terminal can be a position near the satellite positioning position of the terminal, for example, it can be a network positioning position obtained using a network (such as 4G / 5G network, Wi-Fi, Bluetooth) (the network positioning position is not the precise terminal positioning position), and the network positioning position has a certain deviation from the satellite positioning position of the terminal. The coarse time can be the measured satellite signal transmission time. Since TOW cannot be quickly resolved in a scenario where the signal is blocked or weak, the coarse time can be a time estimated based on known information. For example, the coarse time can be obtained using the terminal device time, or the terminal device time minus the average transmission delay of the satellite signal. In some embodiments, the initial value of the pseudorange between the satellite and the terminal can be calculated using the coarse time and the satellite signal reception time.

[0071] In the embodiment of the present disclosure, the coarse positioning position, coarse time and terminal device time of the terminal are continuously corrected. Finally, when the correction item is less than a first threshold, the coarse positioning position corrected according to the correction item is determined as the GNSS positioning position of the terminal.

[0072] As mentioned in the background, existing satellite positioning solutions require solving the TOW of at least four satellites to complete the position solution. The following is a positioning equation used in the process of GNSS solution using at least four satellites in the existing technology:

[0073]

[0074] Where Δρ is the pseudorange residual, Δx includes four unknown variables, namely the correction values of the receiver's three-dimensional coordinates x, y, and z and the receiver's clock error, ε is the error term, x0 is the initial value of x, and ρ is the pseudorange, which is calculated as follows:

[0075] ρ=r+b-δ t +I+T (2)

[0076]

[0077] Where r is the distance between the satellite and the receiver, x k 、y k and z k is the three-dimensional coordinate of the satellite, b is the receiver clock error, δ t is the satellite clock error, I and T are the tropospheric and ionospheric delays;

[0078] In the above formula, the unknown variable Δx involves four variables (x, y, z, b). After performing partial derivative operation on the above formula (1), the following formula is obtained:

[0079]

[0080] in:

[0081]

[0082] Where r0 is the initial distance between the satellite and the terminal, and (x0, y0, z0) is the initial position of the receiver.

[0083] Because the positioning equation above includes four unknown variables, the receiver's three-dimensional coordinates can be calculated by observing at least four satellites and iterating the positioning equation in Equation 3. However, solving this positioning equation requires reading the pseudorange between the satellite and the terminal from the received satellite signal. If the signal is blocked or weak, the correct terminal position cannot be successfully calculated.

[0084] The positioning equation used in the embodiments of the present disclosure adds a variable tc to Δx, which represents the satellite's signal transmission time, that is, the rough time. Since it affects the satellite's position and speed, it can be obtained:

[0085]

[0086]

[0087] in, represents the satellite clock drift speed, Represents the satellite velocity. Adding the above-mentioned added partial derivative to the equation (4) in the classical solution process, the following positioning equation can be obtained:

[0088]

[0089] Among them, Δx involves five unknown variables, namely the three-dimensional coordinates x, y, z of the terminal, the terminal clock error b and the rough time tc, v is the satellite speed, δ t It is the satellite clock drift, is the satellite clock drift velocity, and ε is the error term. In the above formula, Δx includes the correction value of the above five unknown variables (that is, the absolute value of the difference between the current iterative solution result and the previous iterative solution result of the corresponding unknown variable). Compared with the positioning equation (1) in the above-mentioned prior art, this positioning equation (7) adds a coarse time.

[0090] The positioning equation (7) used in the embodiment of the present disclosure adds an unknown variable compared to the positioning equation (1) in the prior art. Therefore, only one satellite needs to be added to solve the positioning equation (7). It can be understood that in the process of solving the positioning equation (7), using more than five satellites can achieve better results. In addition, the positioning equation (7) can be solved without waiting for the complete pseudorange to be read from the satellite signal, that is, the positioning equation (7) and the pseudorange residual can be used to obtain the solution result without solving TOW. The pseudorange residual can be used to calculate the correction term using code phase measurement data, the rough positioning position of the terminal, the rough time, the terminal device time, the ephemeris of at least five satellites, and the initial value of the pseudorange. The correction term can include the correction amount of the above five unknown variables. For example, the correction term can be the sum of the squares of the correction amounts of the five unknown variables. After using the positioning equation (7) to calculate the corrections for the five unknown variables, the corrections can be used to correct the initial values of the five unknown variables. The initial value of the terminal's coarse positioning position can be the network positioning position. The deviation of the network positioning position is usually within 1 km. Therefore, using the network positioning position as the coarse positioning position of the terminal for iterative calculation can improve the solution efficiency. The initial value of the coarse time can be the terminal device time, or the terminal device time minus the average transmission delay of the satellite signal. The initial value of the clock error can be determined using the terminal device time.

[0091] After the terminal's coarse positioning position, coarse time, and clock error correction term are calculated using the positioning equation (7), the coarse positioning position, coarse time, and terminal device time (corrected using the clock error correction term) can be corrected using the correction term. To obtain accurate results, the embodiment of the present disclosure iterates the correction process to continuously correct the coarse positioning position, coarse time, and terminal device time until the correction term is less than or equal to a preset first threshold.

[0092] During the iterative correction process, the pseudorange can be calculated based on the above-mentioned code phase measurement data, the rough positioning position of the terminal, and the rough time, and 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 above-mentioned positioning equation to solve the correction amount of the unknown variable. The iteration end condition may include but is not limited to the correction term being less than or equal to a preset first threshold or the number of iterations being greater than or equal to the number threshold. The first threshold and the number threshold can be pre-set according to the actual application scenario, such as the required positioning accuracy. In some embodiments, the correction term of the unknown variable can be, for example, the sum of the squares of the correction amounts of each unknown variable in the result of this iteration. When the iteration end condition is not met, the next iteration can be performed based on the result of this iteration and the above-mentioned positioning equation until the iteration end condition is met.

[0093] The above positioning equation (7) is only one of the feasible expressions, which can also be transformed according to the relevant theoretical knowledge of GNSS satellite positioning. As long as the positioning equation involves five unknown variables, namely, the terminal positioning position (including three variables x, y, and z), the rough time, and the terminal clock error, the above method proposed in the embodiment of the present disclosure can be used to solve the terminal positioning position without solving the TOW.

[0094] The disclosed embodiment utilizes code phase measurement data from at least five satellites, the terminal's rough positioning position, rough time, terminal device time, code phase measurement data from at least five satellites, and ephemeris to correct the terminal's rough positioning position, rough time, and terminal device time. When the correction term is less than or equal to a preset first threshold, the rough positioning position corrected by the correction term is determined as the terminal's GNSS position. In environments where satellite signals are weak or obscured, this technical solution can determine the terminal's GNSS positioning position by adding the rough time of satellite signal transmission to the traditional positioning method without calculating the complete pseudorange. Furthermore, this technical solution utilizes the introduction of the terminal's rough positioning position during the positioning process, reducing the requirements for time accuracy and improving the efficiency and accuracy of position resolution.

[0095] In an optional implementation of this embodiment, the coarse time is used as the signal transmission time of the at least five satellites. Step S103, i.e., the step of correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the code phase measurement data of the at least five satellites, and the ephemeris, until the correction term is less than a preset first threshold, further includes the following steps:

[0096] Determining distances from the at least five satellites to the terminal based on the coarse time and the ephemeris of the at least five satellites;

[0097] Determine, based on the distances from the at least five satellites to the terminal, the satellite clock errors of the at least five satellites and the code phase measurement data, the terminal device clock error, and the physical delay, pseudorange integer millisecond values of the at least five satellites;

[0098] The coarse positioning position of the terminal, the coarse time and the device clock error are corrected based on the whole millisecond values of the pseudoranges of the at least five satellites.

[0099] In this optional implementation, the rough time is used to represent the satellite's signal transmission time. During the initial correction process, that is, the first round of iteration, the rough time is not accurate, but a roughly estimated value. Its initial value can use the terminal device time, and the rough time can be continuously corrected in subsequent iterations so that the rough time finally corrected is the accurate satellite signal transmission time.

[0100] In some embodiments, the satellite position of each satellite when the satellite signal is transmitted can be determined based on the ephemeris of at least five satellites and the corresponding rough time. The true distance between the terminal and the satellite can be determined based on the satellite position and the terminal positioning position (rough positioning position in the correction process). It should be noted that the distance between the terminal and the satellite here is obtained by position calculation, which is different from the pseudo-range mentioned above. The pseudo-range is obtained by using the signal transmission time and the signal reception time, and the pseudo-range has a certain deviation. In the initial correction process, that is, the first round of iteration, the terminal positioning position is the rough positioning position of the terminal, and the rough time is also the estimated time, for example, it can be the terminal device time, and the subsequent correction process, that is, starting from the second round of iteration, the terminal positioning position is the rough positioning position corrected in the previous round.

[0101] Based on the distance between the terminal and the satellite and the deviation in the pseudorange, a relationship between the pseudorange and the distance can be established, and then the pseudorange whole millisecond value can be calculated based on the distance and the pseudorange submillimeter value (this part is calculated based on the code phase measurement data, is known and accurate).

[0102] An example relationship between distance and pseudorange is described below.

[0103] N 0 =round(r 0 -δ 0 t +b+T i +T t -ρ sub 0 ) (8)

[0104] Among them, N 0 Indicates the pseudo-range value in milliseconds between the satellite and the terminal, r 0 represents the distance between the satellite and the terminal (in the actual calculation process, this distance can be expressed as equivalent time, that is, the distance between the satellite and the terminal divided by the speed of light), δ 0 t represents the satellite clock error, b represents the terminal clock error, T i and T t Represent the ionospheric and tropospheric delays, that is, the physical delay, ρ sub 0 Indicates the sub-millisecond pseudorange value; round is the rounding function.

[0105] Since the sub-millisecond pseudorange values of at least five satellites can be calculated based on the known code phase measurement data, and the whole millisecond pseudorange values are calculated according to the above process, the complete pseudoranges of at least five satellites can be obtained by using the whole millisecond pseudorange values and the sub-millisecond pseudorange values. Based on the initial pseudorange value and the calculated complete pseudorange, the pseudorange residual can be calculated. By substituting the pseudorange residual into the positioning equation including five unknown variables proposed in the embodiment of the present disclosure, the correction items corresponding to the terminal positioning position, coarse time and terminal device time (including the correction amount of the terminal positioning position, the correction amount of the coarse time and the terminal clock error) can be solved. The correction items can be used to correct the terminal positioning position, coarse time and terminal device time. It should be noted that when calculating the pseudorange residual, the initial pseudorange value is the estimated pseudorange value in the first round of iteration, and in the subsequent iterations, it is the complete pseudorange calculated in the previous round of iteration.

[0106] In an optional implementation of this embodiment, the coarse time is used as the signal transmission time of the at least five satellites. Step S103, i.e., the step of correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time of the terminal based on the coarse positioning position of the terminal, the coarse time, the code phase measurement data of the at least five satellites, and the ephemeris, until the correction term is less than a preset first threshold, further includes the following steps:

[0107] Selecting one satellite from the at least five satellites as a reference satellite and the other satellites as non-reference satellites;

[0108] determining a valid satellite from the non-reference satellites according to the reference satellite;

[0109] Based on the rough positioning position of the terminal, the rough time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris, the rough positioning position of the terminal, the rough time, and the terminal device time are corrected.

[0110] In this optional implementation, before calculating the pseudorange integer millisecond values between the at least five satellites and the terminal, one of the at least five satellites can be selected as a reference satellite. To reduce errors, a valid satellite among the non-reference satellites can be determined based on the reference satellite. A valid satellite can be a satellite among the non-reference satellites that does not cause significant errors. In some embodiments, the pseudorange error between the non-reference satellite and the reference satellite can be determined first, and the non-reference satellite with the smaller pseudorange error can be determined as a valid satellite.

[0111] During the correction process, the terminal positioning position, coarse time, and terminal device time can be corrected based only on reference satellites and valid satellites. In this way, since satellites that may cause large errors are filtered out and only reference satellites and valid satellites are retained, the final correction result is more accurate.

[0112] In an optional implementation of this embodiment, the step of determining a valid satellite from the non-reference satellites according to the reference satellite further includes the following steps:

[0113] determining a pseudorange error between the reference satellite and the non-reference satellite;

[0114] The other satellites whose pseudorange errors with the reference satellite are less than or equal to a preset second threshold are determined as the valid satellites.

[0115] In this optional implementation, to reduce correction errors, satellites that may cause large correction errors can be filtered based on pseudorange errors. In some embodiments, non-reference satellites whose pseudorange errors with reference satellites are less than or equal to a preset second threshold can be identified as valid satellites, while non-reference satellites whose pseudorange errors exceed the second threshold can be identified as invalid satellites for filtering. The second threshold can be determined based on the actual application scenario; for example, the second threshold can be set to a value that causes a pseudorange error of more than 10 kilometers.

[0116] In an optional implementation of this embodiment, determining the pseudorange error between the reference satellite and the non-reference satellite includes:

[0117] Determine a distance from the reference satellite to the terminal based on the coarse time and the ephemeris of the reference satellite;

[0118] Determine a pseudorange in milliseconds value of the reference satellite based on a distance from the reference satellite to the terminal, a satellite clock error of the reference satellite, the code phase measurement data, a device clock error of the terminal, and a physical delay;

[0119] The corrected pseudorange error between the reference satellite and the non-reference satellite is determined based on the pseudorange integer millisecond value of the reference satellite, the pre-corrected pseudorange of the reference satellite, the pre-corrected pseudorange of the non-reference satellite, the distance between the reference satellite and the terminal, the distance between the non-reference satellite and the terminal, the satellite clock error of the reference satellite, and the satellite clock error of the non-reference satellite.

[0120] In this optional implementation, the satellite position of the reference satellite at the time of satellite signal transmission can be determined based on the reference satellite's ephemeris and the corresponding coarse time. The true distance between the terminal and the reference satellite can be determined based on the satellite position and the terminal's positioning position. The pseudorange in milliseconds between the terminal and the reference satellite can be calculated based on the relationship between distance and pseudorange (Equation (8)) mentioned above.

[0121] After determining the pseudo-range integer millisecond value between the reference satellite and the terminal, the pseudo-range integer millisecond value of the non-reference satellite can be restored using the pseudo-range integer millisecond value of the reference satellite. This restoration process can obtain the pseudo-range integer millisecond value between the non-reference satellite and the terminal by establishing a corresponding relationship.

[0122] The following example illustrates the process of restoring the whole millisecond value of the pseudo-range between the reference satellite and the terminal to obtain the whole millisecond value of the pseudo-range between the non-reference satellite and the terminal.

[0123] The relationship between the pseudorange between the reference satellite and the terminal and the pseudorange between the non-reference satellite and the terminal can be expressed as follows:

[0124] N k =N 0 +ρ 0 -ρ k +(r k -δ k t )-(r 0 -δ 0 t )+(d 0 -d t )-(ε 0 -ε k ) (9)

[0125] Among them, N k Indicates the pseudo-range value in milliseconds between the kth non-reference satellite and the terminal, N 0 Indicates the pseudo-range value in milliseconds between the reference satellite and the terminal, ρ 0 represents the pseudorange of the reference satellite before correction, that is, the pseudorange in the previous iteration or the initial pseudorange; ρ k represents the pseudorange before correction of the kth satellite, that is, the pseudorange in the previous iteration or the initial value of the pseudorange, r k represents the distance between the kth other satellite and the terminal, r 0 represents the distance between the reference satellite and the terminal, δ k t represents the clock error of the kth other satellite, δ 0 t represents the clock error of the reference satellite; d 0 is the position deviation of the reference satellite, d kis the position deviation of the kth satellite, ε 0 is the error term of the reference satellite, ε k is the error term of other satellites.

[0126] Since the embodiment of the present disclosure selects to use the network positioning position of the terminal as the initial position of the terminal positioning position, the initial position is relatively accurate, with an error within 1 km. Therefore, the position deviation of the reference satellite and the position deviation of the k-th satellite caused are relatively small. Therefore, according to the above relationship, the pseudo-range error relationship between the reference satellite and the k-th non-reference satellite can be obtained (the error term ε 0 -ε k Can be ignored):

[0127] N k =round(N 0 +ρ 0 -ρ k +(r k -δ k t )-(r 0 -δ 0 t )) (10)

[0128] The pseudorange error N between the reference satellite and the kth non-reference satellite can be determined by the above relationship k -N 0 If the decimal part in the above brackets is too large, it can be considered that the pseudorange error between the kth other satellite and the reference satellite is large. Therefore, the decimal part in the brackets in the above relationship can be compared with the second threshold to determine whether the other satellite is a valid satellite. If the decimal part is less than or equal to the second threshold, the other satellite is determined to be a valid satellite.

[0129] In addition, the whole millisecond value of the pseudorange between the kth non-reference satellite and the terminal can also be obtained by rounding off the part in the brackets in the above relationship (10).

[0130] In an optional implementation of this embodiment, correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris further includes:

[0131] Determine the pseudorange integer millisecond value of the valid satellite based on the pseudorange integer millisecond value of the reference satellite, the difference in pseudorange between the reference satellite and the valid satellite before correction, and the difference in distance between the reference satellite, the valid satellite and the terminal;

[0132] The coarse positioning position of the terminal, the coarse time and the terminal device time are corrected based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite.

[0133] In this optional implementation, after determining the pseudo-range integer millisecond value of the reference satellite, the pseudo-range integer millisecond value of the non-reference satellite can be restored based on the pseudo-range error relationship between the reference satellite and the kth non-reference satellite mentioned above. As described above, the pseudo-range integer millisecond value N of the reference satellite can be restored. 0 , the difference in pseudorange before correction between the reference satellite and the effective satellite (ρ 0 -ρ k ), the difference between the distances of the reference satellite and the effective satellite and the terminal (r k -δ k t )-(r 0 -δ 0 t ) into the above relationship (10), we can get the pseudo-range integer millisecond value N between the effective satellite and the terminal in the current correction process k .

[0134] After the pseudo-range integer millisecond values of the reference satellite and the valid satellite are determined, the coarse positioning position, coarse time and terminal device time of the terminal can be corrected according to the pseudo-range integer millisecond values.

[0135] In an optional implementation of this embodiment, correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite includes:

[0136] Determine sub-millisecond pseudorange values of the reference satellite and the valid satellite based on the code phase measurement data;

[0137] Determine the complete pseudoranges of the reference satellite and the valid satellite according to the pseudorange whole millisecond value and the pseudorange sub-millisecond value;

[0138] Determine the pseudorange residuals of the reference satellite and the valid satellite according to the complete pseudorange and the initial pseudorange value;

[0139] The coarse positioning position of the terminal, the coarse time, and the correction item corresponding to the device clock difference time are determined according to the pseudorange residuals of the reference satellite and the valid satellite.

[0140] In this optional implementation, the pseudo-range between the satellite and the terminal is obtained by using the satellite's signal transmission time and the terminal's signal reception time, that is, the pseudo-range between the satellite and the terminal is obtained by subtracting the signal transmission time from the signal reception time and multiplying it by the speed of light. Figure 2As shown in , since the signal transmission time is composed of a pseudorange whole millisecond value and a pseudorange submillisecond value, the pseudorange whole millisecond value needs to be obtained from the satellite signal's time of flight, while the pseudorange submillimeter value can be obtained from the code phase measurement. Because the satellite signal's time of flight is unknown in the application scenarios corresponding to the embodiments of the present disclosure, and only the code phase measurement (i.e., the submillisecond portion of the signal transmission time) is known, an approximate pseudorange value can be calculated before iteration, and then continuously corrected through iterative calculations.

[0141] In some embodiments, the process of approximate pseudorange calculation may include: since the distance between the satellite and the earth is about 20,000 kilometers, which is equivalent to the distance that light travels in 70 milliseconds, it can be assumed that the pseudorange between the satellite and the terminal is (70000000-sv)*0.299792458, where sv represents the code phase measurement value expressed in nanoseconds, and the part in the brackets is the time difference expressed in nanoseconds, multiplied by the speed of light. In this way, the initial pseudorange between all satellites and the terminal can be obtained as the distance corresponding to 70 milliseconds. The initial pseudorange sub-millisecond value is accurate, but the pseudorange whole millisecond value is inaccurate. Therefore, a pseudorange whole millisecond correction can be added to the positioning equation for each satellite. The correction of the pseudorange whole millisecond value is actually the correction of the pseudorange whole millisecond value in the coarse time. It should be noted that the pseudorange is determined by the signal transmission time and the signal reception time. Since the signal reception time is determined, and the signal transmission time includes the pseudorange whole millisecond value read from the TOW and the pseudorange sub-millisecond value obtained from the code phase measurement data, the pseudorange whole millisecond value is actually the whole millisecond value in the signal transmission time, and the pseudorange sub-millisecond value is the sub-millisecond value in the signal transmission time. The pseudorange is equal to the signal reception time minus the pseudorange whole millisecond value plus the pseudorange sub-millisecond value to obtain the signal transmission time multiplied by the speed of light.

[0142] During the correction process, the pseudorange whole millisecond value can be calculated based on the terminal position and code phase measurements. The pseudorange residual can be obtained by combining this pseudorange whole millisecond value with the pseudorange whole millisecond value in the initial pseudorange value. The complete pseudorange in the current iteration can be determined based on this pseudorange whole millisecond value and the pseudorange submillimeter value in the code phase measurements. This is the pseudorange corresponding to the sum of the whole millisecond and submillimeter components.

[0143] During the first correction (i.e., iteration) process, the initial value of the terminal position and the calculated initial pseudorange can be used as the solution result obtained in the previous correction process. According to the complete pseudoranges corresponding to the reference satellite and the valid satellite calculated in the current correction process and the complete pseudoranges calculated in the previous correction process, the pseudorange residuals corresponding to at least five satellites including the reference satellite and the valid satellite can be obtained, and then the pseudorange residuals and other related data of at least five satellites are respectively brought into the above-mentioned positioning equation with 5 unknown variables to obtain five equations to be solved. According to the five equations to be solved, the solution result in the current correction process can be calculated, and the solution result includes the correction term in the current correction process, and the correction term includes the correction amount of the terminal positioning position, the correction amount of the rough time and the correction amount of the terminal device time (i.e., the clock error of the terminal device). It should be noted that the calculation processes mentioned above are all calculated for at least five satellites respectively, so the pseudorange residuals and related data corresponding to at least five satellites can be brought into the positioning equation to obtain at least five equations, and the values of the five unknown variables in the positioning equation can be solved by the at least five equations. The coarse positioning time, coarse time and terminal device time of the terminal can be corrected according to the values of the five unknown variables. The corrected coarse positioning time, coarse time and terminal device time can be used as initial values in the next correction process.

[0144] In an optional implementation of this embodiment, the initial pseudorange value is set to a value calculated from a preset whole pseudorange whole millisecond value during the first round of correction, and is set to the complete pseudorange obtained during the previous round of correction starting from the second round of correction.

[0145] In this optional implementation, as described above, the correction of the terminal's coarse positioning position, coarse time, and terminal device time in the disclosed embodiment is a process of continuous iterative optimization. In the first round of correction, i.e., the first round of iteration, the initial pseudorange values between the reference satellite and the valid satellite and the terminal can be estimated in advance, for example, by the following method:

[0146] Since the distance between satellites and Earth is approximately 20,000 kilometers, equivalent to the distance light travels in 70 milliseconds, we can assume the pseudorange between the satellite and the terminal is (70,000,000 - sv) * 0.299792458, where sv represents the code phase measurement in nanoseconds, and the number in parentheses represents the time difference in nanoseconds, multiplied by the speed of light. This method allows us to calculate the initial pseudorange value for all satellites and the terminal, corresponding to a distance of 70 milliseconds. In subsequent corrections, the pseudorange obtained in the previous round of corrections is used as the initial pseudorange value.

[0147] In an optional implementation of this embodiment, correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite further includes:

[0148] When the correction item is greater than the first threshold, the next round of correction is performed on the coarse positioning position, the coarse time and the terminal device time based on the coarse positioning position corrected by the correction item, the corrected coarse time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris.

[0149] In this optional implementation, as described above, the correction process of the embodiment of the present disclosure is a process of continuous iterative optimization. Each round of correction process uses the final calculated correction term to correct the coarse positioning position, coarse time and terminal device time. The conditions for the end of the correction may include but are not limited to the correction term being less than the second threshold and the number of iterations exceeding the preset number. As mentioned above, the correction term includes the correction amount of the terminal's coarse positioning position (three variables of x, y, and z), coarse time and terminal device time. The value of the correction term can be obtained by calculating the sum of the squares of the correction amounts of the above five variables. The value of the correction term is compared with the preset second threshold. If it is less than or equal to the second threshold, it can be considered that the current coarse positioning position, coarse time and terminal device time are close to the true value and no further correction is required. The correction process can be ended, and the coarse positioning position corrected by the last correction term is determined as the terminal's GNSS positioning position, and the corrected terminal device time is determined as the terminal's current time, and the corrected coarse time is determined as the satellite signal transmission time.

[0150] When the value of the correction item is greater than the second threshold, it can be considered that the current coarse positioning position, coarse time and terminal device time are not close enough to the true value and need to be further corrected. Therefore, the coarse positioning position, coarse time and terminal device time of the terminal can be further corrected by executing the next round of iterative process.

[0151] In an optional implementation of this embodiment, selecting one satellite from the at least five satellites as a reference satellite includes:

[0152] A satellite with the largest elevation angle among the at least five satellites is selected as the reference satellite.

[0153] In this optional implementation, to achieve more accurate measurement results, the satellite with the highest elevation angle among at least five satellites can be used as a reference satellite. A satellite's elevation angle is the angle between the satellite and the observer's horizon. This angle describes the satellite's position above the terminal at a given moment. An elevation angle of 90° indicates the satellite is directly above the terminal. Because the elevation angle is dependent on the terminal's location, terminals at different locations on the ground will see different elevation angles for the same satellite. Furthermore, the elevation angle changes continuously as the satellite moves in its orbit.

[0154] Figure 3 Schematic diagram of an application scenario on a mobile phone according to an embodiment of the present disclosure is shown. Figure 3 As shown, the mobile phone obtains code phase measurement values of at least five satellites through tracking observation. In the case of weak signal and / or signal obstruction, the pseudo-range sub-millisecond value, coarse time, mobile phone time and the coarse positioning position of each satellite are used to calculate the pseudo-range whole millisecond value between each satellite and the mobile phone. Then, the corrected complete pseudo-range between each satellite and the mobile phone is obtained based on the pseudo-range whole millisecond value and the pseudo-range sub-millisecond value. During the initial correction process, the coarse time can be the satellite signal transmission time estimated based on the local time of the mobile phone or the mobile phone network time. For example, the local time of the mobile phone or the mobile phone network time can be directly used as the initial value of the coarse time, or the initial value of the coarse time can be obtained by subtracting the transmission delay of the satellite signal from the local time of the mobile phone or the mobile phone network time. The initial value of the coarse positioning position of the mobile phone can be the network positioning position obtained by the mobile phone through the network, and the initial value of the mobile phone time can be the local time of the mobile phone. The pseudorange residual can be calculated based on the corrected complete pseudorange and the pseudorange before correction obtained in the previous iteration. The pseudorange residual is substituted into the positioning equation to calculate the correction term Δx of the unknown variable in this iteration. The coarse time is corrected using the correction amount of the coarse time in Δx, and the coarse positioning position of the mobile phone is corrected using the correction amount of the mobile phone positioning position in Δx. The mobile phone time is also corrected using the mobile phone clock error in Δx. Then the above steps are repeated, that is, the corrected coarse time, the coarse positioning position of the mobile phone, and the pseudorange whole millisecond value obtained by the code phase measurement value are used to recalculate the corrected complete pseudorange in this iteration, and the pseudorange residual is obtained based on the corrected complete pseudorange. The pseudorange residual is substituted into the positioning equation to obtain the correction term Δx in this iteration. The coarse positioning position, coarse time, and mobile phone time of the mobile phone are continuously iteratively optimized in the above manner to ultimately obtain the accurate mobile phone position, coarse time, and mobile phone time.

[0155] An exemplary implementation process of the embodiment of the present disclosure is described below by taking an example.

[0156] Figure 4FIG. 1 is a schematic diagram showing a process of implementing location positioning on a mobile phone according to an embodiment of the present disclosure. Figure 4 As shown, the steps of the mobile phone positioning process include:

[0157] Step S401: Obtain code phase measurement data of at least five satellites by tracking and measuring satellite signals;

[0158] Step S402: Obtaining ephemeris information of at least five satellites;

[0159] Step S403: obtaining a network positioning position based on the current network environment of the mobile phone, and using the network positioning position as the initial position of the mobile phone, i.e., the rough positioning position of the mobile phone;

[0160] Step S404: Obtain a rough time according to a pre-set method. The rough time can use the local time of the mobile phone or the network time obtained from the network. The error of the local time or the network time can be within 5 seconds.

[0161] Step S405: Calculate the initial pseudorange between each of the at least five satellites and the mobile phone. At this time, only the code phase (i.e., the sub-millisecond pseudorange value) of each satellite's signal transmission time is known. Therefore, an approximate pseudorange value can be calculated as the initial pseudorange value, and then the pseudorange can be iteratively optimized.

[0162] Step S406: Iteratively calculate the location of the mobile phone; when the correction term Δx corresponding to the mobile phone location, mobile phone time, and rough time is greater than a first threshold, proceed to step S406 to perform the iterative step;

[0163] Step S407: When the correction term Δx is less than or equal to the first threshold, the iterative calculation is terminated, and the mobile phone position and mobile phone time (that is, the mobile phone time adjusted according to the calculated mobile phone clock difference, which is synchronized with the satellite time) obtained in the last round of correction terms are output; wherein, Δx = {Δu, Δb, ΔN}, Δu is the correction amount of the mobile phone position, Δb is the mobile phone clock difference, and ΔN is the correction amount of the pseudo-range whole millisecond value of the coarse time. The sum of the squares of Δu, Δb, and ΔN can be used as the value of the correction term Δx for comparison with the preset threshold.

[0164] Figure 5 Shown Figure 4 Flowchart of the iterative calculation part in step S406. Figure 5 As shown, step S406 includes the following steps:

[0165] Step S501: Correct the phone's position u and time based on the previous solution. In the first iteration, since only the initial value is available, no correction is required. Each iteration yields a solution result Δx = {Δu, Δb, ΔN}, where Δu is the correction for the phone's position, Δb is the phone's clock error, and ΔN is the correction for the pseudo-range in milliseconds of the coarse time. Therefore, in subsequent iterations, the phone's position u can be corrected based on Δu in the correction term Δx from the previous iteration, and the phone's time can be corrected based on Δb in Δx from the previous iteration.

[0166] Step S502: Correct the coarse time based on the results of the previous iteration. No correction is required in the first iteration because only the initial value is available. Furthermore, since the coarse time is the satellite's signal transmission time, the sub-millisecond pseudorange value of the signal transmission time remains constant. Therefore, the coarse time can be corrected based on the whole-millisecond pseudorange value obtained in each iteration. In other words, the coarse time tc is corrected based on ΔN in the correction term Δx from the previous iteration.

[0167] Step S503: Calculate the satellite position of each satellite based on the ephemeris and coarse time of each satellite among the at least five satellites; the satellite ephemeris records the position of each satellite at a corresponding time, so the satellite position can be determined from the satellite ephemeris using the coarse time;

[0168] Step S504: Calculate the actual distance between the satellite and the mobile phone based on the position of the satellite and the position of the mobile phone;

[0169] Step S505: Selecting a satellite with the largest elevation angle from the at least five satellites as a reference satellite;

[0170] Step S506: Calculate the pseudo-range value in whole milliseconds between the reference satellite and the mobile phone. The calculation process can be referred to the description above and will not be repeated here.

[0171] Step S507: Calculate the pseudo-range errors between the non-reference satellites and the reference satellites among the at least five satellites;

[0172] Step S508: If the absolute value of the pseudorange error is greater than a second threshold (e.g., 10 kilometers), the original observation error of the corresponding non-reference satellite is considered large and the non-reference satellite is filtered out and does not participate in subsequent iterative calculations. The non-reference satellites that are not filtered out participate in subsequent iterative calculations as valid satellites.

[0173] Step S509: Calculate the pseudo-range in milliseconds between the effective satellite and the mobile phone based on the pseudo-range in milliseconds between the reference satellite and the mobile phone. The specific calculation process can refer to the formula given above and will not be repeated here.

[0174] Step S510: The corrected complete pseudoranges between the reference satellite, the valid satellite and the mobile phone can be obtained based on the calculated pseudorange whole millisecond values between the reference satellite, the valid satellite and the mobile phone and the pseudorange sub-millisecond values obtained by the code phase measurement values.

[0175] Step S511: a pseudorange residual can be obtained according to the corrected complete pseudorange and the complete pseudorange calculated in the previous iteration process;

[0176] Step S512: Substitute the pseudorange residual into the positioning equation including the five unknown variables described above for solution, and finally obtain the correction term Δx in the current iteration process.

[0177] According to a navigation method in one embodiment of the present disclosure, the navigation method includes: locating the position of the navigated object using the above-mentioned positioning method.

[0178] In this embodiment, the navigation method can be executed on a terminal, which may include but is not limited to mobile terminals that can connect to a network (e.g., 4G / 5G network, Wi-Fi, Bluetooth) to obtain network positioning, such as mobile phones, iPads, computers, smart watches, vehicles, etc. This disclosed embodiment applies the coarse time positioning method of satellite positioning to the terminal used by the user, targeting terminals where inaccurate positioning affects navigation. The navigated object can be a vehicle, a person, etc.

[0179] The positioning position of the navigated object can be obtained using the above positioning method. For specific details, please refer to the above description of the positioning method, which will not be repeated here.

[0180] The disclosed embodiment utilizes code phase measurement data from at least five satellites, the terminal's rough positioning position, rough time, terminal device time, code phase measurement data from at least five satellites, and ephemeris to correct the terminal's rough positioning position, rough time, and terminal device time. When the correction term is less than or equal to a preset first threshold, the rough positioning position corrected by the correction term is determined as the terminal's GNSS position. In environments where satellite signals are weak or obscured, this technical solution can locate the navigated object by adding the rough time of satellite signal transmission to the traditional positioning method without calculating the complete pseudorange. Furthermore, this technical solution utilizes the introduction of the terminal's rough positioning position during the positioning process, reducing the requirements for time accuracy and improving the efficiency and accuracy of position calculation.

[0181] The following are embodiments of the apparatus disclosed herein, which can be used to execute embodiments of the method disclosed herein.

[0182] According to an embodiment of the present disclosure, a 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:

[0183] A first acquisition module is configured to acquire code phase measurement data of at least five satellites received by the terminal;

[0184] A second acquisition module is configured to acquire a coarse positioning position, a coarse time, a terminal device time and the ephemeris of the at least five satellites of the terminal;

[0185] a correction module, configured to correct the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the at least five satellites, and the ephemeris, until the correction term is less than or equal to a preset first threshold;

[0186] The first determining module is configured to determine the coarse positioning position corrected by using the correction item as the GNSS positioning position of the terminal.

[0187] In an optional implementation of this embodiment, the rough time is used as the signal transmission time of the at least five satellites, and the correction module includes:

[0188] A first determining submodule is configured to determine the distances from the at least five satellites to the terminal based on the coarse time and the ephemeris of the at least five satellites;

[0189] A second determination submodule is configured to determine the pseudorange integer millisecond values of the at least five satellites based on the distances from the at least five satellites to the terminal, the satellite clock errors of the at least five satellites and the code phase measurement data, the terminal device clock error and the physical delay;

[0190] The first correction submodule is configured to correct the coarse positioning position of the terminal, the coarse time and the terminal device time based on the whole millisecond values of the pseudoranges of the at least five satellites.

[0191] In an optional implementation of this embodiment, the rough time is used as the satellite signal transmission time of the at least five satellites, and the correction module includes:

[0192] A first selection submodule is configured to select one satellite from the at least five satellites as a reference satellite and the other satellites as non-reference satellites;

[0193] a third determining submodule, configured to determine a valid satellite from the non-reference satellites according to the reference satellite;

[0194] The second correction submodule is configured to correct the coarse positioning position of the terminal, the coarse time and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris.

[0195] In an optional implementation of this embodiment, the third determining submodule includes:

[0196] a fourth determining submodule, configured to determine a pseudorange error between the reference satellite and the non-reference satellite;

[0197] The fifth determining submodule is configured to determine the other satellites whose pseudorange errors with the reference satellite are less than or equal to a preset second threshold as the valid satellites.

[0198] In an optional implementation of this embodiment, the fourth determining submodule includes:

[0199] a sixth determining submodule, configured to determine a distance from the reference satellite to the terminal based on the coarse time and the ephemeris of the reference satellite;

[0200] a seventh determination submodule, configured to determine a pseudorange integer millisecond value of the reference satellite based on the distance from the reference satellite to the terminal, the satellite clock error of the reference satellite, the code phase measurement data, the device clock error of the terminal, and the physical delay;

[0201] The eighth determination submodule is configured to determine the corrected pseudorange error between the reference satellite and the non-reference satellite based on the pseudorange integer millisecond value of the reference satellite, the pre-corrected pseudorange of the reference satellite, the pre-corrected pseudorange of the non-reference satellite, the distance between the reference satellite and the terminal, the distance between the non-reference satellite and the terminal, the satellite clock difference of the reference satellite, and the satellite clock difference of the non-reference satellite.

[0202] In an optional implementation of this embodiment, the second correction submodule further includes:

[0203] a ninth determining submodule, configured to determine the pseudorange integer millisecond value of the valid satellite based on the pseudorange integer millisecond value of the reference satellite, the difference in pseudorange between the reference satellite and the valid satellite before correction, and the difference in distance between the reference satellite and the valid satellite and the terminal;

[0204] The third correction submodule is configured to correct the coarse positioning position of the terminal, the coarse time and the terminal device time based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite.

[0205] In an optional implementation of this embodiment, the third correction submodule includes:

[0206] a tenth determining submodule, configured to determine sub-millisecond pseudorange values of the reference satellite and the valid satellite based on the code phase measurement data;

[0207] an eleventh determining submodule, configured to determine the complete pseudoranges of the reference satellite and the valid satellite according to the pseudorange whole millisecond value and the pseudorange sub-millisecond value;

[0208] A twelfth determining submodule is configured to determine the pseudorange residuals of the reference satellite and the valid satellite according to the complete pseudorange and the pseudorange initial value;

[0209] The thirteenth determination submodule is configured to determine the coarse positioning position of the terminal, the coarse time and the correction item corresponding to the device clock difference time based on the pseudorange residuals of the reference satellite and the valid satellite.

[0210] In an optional implementation of this embodiment, the initial pseudorange value is set to a value calculated from a preset whole pseudorange whole millisecond value during the first round of correction, and is set to the complete pseudorange obtained during the previous round of correction starting from the second round of correction.

[0211] In an optional implementation of this embodiment, the third correction submodule further includes:

[0212] The fourth correction submodule is configured to perform the next round of correction on the coarse positioning position, the coarse time and the device clock error based on the coarse positioning position corrected by the correction term, the corrected coarse time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris when the correction term is greater than the first threshold.

[0213] In an optional implementation of this embodiment, the first selection submodule includes:

[0214] The second selection submodule is configured to select a satellite with the largest elevation angle among the at least five satellites as the reference satellite.

[0215] The positioning device in this embodiment corresponds to the above positioning method. For specific details, please refer to the above description of the positioning method, which will not be repeated here.

[0216] According to an embodiment of the present disclosure, the navigation device can be implemented as part or all of an electronic device through software, hardware, or a combination of both. The navigation device uses the positioning device to locate the position of the object being navigated.

[0217] The navigation device in this embodiment corresponds to the above navigation method. For specific details, please refer to the above description of the navigation method, which will not be repeated here.

[0218] Figure 6 It is a structural diagram of an electronic device suitable for implementing the positioning method and / or navigation method according to an embodiment of the present disclosure.

[0219] like Figure 6 As shown, the electronic device 600 includes a processing unit 601, which can be implemented as a processing unit such as a CPU, a GPU, an FPGA, an NPU, etc. The processing unit 601 can perform various processes in the embodiment of any of the above methods of the present disclosure according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage portion 608 into a random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the electronic device 600 are also stored. The processing unit 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.

[0220] The following components are connected to the I / O interface 605: an input section 606 including a keyboard, a mouse, and the like; an output section 607 including devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), and a speaker; a storage section 608 including a hard disk; and a communication section 609 including a network interface card such as a LAN card or a modem. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to the I / O interface 605 as needed. A removable medium 611, such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, is installed in the drive 610 as needed, so that computer programs read therefrom can be installed into the storage section 608 as needed.

[0221] In particular, according to embodiments of the present disclosure, any of the methods described above with reference to the embodiments of the present disclosure may be implemented as a computer software program. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a computer-readable medium, the computer program comprising program code for executing any of the methods described in the embodiments of the present disclosure. In such embodiments, the computer program may be downloaded and installed from a network via the communication portion 609 and / or installed from the removable medium 611.

[0222] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the diagram or block diagram can represent a module, program segment or part of the code, and the module, program segment or part of the code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, as well as the combination of boxes in the block diagram and / or flow chart, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or can be implemented using a combination of dedicated hardware and computer instructions.

[0223] The units or modules described in the embodiments of the present disclosure may be implemented in software or hardware. The units or modules described may also be provided in a processor, and the names of these units or modules do not, in certain circumstances, limit the units or modules themselves.

[0224] As another aspect, the present disclosure further provides a computer-readable storage medium. This computer-readable storage medium may be included in the apparatus described in the above embodiments, or may be a standalone computer-readable storage medium not incorporated into the apparatus. The computer-readable storage medium stores one or more programs, which are used by one or more processors to execute the methods described in the present disclosure.

[0225] The above description is merely a preferred embodiment of the present disclosure and an illustration of the technical principles employed. Those skilled in the art should understand that the scope of the invention herein is not limited to the technical solutions formed by the specific combination of the above-mentioned technical features, but also encompasses other technical solutions formed by any combination of the above-mentioned technical features or their equivalents without departing from the inventive concept. For example, a technical solution formed by replacing the above-mentioned features with (but not limited to) technical features with similar functions disclosed in this disclosure.

Claims

1. A positioning method, wherein: include: Obtain code phase measurement data of at least five satellites received by the terminal; Obtaining a coarse positioning position, a coarse time, a terminal device time, and the ephemeris of the at least five satellites of the terminal, wherein the coarse time serves as a satellite signal transmission time of the at least five satellites; Selecting one satellite from the at least five satellites as a reference satellite and the other satellites as non-reference satellites; determining a valid satellite from the non-reference satellites according to the reference satellite; Based on the coarse positioning position, coarse time, terminal device time, code phase measurement data of the reference satellite and the valid satellite, and ephemeris of the terminal, correct the coarse positioning position, the coarse time, and the terminal device time of the terminal until the correction term is less than or equal to a preset first threshold; The rough positioning position corrected by the correction item is determined as the GNSS positioning position of the terminal.

2. The method according to claim 1, wherein Determining a valid satellite from the non-reference satellites according to the reference satellite comprises: determining a pseudorange error between the reference satellite and the non-reference satellite; The other satellites whose pseudorange errors with the reference satellite are less than or equal to a preset second threshold are determined as the valid satellites.

3. The method according to claim 2, wherein: Determining a pseudorange error between the reference satellite and the non-reference satellite includes: Determine a distance from the reference satellite to the terminal based on the coarse time and the ephemeris of the reference satellite; Determine a pseudorange in milliseconds value of the reference satellite based on a distance from the reference satellite to the terminal, a satellite clock error of the reference satellite, the code phase measurement data, a device clock error of the terminal, and a physical delay; The corrected pseudorange error between the reference satellite and the non-reference satellite is determined based on the pseudorange integer millisecond value of the reference satellite, the pre-corrected pseudorange of the reference satellite, the pre-corrected pseudorange of the non-reference satellite, the distance between the reference satellite and the terminal, the distance between the non-reference satellite and the terminal, the satellite clock error of the reference satellite, and the satellite clock error of the non-reference satellite.

4. The method according to claim 3, wherein: Correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris, further comprising: Determine the pseudorange integer millisecond value of the valid satellite based on the pseudorange integer millisecond value of the reference satellite, the difference in pseudorange between the reference satellite and the valid satellite before correction, and the difference in distance between the reference satellite, the valid satellite and the terminal; The coarse positioning position of the terminal, the coarse time and the terminal device time are corrected based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite.

5. The method according to claim 4, wherein Correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite includes: Determine sub-millisecond pseudorange values of the reference satellite and the valid satellite based on the code phase measurement data; Determine the complete pseudoranges of the reference satellite and the valid satellite according to the pseudorange whole millisecond value and the pseudorange sub-millisecond value; Determine the pseudorange residuals of the reference satellite and the valid satellite according to the complete pseudorange and the initial pseudorange value; The rough positioning position of the terminal, the rough time and the correction item corresponding to the terminal device time are determined according to the pseudorange residuals of the reference satellite and the valid satellite.

6. The method according to claim 5, wherein: The initial pseudorange value is set to the value calculated from the preset whole pseudorange whole millisecond value in the first round of correction process, and is set to the complete pseudorange obtained in the previous round of correction process starting from the second round of correction process.

7. The method according to any one of claims 4 to 6, wherein: Correcting the coarse positioning position of the terminal, the coarse time, and the terminal device time based on the pseudo-range integer millisecond values of the reference satellite and the valid satellite, further comprising: When the correction item is greater than the first threshold, the next round of correction is performed on the coarse positioning position, the coarse time and the terminal device time based on the coarse positioning position corrected by the correction item, the corrected coarse time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris.

8. The method according to any one of claims 1 to 6, wherein: Selecting a satellite from the at least five satellites as a reference satellite comprises: A satellite with the largest elevation angle among the at least five satellites is selected as the reference satellite.

9. A navigation method, wherein: The method uses the positioning method according to any one of claims 1 to 8 to locate the position of the navigated object.

10. A positioning device, wherein: include: A first acquisition module is configured to acquire code phase measurement data of at least five satellites received by the terminal; a second acquisition module configured to acquire a coarse positioning position, a coarse time, a terminal device time, and the ephemeris of the at least five satellites of the terminal, wherein the coarse time is used as a satellite signal transmission time of the at least five satellites; The correction module is configured to select one satellite from the at least five satellites as a reference satellite and the other satellites as non-reference satellites; determine a valid satellite from the non-reference satellites based on the reference satellite; and correct the coarse positioning position of the terminal, the coarse time, the terminal device time, the code phase measurement data of the reference satellite and the valid satellite, and the ephemeris until the correction term is less than or equal to a preset first threshold. The first determining module is configured to determine the coarse positioning position corrected by using the correction item as the GNSS positioning position of the terminal.

11. A navigation device, wherein: The device locates the position of the navigated object using the positioning device according to claim 10.

12. An electronic device, wherein: comprising a memory and a processor; wherein, The memory is configured to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method according to any one of claims 1 to 9.

13. A computer-readable storage medium having computer instructions stored thereon, wherein: When the computer instructions are executed by a processor, the method according to any one of claims 1 to 9 is implemented.

Citation Information

Patent Citations

  • Method for realizing positioning and electronic device

    CN1409126A