Positioning method, device, storage medium and terminal

By acquiring and processing the original navigation message data in the GPS positioning system, calculating satellite position and pseudo-range observation equations, and correcting the measurement error, the problems of inaccurate positioning and low processing efficiency in the prior art are solved, and more efficient and accurate positioning is achieved.

CN119758377APending Publication Date: 2025-04-04SUUNTO SPORTS TECHNOLOGY (DONGGUAN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411933991.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-25
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

Existing GPS positioning technology may destroy the integrity and accuracy of data during data processing, resulting in inaccurate positioning and low processing efficiency.

Method used

By obtaining the original navigation message data in the positioning system, the satellite position and pseudo-range observation equations are calculated, and the measurement errors in the pseudo-range observation equations are corrected to calculate the position of the receiver.

Benefits of technology

This method can make full use of raw data, reduce intermediate processing links, improve data processing efficiency, and enhance positioning accuracy and reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119758377A_ABST
    Figure CN119758377A_ABST
Patent Text Reader

Abstract

The present application discloses a positioning method, device, storage medium and terminal. In response to a positioning request for a receiver, the original navigation message data of the positioning satellite in the positioning system is obtained, and the navigation data and observation data of the positioning satellite are obtained based on the original navigation message data; the satellite position corresponding to the positioning satellite is calculated according to the navigation data, and the pseudo-range observation equation between the positioning satellite and the receiver is obtained according to the observation data; the measurement error in the pseudo-range observation equation is corrected to obtain the corrected pseudo-range observation equation, and the position of the receiver is calculated based on the corrected pseudo-range observation equation and the satellite position. The navigation data and observation data of the satellite are obtained through the original navigation message data, and the satellite position, measurement error and pseudo-range are calculated accordingly, and then the equation group is established based on the corrected pseudo-range observation equation and the position of the receiver is solved, so that efficient data processing can be achieved and accurate positioning information can be obtained when only the original navigation message data is received.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] The Global Positioning System (GPS) can provide coordinate and time information of any location on Earth through a series of satellites. Existing GPS positioning technology usually relies on extracting positioning information from the National Marine Electronics Association (NMEA) data. These data have been formatted, filtered and pre-processed before being transmitted to the receiver. Users can easily extract key information such as position and speed, simplifying the complexity of data processing. However, this process may also destroy the integrity and accuracy of the data. Therefore, a positioning method is needed to improve the accuracy and processing efficiency of the positioning system. Summary of the invention

[0003] The present application provides a positioning method, device, storage medium and terminal to solve the problems of inaccuracy and low efficiency of the above positioning technology.

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

[0005] In response to a positioning request for a receiver, original navigation message data of a positioning satellite in a positioning system is acquired, and navigation data and observation data of the positioning satellite are obtained based on the original navigation message data;

[0006] The satellite position corresponding to the positioning satellite is calculated according to the navigation data, and the pseudo-range observation equation between the positioning satellite and the receiver is obtained according to the observation data;

[0007] The measurement error in the pseudorange observation equation is corrected to obtain a corrected pseudorange observation equation, and the position of the receiver is calculated based on the corrected pseudorange observation equation and the satellite position.

[0008] In a second aspect, an embodiment of the present application provides a positioning device, the device comprising:

[0009] A data acquisition module, used to respond to a positioning request for a receiver, acquire original navigation message data of a positioning satellite in a positioning system, and obtain navigation data and observation data of the positioning satellite based on the original navigation message data;

[0010] The data application module is used to calculate the satellite position corresponding to the positioning satellite according to the navigation data, and obtain the pseudo-range observation equation between the positioning satellite and the receiver according to the observation data;

[0011] The position calculation module is used to correct the measurement error in the pseudo-range observation equation to obtain a corrected pseudo-range observation equation, and calculate the position of the receiver based on the corrected pseudo-range observation equation and the satellite position.

[0012] In a third aspect, an embodiment of the present application provides a computer storage medium, wherein the computer storage medium stores a plurality of instructions, and the instructions are suitable for being loaded by a processor and executing the steps of the method.

[0013] In a fourth aspect, an embodiment of the present application provides a terminal, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is suitable for being loaded by the processor and executing the steps of the method.

[0014] The beneficial effects brought about by the technical solutions provided by some embodiments of the present application include at least:

[0015] The present application provides a positioning method, in response to a positioning request for a receiver, obtaining the original navigation message data of a positioning satellite in a positioning system, obtaining the navigation data and observation data of the positioning satellite based on the original navigation message data; calculating the satellite position corresponding to the positioning satellite according to the navigation data, obtaining the pseudo-range observation equation between the positioning satellite and the receiver according to the observation data; correcting the measurement error in the pseudo-range observation equation to obtain the corrected pseudo-range observation equation, and calculating the position of the receiver based on the corrected pseudo-range observation equation and the satellite position. The method in the embodiment of the present application directly calculates the positioning information based on the original navigation message data of the satellite obtained, which can make full use of the rich information in the original data, reduce the intermediate processing links, and thus improve the overall efficiency of data processing; by obtaining the navigation data and observation data of the positioning satellite from the original navigation message data, and calculating the spatial position of the satellite and the pseudo-range information from the satellite to the receiver, the position relationship between the satellite and the receiver can be more accurately reflected; in addition, by correcting the measurement error in the positioning system, the positioning error can be further reduced, and the accuracy and reliability of positioning can be improved. Through the method in the embodiment of the present application, efficient data processing and accurate positioning information can be obtained when only the original navigation message data of the satellite is received. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For those skilled in the art, other drawings can be obtained based on these drawings without paying any creative work.

[0017] Figure 1An exemplary system architecture diagram of a positioning method provided in an embodiment of the present application;

[0018] Figure 2 A flowchart of a positioning method provided in an embodiment of the present application;

[0019] Figure 3 A detailed flowchart of a positioning method implemented in an embodiment of the present application;

[0020] Figure 4 A flowchart of a positioning method provided in an embodiment of the present application;

[0021] Figure 5 A structural block diagram of a positioning device provided in an embodiment of the present application;

[0022] Figure 6 A schematic diagram of the structure of a terminal provided in an embodiment of the present application. DETAILED DESCRIPTION

[0023] In order to make the features and advantages of the present application more obvious and easy to understand, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present application.

[0024] When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Instead, they are only examples of devices and methods consistent with some aspects of the present application as detailed in the attached claims.

[0025] As a common navigation and positioning system, the Global Positioning System (GPS) generally includes multiple satellites to achieve navigation together. It mainly receives the signals transmitted by the satellite through ground receivers and performs corresponding calculations, which can provide users with accurate three-dimensional coordinates, speed and time information of objects at various locations on the earth. In the existing GPS positioning technology, positioning information is usually extracted from NMEA data. NMEA data is a standardized data format used to transmit navigation and positioning information between marine electronic equipment and systems. NMEA formatted data contains key data such as position, speed, and heading. Before being transmitted to the receiver, these data have been formatted, filtered and preprocessed, redundant information has been removed, and the data format has been unified, which simplifies the receiver's data processing process, allowing the receiver to more quickly parse out the required key information such as position and speed. Users can directly read these key information to easily obtain the required positioning information without complex data processing.

[0026] However, the directly acquired NMEA data may introduce some errors due to noise interference during the processing process, and because the NMEA data is formatted, filtered and preprocessed before being transmitted to the receiver, some original data may be lost or changed. This loss of data integrity may affect the accuracy of the positioning results. In addition, although the preprocessing process helps to simplify the data processing tasks of the receiver, it also increases the overall time cost of data transmission and processing, thereby affecting the overall processing efficiency of the positioning system.

[0027] Therefore, an embodiment of the present application provides a positioning method to solve the technical problems of low processing efficiency and low accuracy of the above positioning system.

[0028] See also Figure 1 , Figure 1 An exemplary system architecture diagram of a positioning method provided in an embodiment of the present application.

[0029] like Figure 1 As shown, the system architecture may include a terminal 101, a network 102, and a server 103. The network 102 is used to provide a medium for a communication link between the terminal 101 and the server 103. The network 102 may include various types of wired communication links or wireless communication links, for example, the wired communication link includes an optical fiber, a twisted pair, or a coaxial cable, and the wireless communication link includes a Bluetooth communication link, a Wireless-Fidelity (Wi-Fi) communication link, or a microwave communication link.

[0030] The terminal 101 can interact with the server 103 through the network 102 to receive messages from the server 103 or send messages to the server 103, or the terminal 101 can interact with the server 103 through the network 102 to receive messages or data sent by other users to the server 103. The terminal 101 can be hardware or software. When the terminal 101 is hardware, it can be various electronic devices, including but not limited to smart watches, smart phones, tablet computers, laptop portable computers and desktop computers. When the terminal 101 is software, it can be installed in the electronic devices listed above, which can be implemented as multiple software or software modules (for example: used to provide distributed services), or it can be implemented as a single software or software module, which is not specifically limited here.

[0031] In an embodiment of the present application, the terminal 101 first responds to a positioning request for a receiver, obtains original navigation message data of a positioning satellite in a positioning system, and obtains navigation data and observation data of the positioning satellite based on the original navigation message data; then, the terminal 101 calculates the satellite position corresponding to the positioning satellite according to the navigation data, and obtains a pseudo-range observation equation between the positioning satellite and the receiver according to the observation data; finally, the terminal 101 corrects the measurement error in the pseudo-range observation equation to obtain a corrected pseudo-range observation equation, and calculates the position of the receiver based on the corrected pseudo-range observation equation and the satellite position.

[0032] The server 103 may be a business server that provides various services. It should be noted that the server 103 may be hardware or software. When the server 103 is hardware, it may be implemented as a distributed server cluster consisting of multiple servers, or it may be implemented as a single server. When the server 103 is software, it may be implemented as multiple software or software modules (for example, for providing distributed services), or it may be implemented as a single software or software module, which is not specifically limited here.

[0033] Alternatively, the system architecture may not include the server 103. In other words, the server 103 may be an optional device in the embodiments of this specification. That is, the method provided in the embodiments of this specification may be applied to a system structure that only includes the terminal 101, and the embodiments of this application do not limit this.

[0034] It should be understood that Figure 1 The number of terminals, networks and servers in the figure is only for illustration and any number of terminals, networks and servers may be used according to implementation requirements.

[0035] See also Figure 2 , Figure 2A flowchart of a positioning method provided in an embodiment of the present application. The execution subject of the embodiment of the present application can be a terminal that executes positioning, a processor in a terminal that executes the positioning method, or a positioning service in a terminal that executes the positioning method. For the convenience of description, the specific execution process of the positioning method is introduced below by taking the execution subject as a processor in a terminal as an example.

[0036] like Figure 2 As shown, the positioning method may at least include:

[0037] S202: In response to a positioning request for a receiver, original navigation message data of a positioning satellite in a positioning system is acquired, and navigation data and observation data of the positioning satellite are obtained based on the original navigation message data.

[0038] Optionally, a satellite positioning system (such as GPS, BeiDou, etc.) usually includes multiple satellites. These satellites operate in orbit and continuously transmit satellite signals containing their own position and time information to receivers on the earth. These satellite signals contain the orbital parameters, clock information, and codes for identity recognition of each satellite. These data are necessary for the receiver to perform positioning. Only by obtaining, processing, and analyzing these data can the receiver accurately calculate the position and speed of the satellite, and then deduce its own position, speed, time, and other information. Based on this, Figure 3 As shown in the figure, a detailed flow chart of a positioning method implemented by an embodiment of the present application is provided. When the positioning system receives a positioning request for a certain receiver, it is first necessary to obtain the original navigation message data sent from all positioning satellites in the positioning system, wherein the original navigation message data starts with a synchronization byte (0xB5 0x62), which may be followed by parameters such as class, ID, message length, output positioning information and check bit.

[0039] Optionally, in order to ensure that the received data packet is complete and has not been tampered with, the data packet needs to be parsed first after the original navigation message data sent by the positioning satellite is acquired.

[0040] Specifically, the first step is to verify the synchronization bytes. Synchronization bytes are usually a set of specific byte sequences used to align data during data transmission and processing. By verifying the synchronization bytes, valid data packets can be screened out, noise and interference data can be excluded, and the accuracy and efficiency of subsequent processing can be ensured.

[0041] Optionally, the class and ID bytes in the data packet are read next. These two fields are crucial to determining the type of data packet. The class byte usually indicates the general category to which the data packet belongs, such as navigation data, status information, or other specific types of messages; while the ID byte further subdivides the specific type of the data packet to help the positioning system identify and process different types of data. This step ensures that the positioning system can adopt the correct decoding and processing strategy based on the type of data packet.

[0042] Optionally, the message length field is then read, which indicates the number of bytes in the payload of the data packet, that is, the actual information carried in the data packet. By reading the message length, the system can accurately allocate memory and parse the data in the payload according to the predetermined format, providing the necessary input for subsequent navigation calculations.

[0043] Optionally, since the data information contained in the original navigation message data is the parameters necessary for the receiver to perform subsequent positioning, it is also necessary to read the output GPS information and extract various data information required for positioning calculation, such as satellite orbit parameters, pseudorange, carrier phase, Doppler frequency shift, etc.

[0044] Optionally, to ensure the integrity of the data packet, a checksum verification is also required. The system calculates a checksum based on the contents of the data packet and compares it with the checksum field already in the data packet. If the two are consistent, it means that the data packet has not been erroneous or damaged during transmission; if they are inconsistent, it may be necessary to request a resend of the data packet or take other error handling measures. This ensures that the system can obtain accurate and reliable navigation information, thereby providing users with high-quality positioning services.

[0045] Optionally, in the satellite navigation positioning system, after obtaining the original navigation message data, extracting navigation data (NAV data) and observation data (OBS data) from it is an important basis for subsequent processing. Specifically, navigation data refers to the information about the satellite's own state contained in the original navigation message transmitted by the satellite, such as the satellite's orbital parameters, clock correction information and satellite health status. By analyzing the satellite's orbital parameters and combining certain algorithms and mathematical models, the position of the satellite in three-dimensional space at any time can be accurately calculated; at the same time, by applying the clock correction information, the time of the satellite clock can be adjusted to be closer to the ground standard time, thereby improving the positioning accuracy of the navigation system. Observation data refers to the information about the relative position and time relationship between the receiver and the satellite carried in the original navigation message data, which is of great significance for realizing accurate positioning and navigation functions.

[0046] S204: Calculate the satellite position corresponding to the positioning satellite according to the navigation data, and obtain the pseudo-range observation equation between the positioning satellite and the receiver according to the observation data.

[0047] Optionally, the positioning system is based on the relative position relationship between the satellite and the user's receiver to achieve positioning. After the user's receiver receives the satellite signal, it can calculate the distance between the receiver and the satellite by measuring the time or phase difference of signal propagation. Then, using the obtained distance information, the precise position of the receiver can be determined through the geometric positioning method in three-dimensional space. Therefore, if Figure 3 The detailed flowchart of a positioning method provided by an embodiment of the present application is shown. Calculating the satellite position information is the basis for subsequent positioning methods. Only by knowing the precise position of the satellite can the position of the receiver be solved by geometric methods based on the distance between the receiver and the satellite.

[0048] Optionally, the navigation data extracted from the original navigation message data mainly includes the satellite's orbital parameters and clock correction information, which are the basis for calculating the satellite's position. Among them, the satellite orbital parameters describe the satellite's motion trajectory in space, including the orbital semi-major axis, eccentricity, orbital inclination, ascending node right ascension and true anomaly, etc. Based on Kepler's law and satellite orbit dynamics, the satellite's three-dimensional spatial position (longitude, latitude and altitude) can be calculated according to the satellite's orbital parameters; the clock correction information is used to correct the deviation between the satellite clock and the ground standard time, including the reference time, ephemeris data update time, etc. Through the correction parameters of the satellite clock, the deviation of the satellite clock relative to the ground standard time can be calculated. This deviation can be taken into account when constructing the pseudo-range observation equation in the subsequent construction to ensure the accuracy of the positioning result.

[0049] Alternatively, the pseudorange is the time difference between the satellite signal being transmitted by the satellite and the receiver being received, multiplied by the speed of light to obtain the distance value. This distance value is not the true geometric distance between the satellite and the receiver, but is the result of multiple error factors. Figure 3 The detailed flow chart of a positioning method provided by an embodiment of the present application is shown. Although pseudo-range is not the real distance, it is also the basis for positioning in a satellite navigation system. By receiving signals from multiple satellites and extracting pseudo-range information therein, a pseudo-range observation equation group is constructed, and then the position information of the receiver can be solved by using algorithms such as the least squares method.

[0050] S206, correcting the measurement error in the pseudorange observation equation to obtain a corrected pseudorange observation equation, and calculating the position of the receiver based on the corrected pseudorange observation equation and the satellite position.

[0051] Alternatively, if Figure 3The detailed flow chart of a positioning method provided by an embodiment of the present application is shown. In the actual measurement process, the pseudorange will be affected by a variety of error factors. In order to obtain a more accurate positioning result, it is necessary to consider these error factors in the pseudorange observation equation and correct them to improve the accuracy and reliability of the pseudorange observation equation. Specifically, first identify various types of measurement errors in the pseudorange observation equation. These errors may include the geometric distance between the satellite and the receiver and deviations caused by clock errors, ionospheric errors, tropospheric errors and other factors; then establish a corresponding error model for each error type or introduce error correction terms to correct the measurement errors respectively, and apply these corrected measurement errors to the pseudorange observation equation, correct each original observation value, and obtain the corrected pseudorange observation equation. Through these steps, various errors in the positioning system measurement can be effectively corrected to improve positioning accuracy.

[0052] Optionally, after obtaining the error-corrected pseudorange observation equation, a set of nonlinear equations can be constructed based on the corrected pseudorange observation equation and the known positions of each satellite, where each equation represents an estimated distance from a satellite to the receiver, expressed as a function containing the receiver coordinates. Then, the nonlinear equations are linearized, and the least squares method is used to iteratively calculate and gradually approximate the true position of the receiver.

[0053] In an embodiment of the present application, a positioning method is provided. In response to a positioning request for a receiver, the original navigation message data of the positioning satellite in the positioning system is obtained, and the navigation data and observation data of the positioning satellite are obtained based on the original navigation message data; the satellite position corresponding to the positioning satellite is calculated according to the navigation data, and the pseudo-range observation equation between the positioning satellite and the receiver is obtained according to the observation data; the measurement error in the pseudo-range observation equation is corrected to obtain the corrected pseudo-range observation equation, and the position of the receiver is calculated based on the corrected pseudo-range observation equation and the satellite position. The method in the embodiment of the present application directly calculates the positioning information based on the original navigation message data of the satellite obtained, which can make full use of the rich information in the original data, reduce the intermediate processing links, and thus improve the overall efficiency of data processing; by obtaining the navigation data and observation data of the positioning satellite from the original navigation message data, and calculating the spatial position of the satellite and the pseudo-range information from the satellite to the receiver, the position relationship between the satellite and the receiver can be more accurately reflected; in addition, by correcting the measurement error in the positioning system, the positioning error can be further reduced, and the accuracy and reliability of positioning can be improved. Through the method in the embodiment of the present application, efficient data processing and accurate positioning information can be obtained when only the original navigation message data of the satellite is received.

[0054] See also Figure 4 , Figure 4A flowchart of a positioning method provided in an embodiment of the present application.

[0055] like Figure 4 As shown, the positioning method may at least include:

[0056] S402, in response to a positioning request for a receiver, obtaining original navigation message data of a positioning satellite in a positioning system, converting the original navigation message data into target data in a RINEX format, and reading navigation data and observation data therefrom.

[0057] Optionally, in the positioning system, the original navigation message data is usually encoded in binary form. Although it contains rich parameters, this original format of data is not intuitive for subsequent data processing and analysis, and is not convenient for data exchange between different systems. Therefore, when the receiver receives the original navigation message data sent from the positioning satellite, in order to more conveniently process and parse these data, the original navigation message data needs to be converted into a standardized format. The receiver-independent exchange format (RINEX) uses the ASCII text format and also supports the unified storage and exchange of navigation data and observation data. The data field is usually of fixed width, which is convenient for parsing, processing and reading. Moreover, the RINEX format also supports a variety of observation types, including pseudorange (C / P code), carrier phase (L1 / L2), Doppler shift (D1 / D2), signal-to-noise ratio (S1 / S2), etc. Each observation type has a specific identifier and unit. Based on this, in the embodiment of the present application, we use the RINEX format as the target format for data conversion.

[0058] Specifically, the RINEX format uses text files to store data. The file structure is divided into two parts: the file header (recording global information) and the data block (recording specific information). Figure 3The detailed flow chart of a positioning method provided by an embodiment of the present application shown in the figure, after obtaining the original navigation message data of the positioning satellite, first create a new RINEX file, initialize the RINEX file header and write the file header information, which contains the observation type, sampling rate, satellite system, observation station information and other related parameters. Then convert the time stamp in the original data packet into a time stamp in RINEX format. The RINEX time stamp uses the GPS time system, which is accurate to seconds, to ensure the uniformity and accuracy of the data in time, and provides a basis for subsequent data processing. Next, according to the navigation data in the original data packet, it is converted into navigation data in the corresponding RINEX format. The converted navigation data will be used for subsequent positioning calculations to ensure the accuracy of the satellite position. And according to the observation type in the original data packet, it is converted into observation data in the corresponding RINEX format. The converted observation data will be used to construct the pseudo-range observation equation, and then the position of the receiver is obtained by solving it.

[0059] Optionally, after converting the formats of each part of the data, it is also necessary to write the converted time stamp, navigation data and observation data into the data block part of the RINEX file. This data block is arranged in time series, and each time point corresponds to a complete set of observation data and corresponding navigation data. This step ensures the integrity and continuity of the data, and provides a basis for subsequent data processing and analysis. After the data conversion is completed, the data integrity can also be verified, which includes checking whether the data block complies with the RINEX standard, whether there is data loss or error, etc. Through verification, it can be ensured that the converted RINEX data format is correct and the content is complete, providing reliable data support for subsequent positioning calculations.

[0060] S404: Calculate the satellite position corresponding to the positioning satellite according to the satellite orbit parameters and time information in the navigation data.

[0061] Optionally, the calculation of satellite positions from navigation data is based on the principles of Kepler's laws describing the motion of satellites around the Earth and satellite orbital dynamics, which take into account the effects of various perturbations on satellite motion. Figure 3 The detailed flow chart of a positioning method implemented by an embodiment of the present application shown in the figure utilizes the satellite orbit parameters (such as orbit semi-major axis, eccentricity, orbit inclination, etc.) and time information (such as reference time, ephemeris data update time, etc.) in the navigation data to calculate the spatial position of the satellite at any time.

[0062] Specifically, the first step is to calculate the mean anomaly angle M, which needs to take into account the signal transmission time and the satellite orbit parameters provided by the navigation data. The calculation formula is: M = M0 + n (tt oe). Where t is the time when the signal is transmitted, M0, n, t oe is the satellite orbit parameter provided by the navigation data; the second step is to calculate the eccentric anomaly E, and its calculation formula is: M = Ee sinE. Among them, the eccentric anomaly E can be solved by the iteration method, and e is the satellite orbit parameter provided by the navigation data; the third step is to calculate the true anomaly V, and its calculation formula is: The fourth step is to calculate the angular distance U of the ascending node, and the calculation formula is: U = V + ω. Among them, ω is the satellite orbit parameter provided by the navigation data; the fifth step is to calculate the perturbation correction term δu, δr, δi. The perturbation correction term takes into account the influence of factors such as the shape of the earth, atmospheric resistance, and the gravity of the sun and the moon on the satellite motion. The calculation formula is:

[0063] δu=C us sin(2U)+C uc cos(2U),δr=C rs sin(2U)+C rc cos(2U),δi=C is sin(2U)+C ic cos(2U).

[0064] Among them C us , C uc , C rs , C rc , C is , C ic are the six perturbation correction parameters provided by the navigation data; after considering the perturbation correction term, the sixth step is to calculate the ascending node angular distance u, satellite radial vector length r and orbit inclination i after perturbation correction, and the calculation formula is: u = U + δu, r = a (1-e cos E) + δr, where a,i0, is the orbital parameter provided by the navigation data; the seventh step is to calculate the position of the satellite on the orbital plane (x s ′,y s ′), the calculation formula is: s ′=r cos u,y s ′=r sin u; The eighth step is to calculate the right ascension of the ascending node L. The orbital parameters provided by the navigation data and the earth's rotation angular velocity constant need to be considered during the calculation. The calculation formula is: Among them, L0, are the orbit parameters provided by the navigation data, is the Earth's rotation angular velocity constant; the ninth step is to calculate the satellite's coordinates in the Earth-centered Earth-fixed rectangular coordinate system (x s ,y s , z s), the calculation formula is: X s = x′ s cos Ly′ s cos i sin L,Y s = x′ s sin L+y′ s cos i cos L,Z s =y s ′sin i; Due to the rotation of the earth, the coordinates of the satellite in the geocentric earth-fixed rectangular coordinate system will change with time, so the tenth step is to eliminate the influence of the earth's rotation and obtain the new coordinates of the satellite relative to the geostationary coordinate system through the Z-axis rotation transformation. The calculation formula is:

[0065] Where Δt is the signal propagation time. Based on Kepler's law and the principle of satellite orbit dynamics, the satellite orbit parameters and time information in the navigation data are used to perform the above calculations, and ultimately the satellite position corresponding to the positioning satellite can be obtained, so as to subsequently achieve efficient and accurate navigation and positioning services.

[0066] S406: Read pseudorange observation values ​​in the observation data, and establish a pseudorange observation equation containing measurement errors based on the pseudorange observation values.

[0067] Optionally, the observation data usually includes parameters such as pseudorange observations, carrier phase observations, and Doppler frequency shift, wherein the pseudorange observations are calculated based on the propagation time from the satellite signal to the receiver, and directly reflect the distance information between the satellite and the receiver. Figure 3 The detailed flow chart of a positioning method provided by an embodiment of the present application is shown. After calculating the position of the positioning satellite, the pseudo-range observation value is read from the observation data, and the pseudo-range observation equation is further constructed. The specific position of the receiver can be solved in combination with the satellite position.

[0068] Optionally, ideally, the calculation process of pseudorange is relatively simple, that is, the time t when the receiver receives the satellite signal u The time t when the satellite sends the signal s The difference between them is multiplied by the vacuum light speed c, and the calculation formula is: ρ = c (t u -t s). However, in actual situations, the calculation of pseudorange becomes complicated due to the influence of many factors. On the one hand, since the clocks of the satellite and the receiver cannot be completely synchronized, there will be clock errors, including satellite clock errors and receiver clock errors, both of which will affect the calculation of pseudorange; on the other hand, due to the existence of the ionosphere and troposphere, the propagation path of the signal transmitted by the satellite is bent when passing through the ionosphere and troposphere, resulting in the distance measured by the receiver not being equal to the geometric distance between the satellite and the receiver, that is, the measured distance is biased.

[0069] Optionally, when constructing the pseudorange observation equation, it is necessary to consider the geometric distance between the satellite and the receiver as well as the deviation caused by clock error, ionosphere error, troposphere error and other factors. The calculation formula is: ρ = r + c (δt u -δt s )+I+T. Among them, δt u is the receiver clock error, δt s is the satellite clock error, I is the ionospheric delay, T is the tropospheric delay, and r is the geometric distance from the satellite to the receiver: (x s ,y s , z s ) is the satellite position coordinate, (x, y, z) is the receiver position coordinate. Based on this, we can further construct a pseudorange observation equation containing various measurement errors based on the pseudorange observation values ​​read from the observation data.

[0070] S408. Calculate the satellite clock error in the measurement error through the satellite clock correction item in the navigation data, calculate the ionospheric delay error in the measurement error through the ionosphere model, and calculate the tropospheric delay error in the measurement error through the troposphere model.

[0071] Optionally, since the pseudo-range observation equation established above contains various measurement errors, such as Figure 3 The detailed flowchart of a positioning method provided by the embodiment of the present application is shown. In order to further improve the positioning accuracy, we also need to correct various measurement errors. First, the satellite clock correction term is a parameter provided in the navigation data, which is used to describe the difference between the satellite clock and the ground standard time. Through this parameter, we can calculate the satellite clock error corresponding to each positioning satellite at the current moment. The calculation formula is: δt s =af0+af1(tt oe )+af2(tt oe ) 2 ; Second, the ionosphere model Klobuchar is used to estimate the impact of the ionosphere on satellite signal propagation, thereby correcting the delay error caused by the ionosphere. The calculation formula is: Third, the tropospheric model Saastamoinen is used to estimate the impact of the troposphere on signal propagation and correct the delay error caused by the troposphere. The calculation formula is:

[0072] Fourth, since the receiver clock error can be corrected by solving a set of nonlinear equations together with the receiver position, the receiver clock error is still solved as an unknown at this time. Through these steps, various errors in the positioning system measurement can be effectively corrected, thereby improving the positioning accuracy.

[0073] S410, substituting the satellite clock error, the ionospheric delay error and the tropospheric delay error into the pseudorange observation equation to obtain a corrected pseudorange observation equation.

[0074] Optionally, after calculating the satellite clock error, ionospheric delay error, and tropospheric delay error, we substitute these values ​​into the original pseudorange observation equation to obtain the corrected pseudorange observation equation: This equation more accurately reflects the actual distance relationship between the receiver and the satellite. Subsequently, the satellite position information calculated from the navigation data is combined with the pseudo-range observation equation corrected by multiple satellites to perform least squares or other optimization algorithms to solve the receiver's position coordinates. It should be noted that the δt in the corrected pseudo-range observation equation is u It contains other parameters in the original pseudorange observation equation except the pseudorange observation value ρ and the geometric distance r from the satellite to the receiver. Here it is just a simplified way of mapping the time value of the original equation into a distance value.

[0075] S412, substituting the satellite position into the corrected pseudo-range observation equation to establish an equation group including the three-dimensional coordinates of the receiver, wherein the equation group includes at least four nonlinear equations.

[0076] Optionally, in three-dimensional space, the position of a point can be determined by three independent coordinate parameters, usually represented by a Cartesian coordinate system (X, Y, Z). In the embodiment of the present application, the position of the receiver is such a three-dimensional coordinate point. At the same time, each satellite can provide distance information to the receiver (i.e., pseudo-range observation value). Since the unknown number of the receiver clock error still exists in the corrected pseudo-range observation equation, the corrected pseudo-range observation equation of each satellite can be expressed as an equation with four unknown factors about the receiver position and the receiver clock error. So, Figure 3As shown in the detailed flow chart of a positioning method provided by an embodiment of the present application, in order to obtain the three-dimensional coordinate position of the receiver, we need observation data from at least four positioning satellites in order to establish four or more such equations, so that the precise position of the receiver can be solved by mathematical methods (such as the least squares method). In addition, when the number of positioning satellites exceeds four, we can use the additional information provided by these positioning satellites to improve the accuracy and reliability of the positioning results to obtain a more accurate position estimate.

[0077] Specifically, the corresponding satellite positions and the corrected pseudo-range observation equations are solved for at least four positioning satellites in the positioning system according to the above method, and then the position coordinates of each satellite are substituted into the corresponding corrected pseudo-range observation equation to establish a nonlinear equation group containing the receiver position coordinates:

[0078]

[0079] S414, calculating the set of equations to obtain the three-dimensional coordinate position of the receiver.

[0080] Optionally, since the above equations are nonlinear and difficult to solve directly, we use the least squares method to solve the nonlinear equations through iterative calculation to obtain the true three-dimensional coordinate position of the receiver.

[0081] In an embodiment of the present application, a positioning method is provided, which converts the acquired raw navigation message data into target data in RINEX format, and reads out the navigation data and observation data required for calculating the satellite position and pseudo-range observation equation, so that the raw navigation message data can be more conveniently processed and parsed, providing a basis for subsequent positioning calculations; the satellite position corresponding to the positioning satellite is calculated according to the satellite orbit parameters and time information in the navigation data, which is a key parameter in the positioning process, can reduce the positioning error introduced by inaccurate satellite position, and can ensure that the data basis used in subsequent calculations is reliable; then, through the pseudo-range observation value in the observation data, the pseudo-range observation equation containing the measurement error is established based on the time difference between the signal transmitted by the satellite and the receiver, which reflects the satellite The relative position relationship between the satellite and the receiver also provides reliable data support for subsequent positioning calculations; next, by correcting the various measurement errors in the pseudorange observation equation, and substituting the corrected values ​​into the original pseudorange observation equation, the corrected pseudorange observation equation is obtained. This step can reduce the impact of various error sources on the positioning system, thereby obtaining a more accurate geometric distance between the satellite and the receiver and improving the positioning accuracy; finally, through the various parameters solved by at least four positioning satellites in the positioning system, a nonlinear equation group containing the receiver position coordinates is established and solved to obtain the final three-dimensional coordinate position of the receiver. The embodiment of the present application uses the above method to achieve efficient data processing and obtain accurate positioning information when only the original navigation message data of the satellite is received.

[0082] See also Figure 5 , Figure 5 A structural block diagram of a positioning device provided in an embodiment of the present application.

[0083] like Figure 5 As shown, the positioning device 500 includes:

[0084] The data acquisition module 510 is used to obtain the original navigation message data of the positioning satellite in the positioning system in response to the positioning request for the receiver, and obtain the navigation data and observation data of the positioning satellite based on the original navigation message data.

[0085] The data application module 520 is used to calculate the satellite position corresponding to the positioning satellite according to the navigation data, and obtain the pseudo-range observation equation between the positioning satellite and the receiver according to the observation data.

[0086] The position calculation module 530 is used to correct the measurement error in the pseudo-range observation equation to obtain a corrected pseudo-range observation equation, and calculate the position of the receiver based on the corrected pseudo-range observation equation and the satellite position.

[0087] Optionally, the data acquisition module 510 is further used to convert the original navigation message data into target data in RINEX format, and read the navigation data and observation data therefrom.

[0088] Optionally, the data application module 520 is further configured to calculate the satellite position corresponding to the positioning satellite according to the satellite orbit parameters and time information in the navigation data.

[0089] Optionally, the data application module 520 is further configured to read pseudorange observation values ​​in the observation data, and establish a pseudorange observation equation containing measurement errors based on the pseudorange observation values.

[0090] Optionally, the position calculation module 530 is also used to calculate the satellite clock error in the measurement error through the satellite clock error correction item in the navigation data, calculate the ionospheric delay error in the measurement error through the ionosphere model, and calculate the tropospheric delay error in the measurement error through the troposphere model; substitute the satellite clock error, ionospheric delay error and tropospheric delay error into the pseudorange observation equation to obtain the corrected pseudorange observation equation.

[0091] Optionally, the position of the receiver is a three-dimensional coordinate position, and the number of positioning satellites is greater than or equal to four.

[0092] Optionally, the position calculation module 530 is also used to substitute the satellite position into the corrected pseudorange observation equation to establish a set of equations containing the three-dimensional coordinates of the receiver, the set of equations including at least four nonlinear equations; and calculate the set of equations to obtain the three-dimensional coordinate position of the receiver.

[0093] In an embodiment of the present application, a positioning device is provided, wherein a data acquisition module is used to obtain original navigation message data of a positioning satellite in a positioning system in response to a positioning request for a receiver, and obtain navigation data and observation data of the positioning satellite based on the original navigation message data; a data application module is used to calculate a satellite position corresponding to the positioning satellite according to the navigation data, and obtain a pseudo-range observation equation between the positioning satellite and the receiver according to the observation data; and a position calculation module is used to correct a measurement error in the pseudo-range observation equation to obtain a corrected pseudo-range observation equation, and calculate the position of the receiver based on the corrected pseudo-range observation equation and the satellite position. When the positioning system receives a positioning request for the receiver, the data acquisition module can obtain the navigation data and observation data in the original navigation message data sent by the positioning satellite. The key information in these data will directly affect the subsequent positioning precision and accuracy, and provide a reliable basis for subsequent calculations; the data application module will calculate the satellite position and pseudo-range observation equation according to the aforementioned navigation data and observation data. This pseudo-range observation equation directly reflects the relative position relationship between the satellite and the receiver, and is the core of subsequent positioning calculations; the position calculation module will first correct the measurement error of the original pseudo-range observation equation. The receiver position calculated based on the corrected pseudo-range observation equation and satellite position is more accurate and can better meet the needs of high-precision positioning.

[0094] An embodiment of the present application further provides a computer storage medium, which can store multiple instructions, and the instructions are suitable for being loaded by a processor and executing the steps of any method in the above embodiments.

[0095] See also Figure 6 , Figure 6 A schematic diagram of the structure of a terminal provided in an embodiment of the present application. Figure 6 As shown, the terminal 600 may include: at least one terminal processor 601 , at least one network interface 604 , a user interface 603 , a memory 605 , and at least one communication bus 602 .

[0096] The communication bus 602 is used to realize the connection and communication between these components.

[0097] The user interface 603 may include a display screen (Display) and a camera (Camera), and the optional user interface 603 may also include a standard wired interface and a wireless interface.

[0098] The network interface 604 may optionally include a standard wired interface or a wireless interface (such as a WI-FI interface).

[0099] Among them, the terminal processor 601 may include one or more processing cores. The terminal processor 601 uses various interfaces and lines to connect various parts in the entire terminal 600, and executes various functions and processes data of the terminal 600 by running or executing instructions, programs, code sets or instruction sets stored in the memory 605, and calling data stored in the memory 605. Optionally, the terminal processor 601 can be implemented in at least one hardware form of digital signal processing (Digital Signal Processing, DSP), field programmable gate array (Field-Programmable Gate Array, FPGA), and programmable logic array (Programmable Logic Array, PLA). The terminal processor 601 can integrate one or a combination of a central processing unit (Central Processing Unit, CPU), a graphics processing unit (Graphics Processing Unit, GPU) and a modem. Among them, the CPU mainly processes the operating system, user interface and application programs; the GPU is responsible for rendering and drawing the content to be displayed on the display screen; the modem is used to process wireless communications. It can be understood that the above-mentioned modem may not be integrated into the terminal processor 601, and it can be implemented separately through a chip.

[0100] Among them, the memory 605 may include a random access memory (Random Access Memory, RAM) and may also include a read-only memory (Read-Only Memory, ROM). Optionally, the memory 605 includes a non-transitory computer-readable storage medium. The memory 605 can be used to store instructions, programs, codes, code sets or instruction sets. The memory 605 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playback function, an image playback function, etc.), instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area may store data involved in the above-mentioned various method embodiments, etc. The memory 605 may also be optionally at least one storage device located away from the aforementioned terminal processor 601. As Figure 6 As shown, the memory 605 as a computer storage medium may include an operating system, a network communication module, a user interface module, and a positioning program.

[0101] exist Figure 6In the terminal 600 shown, the user interface 603 is mainly used to provide an input interface for the user and obtain the data input by the user; and the terminal processor 601 can be used to call the positioning program stored in the memory 605 and specifically perform the following operations:

[0102] In response to a positioning request for a receiver, original navigation message data of a positioning satellite in a positioning system is acquired, and navigation data and observation data of the positioning satellite are obtained based on the original navigation message data.

[0103] The satellite position corresponding to the positioning satellite is calculated according to the navigation data, and the pseudo-range observation equation between the positioning satellite and the receiver is obtained according to the observation data.

[0104] The measurement error in the pseudorange observation equation is corrected to obtain a corrected pseudorange observation equation, and the position of the receiver is calculated based on the corrected pseudorange observation equation and the satellite position.

[0105] In some embodiments, when the terminal processor 601 obtains the navigation data and observation data of the positioning satellite based on the original navigation message data, it specifically performs the following steps: converting the original navigation message data into target data in RINEX format, and reading the navigation data and observation data therefrom.

[0106] In some embodiments, when calculating the satellite position corresponding to the positioning satellite according to the navigation data, the terminal processor 601 specifically performs the following steps: calculating the satellite position corresponding to the positioning satellite according to the satellite orbit parameters and time information in the navigation data.

[0107] In some embodiments, when the terminal processor 601 executes the pseudorange observation equation between the positioning satellite and the receiver according to the observation data, it specifically performs the following steps: reading the pseudorange observation value in the observation data, and establishing the pseudorange observation equation containing the measurement error based on the pseudorange observation value.

[0108] In some embodiments, when the terminal processor 601 executes the correction of the measurement error in the pseudorange observation equation to obtain the corrected pseudorange observation equation, it specifically performs the following steps: calculating the satellite clock error in the measurement error through the satellite clock error correction term in the navigation data, calculating the ionospheric delay error in the measurement error through the ionosphere model, and calculating the tropospheric delay error in the measurement error through the troposphere model; substituting the satellite clock error, ionospheric delay error and tropospheric delay error into the pseudorange observation equation to obtain the corrected pseudorange observation equation.

[0109] In some embodiments, the position of the receiver is a three-dimensional coordinate position, and the number of positioning satellites is greater than or equal to four.

[0110] In some embodiments, when the terminal processor 601 calculates the position of the receiver based on the corrected pseudorange observation equation and the satellite position, it specifically performs the following steps: substituting the satellite position into the corrected pseudorange observation equation to establish a set of equations containing the three-dimensional coordinates of the receiver, wherein the set of equations includes at least four nonlinear equations; and calculating the set of equations to obtain the three-dimensional coordinate position of the receiver.

[0111] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of modules is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or modules, which can be electrical, mechanical or other forms.

[0112] The modules described as separate components may or may not be physically separated, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0113] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The above computer program product includes one or more computer instructions. When the above computer program instructions are loaded and executed on a computer, the above process or function according to the embodiment of this specification is generated in whole or in part. The above computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The above computer instructions can be stored in a computer-readable storage medium or transmitted by the above computer-readable storage medium. The above computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (Digital Subscriber Line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The above computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that contains one or more available media integrated. The above-mentioned available media can be magnetic media (for example, floppy disks, hard disks, tapes), optical media (for example, digital versatile discs (DVD)), or semiconductor media (for example, solid state disks (SSD)), etc.

[0114] It should be noted that, for the above-mentioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the described action sequence, because according to the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.

[0115] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0116] The above is a description of a positioning method, device, storage medium and terminal provided in the present application. For technicians in this field, according to the ideas of the embodiments of the present application, there may be changes in the specific implementation methods and application scopes. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A positioning method, characterized in that: The method comprises: In response to a positioning request for a receiver, original navigation message data of a positioning satellite in a positioning system is acquired, and navigation data and observation data of the positioning satellite are obtained based on the original navigation message data; Calculating the satellite position corresponding to the positioning satellite according to the navigation data, and obtaining a pseudo-range observation equation between the positioning satellite and the receiver according to the observation data; The measurement error in the pseudorange observation equation is corrected to obtain a corrected pseudorange observation equation, and the position of the receiver is calculated based on the corrected pseudorange observation equation and the satellite position.

2. The method according to claim 1, characterized in that The obtaining of the navigation data and observation data of the positioning satellite based on the original navigation message data comprises: The original navigation message data is converted into target data in RINEX format, and navigation data and observation data are read therefrom.

3. The method according to claim 1, characterized in that The calculating the satellite position corresponding to the positioning satellite according to the navigation data comprises: The satellite position corresponding to the positioning satellite is calculated based on the satellite orbit parameters and time information in the navigation data.

4. The method according to claim 1, characterized in that: The obtaining of the pseudo-range observation equation between the positioning satellite and the receiver according to the observation data comprises: The pseudorange observation values ​​in the observation data are read, and a pseudorange observation equation containing measurement errors is established based on the pseudorange observation values.

5. The method according to claim 1, characterized in that The step of correcting the measurement error in the pseudorange observation equation to obtain a corrected pseudorange observation equation includes: Calculating the satellite clock error in the measurement error by using the satellite clock error correction term in the navigation data, calculating the ionospheric delay error in the measurement error by using an ionospheric model, and calculating the tropospheric delay error in the measurement error by using a tropospheric model; Substituting the satellite clock error, the ionospheric delay error and the tropospheric delay error into the pseudorange observation equation obtains a corrected pseudorange observation equation.

6. The method according to claim 1, characterized in that The position of the receiver is a three-dimensional coordinate position, and the number of the positioning satellites is greater than or equal to four.

7. The method according to claim 6, characterized in that The calculating the position of the receiver based on the corrected pseudorange observation equation and the satellite position comprises: Substituting the satellite position into the corrected pseudorange observation equation to establish an equation group including the three-dimensional coordinates of the receiver, wherein the equation group includes at least four nonlinear equations; The three-dimensional coordinate position of the receiver is obtained by calculating the set of equations.

8. A positioning device, characterized in that: The device comprises: A data acquisition module, configured to acquire original navigation message data of a positioning satellite in a positioning system in response to a positioning request for a receiver, and obtain navigation data and observation data of the positioning satellite based on the original navigation message data; A data application module, used to calculate the satellite position corresponding to the positioning satellite according to the navigation data, and obtain a pseudo-range observation equation between the positioning satellite and the receiver according to the observation data; The position calculation module is used to correct the measurement error in the pseudorange observation equation to obtain a corrected pseudorange observation equation, and calculate the position of the receiver based on the corrected pseudorange observation equation and the satellite position.

9. A computer storage medium, characterized in that: The computer storage medium stores a plurality of instructions, which are suitable for being loaded by a processor and executing the method steps according to any one of claims 1 to 7.

10. An electronic device, characterized in that: include: A processor and a memory; wherein the memory stores a computer program, and the computer program is suitable for being loaded by the processor and executing the method steps as claimed in any one of claims 1 to 7.