Positioning methods, devices, computer equipment, storage media, and software products

By determining satellite visibility in satellite-obstructed areas and optimizing factor maps, eliminating invisible satellites, and generating positioning information using double-difference pseudorange and frequency shift, the problem of inaccurate positioning caused by satellite signal obstruction is solved, improving positioning accuracy and reducing computational load.

CN116263334BActive Publication Date: 2025-10-31TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111561095.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-15
Publication Date
2025-10-31
Estimated Expiration
2041-12-15

AI Technical Summary

Technical Problem

In complex environments such as those with multiple buildings or overpasses, the positioning accuracy of global satellite navigation systems is low and is severely affected by satellite signal blockage.

Method used

By determining the satellite visibility of candidate locations and eliminating invisible satellites, positioning information is generated using double-difference pseudorange and double-difference frequency shift optimization factor maps, reducing the estimation of clock error parameters and clock drift parameters.

Benefits of technology

It improves positioning accuracy, reduces computational load, and enhances positioning precision in areas where satellite signals are blocked.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116263334B_ABST
    Figure CN116263334B_ABST
Patent Text Reader

Abstract

This application relates to a positioning method, apparatus, computer device, storage medium, and program product. The method can be applied to map navigation, map building, autonomous driving, or smart mobility scenarios. The method includes: determining the target location from candidate locations corresponding to the area where the target device is located at the current epoch based on satellite visibility; calculating the double-difference pseudorange and double-difference frequency shift at the current epoch based on the target's visible satellites observed jointly by the target location and a reference base station at the current epoch; adding a trailing variable node to the factor map optimized in the previous epoch based on the double-difference pseudorange and double-difference frequency shift at the current epoch to obtain the factor map corresponding to the current epoch; adjusting the factor map corresponding to the current epoch with the goal of maximizing the posterior probability of the factor map corresponding to the current epoch to obtain the optimized factor map for the current epoch; and generating the positioning information of the target device at the current epoch based on the trailing variable nodes in the optimized factor map for the current epoch. This method can improve positioning accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a positioning method, apparatus, computer equipment, storage medium, and computer program product. Background Technology

[0002] With the rapid development of smart devices and computer technology, location services are increasingly being used in smart devices such as smartphones and in-car navigation systems, bringing great convenience to people's daily lives. Global Navigation Satellite Systems (GNSS) can be integrated into smart devices such as smartphones and in-car navigation systems, and the location services derived from them, such as location sharing services provided by social applications and route navigation services provided by navigation applications, also enrich and enhance people's daily lives.

[0003] Currently, global navigation satellite systems (GNSS) use satellite signals received by smart devices to locate them. However, in practical applications, users may be in areas with complex road conditions such as multiple buildings or overpasses that obstruct satellite signals, hindering the reception of satellite signals by smart devices and resulting in lower accuracy of positioning information generated by GNSS. Summary of the Invention

[0004] Therefore, it is necessary to provide a positioning method, device, computer equipment, computer-readable storage medium, and computer program product that can improve positioning accuracy in response to the above-mentioned technical problems.

[0005] Firstly, this application provides a positioning method. The method includes:

[0006] Determine the candidate locations corresponding to the region where the target device is located in the current epoch;

[0007] Based on the target occlusion object in the azimuth angle between the candidate position at the current epoch and the satellite observed by the target device, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility.

[0008] Determine the target's visible satellites at the current epoch, jointly observed by the target location and the reference base station;

[0009] Based on the observed pseudorange between the target position and the target's visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target's visible satellite, calculate the double-difference pseudorange at the current epoch. Based on the observed frequency shift between the target position and the target's visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target's visible satellite, calculate the double-difference frequency shift at the current epoch.

[0010] Based on the double-difference pseudorange and double-difference frequency shift of the current epoch, add a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. Adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, generate the positioning information of the target device in the current epoch.

[0011] Secondly, this application also provides a positioning device. The device includes:

[0012] The candidate location determination module is used to determine the candidate location corresponding to the area where the target device is located in the current epoch;

[0013] The target location determination module is used to determine the satellite visibility corresponding to the candidate location based on the target occlusion object in the azimuth angle between the candidate location and the satellite observed by the target device at the current epoch, and to determine the target location from the candidate locations according to the satellite visibility.

[0014] The visible satellite determination module is used to determine the target visible satellites that are jointly observed by the target location and the reference base station at the current epoch.

[0015] The calculation module is used to calculate the double-difference pseudorange of the current epoch based on the observed pseudorange between the target position and the target visible satellite, and the reference pseudorange between the reference base station and the target visible satellite, and to calculate the double-difference frequency shift of the current epoch based on the observed frequency shift between the target position and the target visible satellite, and the reference frequency shift between the reference base station and the target visible satellite.

[0016] The positioning module is used to add a trailing variable node to the factor graph optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, to obtain the factor graph corresponding to the current epoch. The module adjusts the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, the module generates the positioning information of the target device in the current epoch.

[0017] In one embodiment, the candidate location determination module is further configured to: determine the initial estimated location of the target device; construct a candidate region centered on the initial estimated location; and divide the candidate region into multiple candidate locations.

[0018] In one embodiment, the target location determination module is further configured to: acquire the set of satellites observed by the target device in the current epoch; for each candidate location, determine the azimuth angle of the candidate location and the target occlusion object located at the azimuth angle, calculate the elevation angle between the candidate location and the target occlusion object as an elevation angle threshold; calculate the elevation angle between the candidate location and each satellite in the satellite set; identify satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed at the candidate location in the current epoch; and determine the satellite visibility degree corresponding to the candidate location based on the number of visible satellites.

[0019] In one embodiment, the target location determination module is further configured to: determine the signal-to-noise ratio (SNR) of the visible satellites observed at the candidate location at the current epoch; determine the number of visible satellites whose SNR is greater than a preset threshold; determine the satellite visibility degree corresponding to the candidate location based on a first number of visible satellites whose SNR is greater than the preset threshold, wherein the satellite visibility degree is positively correlated with the first number; or, determine the satellite visibility degree corresponding to the candidate location based on a second number of satellites in the satellite set other than the visible satellites whose SNR is less than or equal to the preset threshold, wherein the satellite visibility degree is inversely correlated with the second number.

[0020] In one embodiment, the target location determination module is further configured to: acquire the set of satellites observed by the reference base station at the current epoch; determine the azimuth angle of the reference base station and the target occlusion object located at the azimuth angle of the reference base station, calculate the elevation angle between the reference base station and the target occlusion object as an elevation angle threshold; calculate the elevation angle between the reference base station and each satellite in the satellite set; and designate satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed by the reference base station at the current epoch; the visible satellite determination module is further configured to: determine the target visible satellites jointly observed by the reference base station and the target location at the current epoch based on the intersection of the visible satellites observed at the target location at the current epoch and the visible satellites observed by the reference base station.

[0021] In one embodiment, the calculation module is further configured to: obtain real-time satellite status information corresponding to the target visible satellites observed by the target device in the current epoch; determine the observation pseudorange between the target position and each of the target visible satellites based on the real-time satellite status information; obtain reference satellite status information corresponding to the target visible satellites observed by the reference base station in the current epoch; and calculate the reference pseudorange between the reference base station and each of the target visible satellites based on the reference satellite status information.

[0022] In one embodiment, the computing module is further configured to:

[0023]

[0024] in, This represents the double-difference pseudorange between the target device a and the reference base station b in the current epoch. This represents the pseudorange observed by target device a from the target's visible satellite j at the target's current epoch. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the pseudorange observed by target device a from the target's visible satellite k at the target's current epoch. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the double-difference geometric distance between the target device a and the reference base station b in the current epoch; This represents the double difference error between the target device a and the reference base station b at the current epoch. This error is the correlation error between the pseudorange and carrier phase observations.

[0025] In one embodiment, the calculation module is further configured to: obtain the first carrier phase observation value corresponding to the target visible satellite observed by the target device in the current epoch, and the second carrier phase observation value of the target device observed by the target visible satellite in the previous epoch, and calculate the observation frequency shift corresponding to the current epoch; obtain the first carrier phase reference value observed by the reference base station of the target visible satellite in the current epoch, and the second carrier phase reference value observed by the reference base station of the target visible satellite in the previous epoch, and calculate the reference frequency shift corresponding to the current epoch.

[0026] In one embodiment, the computing module is further configured to:

[0027]

[0028] in, This represents the double difference frequency shift between the target device a and the reference base station b in the current epoch; This represents the frequency shift of the observation of the target visible satellite j by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j; This represents the frequency shift of the observation of the target visible satellite k by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j.

[0029]

[0030] in, Let represent the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite j. v represents the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite k; a Indicates the speed of target device a; This represents the cosine of the direction of the line connecting reference base station b and the target visible satellite j. v represents the cosine of the direction of the line connecting reference base station b and the target visible satellite k; j v represents the velocity of the visible satellite j. k This represents the velocity of the target's visible satellite k; This represents the double difference error between target device a and reference base station b at the current epoch. This error is the correlation error between pseudorange and carrier phase observations.

[0031] In one embodiment, the positioning module is further configured to: use the double-difference pseudorange and the double-difference frequency shift of the current epoch as factor nodes; calculate the position of the target device in the current epoch based on the double-difference pseudorange of the current epoch; calculate the velocity of the target device in the current epoch based on the double-difference frequency shift of the current epoch; add a final variable node to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch, to obtain the factor graph corresponding to the current epoch; adjust the values ​​of each variable node in the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch, to obtain the factor graph optimized for the current epoch; and generate the positioning information of the target device in the current epoch based on the position represented by the final variable node in the factor graph optimized for the current epoch.

[0032] In one embodiment, the positioning module is further configured to: calculate a first conditional probability between each variable node in the factor graph corresponding to the current epoch; calculate a second conditional probability between each variable node and the corresponding factor node in the factor graph corresponding to the current epoch; and calculate the posterior probability of the factor graph corresponding to the current epoch based on each of the first conditional probabilities and each of the second conditional probabilities.

[0033] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:

[0034] Determine the candidate locations corresponding to the region where the target device is located in the current epoch;

[0035] Based on the target occlusion object in the azimuth angle between the candidate position at the current epoch and the satellite observed by the target device, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility.

[0036] Determine the target's visible satellites at the current epoch, jointly observed by the target location and the reference base station;

[0037] Based on the observed pseudorange between the target position and the target's visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target's visible satellite, calculate the double-difference pseudorange at the current epoch. Based on the observed frequency shift between the target position and the target's visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target's visible satellite, calculate the double-difference frequency shift at the current epoch.

[0038] Based on the double-difference pseudorange and double-difference frequency shift of the current epoch, add a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. Adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, generate the positioning information of the target device in the current epoch.

[0039] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs the following steps:

[0040] Determine the candidate locations corresponding to the region where the target device is located in the current epoch;

[0041] Based on the target occlusion object in the azimuth angle between the candidate position at the current epoch and the satellite observed by the target device, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility.

[0042] Determine the target's visible satellites at the current epoch, jointly observed by the target location and the reference base station;

[0043] Based on the observed pseudorange between the target position and the target's visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target's visible satellite, calculate the double-difference pseudorange at the current epoch. Based on the observed frequency shift between the target position and the target's visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target's visible satellite, calculate the double-difference frequency shift at the current epoch.

[0044] Based on the double-difference pseudorange and double-difference frequency shift of the current epoch, add a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. Adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, generate the positioning information of the target device in the current epoch.

[0045] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:

[0046] Determine the candidate locations corresponding to the region where the target device is located in the current epoch;

[0047] Based on the target occlusion object in the azimuth angle between the candidate position at the current epoch and the satellite observed by the target device, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility.

[0048] Determine the target's visible satellites at the current epoch, jointly observed by the target location and the reference base station;

[0049] Based on the observed pseudorange between the target position and the target's visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target's visible satellite, calculate the double-difference pseudorange at the current epoch. Based on the observed frequency shift between the target position and the target's visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target's visible satellite, calculate the double-difference frequency shift at the current epoch.

[0050] Based on the double-difference pseudorange and double-difference frequency shift of the current epoch, add a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. Adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, generate the positioning information of the target device in the current epoch.

[0051] The aforementioned positioning method, apparatus, computer equipment, storage medium, and computer program product, on the one hand, determine the satellite visibility corresponding to the candidate positions based on the azimuth angle between the candidate positions corresponding to the area where the target device is located at the current epoch and the target occlusion objects observed by the target device, and determine the target position from the candidate positions according to the satellite visibility. The target visible satellites jointly observed by the target position and the reference base station at the current epoch are included in the subsequent positioning process. Since satellites that the target device cannot directly observe are eliminated, the accuracy of subsequent positioning can be improved. On the other hand, based on the double-difference pseudorange and the double-difference frequency of the current epoch... The algorithm adds a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. It then adjusts the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph for the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, the positioning information of the target device in the current epoch is generated. Optimizing the position information of the target device obtained from satellite observation data through the factor graph algorithm can improve the positioning accuracy. Furthermore, since the double-difference pseudorange and double-difference frequency shift reduce the estimation of clock error parameters and clock drift parameters, the computational load in the positioning process can be reduced. Attached Figure Description

[0052] Figure 1 This is a diagram illustrating the application environment of the positioning method in one embodiment;

[0053] Figure 2 This is a block diagram of the structure of a global satellite navigation system chip in one embodiment;

[0054] Figure 3 This is a flowchart illustrating the positioning method in one embodiment;

[0055] Figure 4 This is a schematic diagram illustrating the determination of candidate positions in one embodiment;

[0056] Figure 5 This is a schematic diagram of a target occlusion object at an azimuth angle for determining a candidate location in one embodiment;

[0057] Figure 6 This is a schematic diagram of visible and non-visible satellites in one embodiment;

[0058] Figure 7 This is a schematic diagram of the factor graph corresponding to the current epoch in one embodiment;

[0059] Figure 8 This is a schematic diagram illustrating the determination of the visible satellite corresponding to a candidate location in one embodiment;

[0060] Figure 9 This is a flowchart illustrating the process of determining the visible satellite corresponding to a candidate location in one embodiment;

[0061] Figure 10 This is a schematic diagram illustrating the calculation of the double-difference pseudorange of the current epoch in one embodiment;

[0062] Figure 11 This is a schematic diagram illustrating the calculation of the double-difference frequency shift for the current epoch in one embodiment;

[0063] Figure 12 This is a schematic diagram of the factor graph corresponding to the current epoch in one embodiment;

[0064] Figure 13 This is a flowchart illustrating the positioning method in one embodiment;

[0065] Figure 14 This is a structural block diagram of the positioning device in one embodiment;

[0066] Figure 15 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation

[0067] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0068] The positioning method provided in this application embodiment can be applied to, for example, Figure 1 In the application environment shown, terminal 102 receives satellite signals transmitted by satellite 106. Terminal 102 can also communicate with server 104 via a network simultaneously. A data storage system can store the data that server 104 needs to process. The data storage system can be integrated onto server 104, or it can be located in the cloud or on other network servers.

[0069] The terminal 102 can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart vehicle devices, and other devices with positioning capabilities. Portable wearable devices can include smartwatches, smart bracelets, and head-mounted devices. The server 104 can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud storage, network services, cloud communication, big data, and artificial intelligence platforms. The terminal and server can be connected directly or indirectly via wired or wireless communication; this application does not impose any restrictions. The satellite 106 can be a satellite of one or more satellite navigation systems; this application does not impose any restrictions.

[0070] In one embodiment, terminal 102 runs an application that provides location services (hereinafter referred to as a location application), and server 104 is the server corresponding to the location application. Both terminal 102 and server 104 can act as execution entities to execute the location method provided in the embodiments of this application.

[0071] In one embodiment, taking the positioning method provided in this application embodiment as an example, terminal 102 first receives satellite signals sent by satellite 106, and determines the candidate position corresponding to the area where terminal 102 is located at the current epoch based on the received satellite signals; then, based on the target occlusion object in the azimuth angle between the candidate position at the current epoch and the satellite observed by the target device, terminal 102 determines the satellite visibility corresponding to the candidate position, and determines the target position from the candidate positions according to the satellite visibility; next, terminal 102 determines the target visible satellite jointly observed by the target position and the reference base station at the current epoch; then, terminal 102 determines the target visible satellite based on the observation pseudorange between the target position at the current epoch and the target visible satellite, and the reference base station. The reference pseudorange between the base station and the target visible satellite is used to calculate the double-difference pseudorange of the current epoch. Based on the observation frequency shift between the target position and the target visible satellite in the current epoch, and the reference frequency shift between the reference base station and the target visible satellite, the double-difference frequency shift of the current epoch is calculated. Then, the terminal 102 adds a trailing variable node to the factor map optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, to obtain the factor map corresponding to the current epoch. The factor map corresponding to the current epoch is adjusted with the goal of maximizing the posterior probability of the factor map corresponding to the current epoch, to obtain the optimized factor map of the current epoch. Based on the trailing variable node in the optimized factor map of the current epoch, the positioning information of the terminal 102 in the current epoch is generated.

[0072] The positioning method provided in this application is based on the Global Navigation Satellite System (GNSS), a collective term for satellite navigation and positioning systems such as BeiDou, GPS, GLONASS, and Galileo. A GNSS consists of a satellite constellation, ground monitoring stations, and satellite receiving equipment. The satellite receiving equipment, equipped with a GNSS chip, directly faces the user and is a crucial component of navigation and positioning. With the development of corresponding hardware for GNSS, the GNSS chip can observe satellite signals from multiple GNSS systems. Although these systems differ in signal systems, spatiotemporal references, etc., they are also compatible with each other. The development of multiple systems provides more satellite data for navigation and positioning, thereby improving the accuracy, reliability, and completeness of navigation and positioning.

[0073] Reference Figure 2 , Figure 2 This is a block diagram of a global navigation satellite system (GNSS) chip in one embodiment. As can be seen, the GNSS chip includes a radio frequency (RF) front-end processing module, a baseband signal processing module, and a position, velocity, and time calculation module. First, the antenna transmits the received satellite signal to the RF front-end processing module via a feed line. Next, the RF front-end processing module amplifies the originally weak signal using a pre-filter and pre-amplifier. The amplified signal is then down-converted and mixed with the local sinusoidal oscillator signal generated by the chip to become an intermediate frequency (IF) signal. This IF signal is then converted into a digital IF signal by an analog-to-digital converter and transmitted to the baseband signal processing module. Next, the baseband signal processing module replicates a pseudorange and carrier signal identical to the IF signal. By capturing and tracking this pseudorange and carrier signal, it obtains pseudorange, carrier phase observations, navigation messages, and other information. Finally, the position, velocity, and time calculation module calculates the position, velocity, and time information based on the information processed by the baseband signal processing module. Because the specific processing scheme used by the position, velocity, and time calculation module is determined by the global navigation satellite system chip itself, and users do not have the authority to modify it, the global navigation satellite system chip is like a "black box" in the device, and can only output limited information such as position, velocity, and time. Due to the influence of satellite orbit, atmospheric delay, etc., even in an ideal open environment, the positioning accuracy can only reach a few meters.

[0074] Smart devices can obtain raw satellite observation data through application programming interfaces (APIs), including receiver quartz clock information (GNSS Clock), GNSS measurement information for each satellite signal, and GNSS navigation message information. For example, Android-based smart devices can use the Android.location API to obtain raw satellite observation data, and by correcting the raw observation data, errors caused by satellite orbit and atmospheric delays can be eliminated, thereby improving positioning accuracy.

[0075] In one embodiment, such as Figure 3 As shown, a positioning method is provided, which can be applied to... Figure 1 Taking terminal 102 (hereinafter referred to as the target device) as an example, the following steps are included:

[0076] Step 302: Determine the candidate location corresponding to the area where the target device is located in the current epoch.

[0077] The target device is the device from which positioning information is to be generated, such as a smartphone, tablet, portable wearable device, smart vehicle device, or outdoor navigation device. An epoch is the point in time from which satellite-related data is acquired. The satellite-related data acquired in the previous epoch and the satellite-related data acquired in the current epoch are analogous to the data acquired at a previous moment and the data acquired at the current moment. Satellite-related data acquired at different epochs can be used to obtain other data for the corresponding epoch according to the positioning method provided in this application, such as candidate locations, visible satellites, factor maps, and positioning information. An epoch can be used to describe the batch of satellite signal acquisition by the target device. For example, the target device acquires satellite signals every predetermined interval, and the epoch increases with each additional acquisition. The current epoch represents the current acquisition batch of the target device. It should be noted that the "previous epoch" used in this application is used to describe the time point of the last satellite-related data acquisition, and the "current epoch" is used to describe the time point of the current satellite-related data acquisition. Furthermore, the "previous epoch" and the "current epoch" are relative and changeable. For example, after the "previous epoch" ends, the "current epoch" needs to be used as the new "previous epoch".

[0078] In one embodiment, the target device acquires the satellite signal received at the current epoch, determines the initial estimated position of the target device at the current epoch based on the satellite signal, and determines the candidate position corresponding to the area where the target device is located at the current epoch based on the initial estimated position.

[0079] In one embodiment, the target device determines the real-time satellite status information of the current epoch based on the satellite signals received at the current epoch, and determines the initial estimated position of the target device at the current epoch based on the real-time satellite status information.

[0080] Real-time satellite status information refers to satellite-related information observed by the target device at the current epoch, such as satellite position, number of satellites, satellite elevation angle, satellite azimuth angle, satellite signal strength, pseudorange observations, and carrier phase observations. The target device can be equipped with a global satellite navigation chip to receive satellite signals, read the raw observation data corresponding to the satellite signals in the global satellite navigation chip, and determine the real-time satellite status information based on the raw observation data.

[0081] In one embodiment, the target device can determine its initial estimated position in the current epoch based on real-time satellite status information at the current epoch, according to a common positioning strategy. Common positioning strategies include Singlepoint Positioning (SPP) and Real-Time Kinematic (RTK).

[0082] In one embodiment, the target device constructs a candidate region based on the initial estimated position of the current epoch, and determines the candidate position corresponding to the region where the target device is located in the current epoch based on the candidate region.

[0083] In one embodiment, the target device constructs a candidate region based on the initial estimated position and a predetermined range at the current epoch, and determines the candidate position corresponding to the area where the target device is located at the current epoch within the candidate region. The size of the predetermined range can be set according to the actual application scenario.

[0084] In one embodiment, the target device constructs a candidate region centered on the initial estimated position of the current epoch and combines it with a predetermined range, and divides the candidate region into multiple candidate positions.

[0085] For example, refer to Figure 4 , Figure 4 A schematic diagram illustrating the determination of candidate positions in one embodiment is shown. As can be seen, the target device constructs a candidate region 404 centered on the initial estimated position 402 of the current epoch. The candidate region 404 is then divided into multiple grids, with the center of each grid serving as a candidate position. In this case, the initial estimated position 402 is also one of the candidate positions within the candidate region 404. The side length of the grid can be set according to the actual application scenario.

[0086] Step 304: Based on the target occlusion object in the azimuth angle between the current epoch candidate position and the satellite observed by the target device, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility.

[0087] Here, the azimuth of any point on the ground is the angle between the projection of the line connecting the satellite and that point onto the ground and the direction of true north. Target obstruction refers to objects that may obstruct the propagation of satellite signals, such as buildings, overpasses, utility poles, and trees.

[0088] For example, refer to Figure 5 , Figure 5 A schematic diagram illustrating the determination of a target obstructing object at the azimuth angle between a candidate location and a satellite observed by the target device is shown in one embodiment. It can be seen that an azimuth angle 506 is formed between the candidate location 502 and the satellite 504, and a target obstructing object 508 exists at azimuth angle 506.

[0089] Among them, satellite visibility is used to characterize the number of visible satellites corresponding to the candidate location. Visible satellites refer to satellites that can be directly observed in an unobstructed state. The more visible satellites corresponding to the candidate location, the greater the satellite visibility.

[0090] For example, refer to Figure 6 , Figure 6 A schematic diagram of visible and invisible satellites in one embodiment is shown. It can be seen that, assuming the target device receives satellite signals from satellites 604 and 606 at candidate location 602, the satellite signal received by the target device from satellite 604 is a satellite signal received directly in an unobstructed state, while the satellite signal received by the target device from satellite 606 is a satellite signal received after being reflected by building 608. Satellite 604 is the visible satellite corresponding to candidate location 602, and satellite 606 is the invisible satellite corresponding to candidate location 602.

[0091] In one embodiment, the target device determines multiple candidate locations corresponding to the area where the target device is located in the current epoch. Based on the target occlusion objects in the azimuth angle between each candidate location and the satellite observed by the target device in the current epoch, the satellite visibility corresponding to each candidate location is determined. According to the determined satellite visibility, the target location is determined from each candidate location.

[0092] In one embodiment, the target device determines the satellite positions of each observation satellite at the current epoch based on the satellite signals received at the current epoch. The observation satellites are those whose satellite signals are received by the target device at the current epoch. For each candidate position, the target device can calculate the azimuth angle between the candidate position at the current epoch and each observation satellite based on the candidate position at the current epoch and the satellite positions of each observation satellite.

[0093] In one embodiment, for each candidate location, the target device determines the target occlusion objects between the candidate location and each observation satellite at the azimuth angle between the candidate location and each observation satellite. Optionally, the target device searches for occlusion objects between the candidate location and each observation satellite within a predetermined range corresponding to the candidate location, and takes the highest occlusion object between the candidate location and each observation satellite as the target occlusion object between the candidate location and each observation satellite at the current epoch.

[0094] In one embodiment, the target device can determine the visible satellites observed at the current epoch candidate position based on the target occlusion objects between the current epoch candidate position and each observed satellite, and determine the satellite visibility degree corresponding to the candidate position based on the number of visible satellites.

[0095] In one embodiment, the target device can score each candidate location according to the number of visible satellites corresponding to each candidate location, for example, assigning one score to each visible satellite corresponding to a candidate location, and using the score corresponding to each candidate location as the visibility of satellites corresponding to each candidate location.

[0096] In one embodiment, the target device can determine the invisible satellites corresponding to the current epoch candidate position based on the target occlusion objects between the current epoch candidate position and each observation satellite, and determine the satellite visibility degree corresponding to the candidate position based on the number of invisible satellites.

[0097] In one embodiment, the target device can score each candidate location according to the number of unseen satellites corresponding to each candidate location, for example, assigning a negative one point to each unseen satellite corresponding to a candidate location, and using the score corresponding to each candidate location as the visibility of the satellites corresponding to each candidate location.

[0098] In one embodiment, the target device determines the satellite visibility corresponding to each candidate location, sorts the candidate locations according to the determined satellite visibility, for example, sorting from high to low or from low to high, and takes the candidate location with the highest satellite visibility as the target location.

[0099] Step 306: Determine the target visible satellites observed jointly by the target location and the reference base station at the current epoch.

[0100] The reference base station can be a general-purpose satellite tracking reference station, which is the data source for CORS (Continuously Operating Reference Stations) and is used to continuously acquire, track, record, and transmit satellite signals over a long period of time. Reference base stations can also be smart devices with positioning capabilities, such as smartphones, tablets, portable wearable devices, smart vehicle devices, and outdoor navigation devices.

[0101] In one embodiment, the target device finds the reference base station that is closest to the target location, and uses it as the reference base station for the area where the target device is currently located.

[0102] In one embodiment, the target device determines the reference base station corresponding to the area where the target device is currently located, obtains the visible satellites observed by the reference base station at the current epoch, and takes the intersection of the visible satellites observed at the target location at the current epoch and the visible satellites observed by the reference base station to obtain the target visible satellites jointly observed by the reference base station at the target location at the current epoch.

[0103] Step 308: Calculate the double-difference pseudorange of the current epoch based on the observed pseudorange between the target position and the target visible satellite, and the reference pseudorange between the reference base station and the target visible satellite. Calculate the double-difference frequency shift of the current epoch based on the observed frequency shift between the target position and the target visible satellite, and the reference frequency shift between the reference base station and the target visible satellite.

[0104] In one embodiment, the target device calculates the observed pseudorange between the target position at the current epoch and at least two target visible satellites, and the reference pseudorange between the reference base station and the same target visible satellite, and calculates the double-difference pseudorange at the current epoch based on the observed pseudorange and the reference pseudorange.

[0105] In one embodiment, the target device calculates the observation frequency shift between the current epoch target position and at least two target visible satellites, and the reference frequency shift between the reference base station and the same target visible satellite, and calculates the double difference frequency shift for the current epoch based on the observation frequency shift and the reference frequency shift.

[0106] Step 310: Add a trailing variable node to the factor map optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch to obtain the factor map corresponding to the current epoch. Adjust the factor map corresponding to the current epoch with the goal of maximizing the posterior probability of the factor map corresponding to the current epoch to obtain the optimized factor map of the current epoch. Based on the trailing variable node in the optimized factor map of the current epoch, generate the positioning information of the target device in the current epoch.

[0107] In this application, a factor graph algorithm is used to process satellite observation data to determine the positioning information of the target device at the current epoch. This application uses double-difference pseudorange and double-difference frequency shift as factor nodes, calculates the position of the target device based on the double-difference pseudorange, and calculates the velocity of the target device based on the double-difference frequency shift, using position and velocity as variable nodes.

[0108] In one embodiment, the target device uses the double-difference pseudorange and the double-difference frequency shift of the current epoch as factor nodes of the current epoch. It calculates the position of the target device in the current epoch based on the double-difference pseudorange and the velocity of the target device in the current epoch based on the double-difference frequency shift. It adds a trailing variable node to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch to obtain the factor graph corresponding to the current epoch.

[0109] For example, refer to Figure 7 , Figure 7 A schematic diagram of the factor graph corresponding to the current epoch in one embodiment is shown. It can be seen that the factor graph corresponding to the current epoch includes variable nodes X1, ..., X... n-1 X n , where X n These are the newly added variable nodes in the current epoch. Each variable node has a corresponding factor node, and each factor node is constructed from double-difference pseudorange and double-difference frequency shift.

[0110] In one embodiment, the target terminal adjusts the values ​​of each variable node in the factor graph corresponding to the current epoch. When the posterior probability of the factor graph corresponding to the current epoch is maximized, the optimized factor graph for the current epoch is obtained. The position represented by the last variable node in the optimized factor graph for the current epoch is used as the positioning information of the target device for the current epoch.

[0111] In the aforementioned positioning method, on the one hand, based on the target occlusion object in the azimuth angle between the candidate position corresponding to the area where the target device is located in the current epoch and the satellite observed by the target device, the satellite visibility corresponding to the candidate position is determined. The target position is then determined from the candidate positions according to the satellite visibility. The target visible satellites jointly observed by the target position and the reference base station in the current epoch are included in the subsequent positioning process. Since satellites that the target device cannot directly observe are eliminated, the accuracy of subsequent positioning can be improved. On the other hand, based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, the factors optimized in the previous epoch are... Adding a trailing variable node to the subgraph yields the factor graph corresponding to the current epoch. The factor graph is then adjusted with the goal of maximizing the posterior probability of the current epoch's factor graph, resulting in an optimized factor graph for the current epoch. Based on the trailing variable nodes in this optimized factor graph, the positioning information of the target device for the current epoch is generated. Optimizing the target device's position information calculated from satellite observation data using the factor graph algorithm improves positioning accuracy. Furthermore, the use of double-difference pseudorange and double-difference frequency shift reduces the estimation of clock error and clock drift parameters, thus reducing the computational load during the positioning process.

[0112] In one embodiment, determining the satellite visibility corresponding to a candidate location based on the target occlusion object at the azimuth angle between the candidate location and the satellites observed by the target device at the current epoch includes: acquiring the set of satellites observed by the target device at the current epoch; for each candidate location, determining the azimuth angle of the candidate location and the target occlusion object located at the azimuth angle, calculating the elevation angle between the candidate location and the target occlusion object as an elevation angle threshold; calculating the elevation angle between the candidate location and each satellite in the satellite set; identifying satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed at the candidate location at the current epoch; and determining the satellite visibility corresponding to the candidate location based on the number of visible satellites. Here, the elevation angle is the angle between the line connecting the satellite and the ground point and the horizontal plane of the ground point.

[0113] In one embodiment, the target device determines the set of satellites observed by the target device at the current epoch based on the satellite signals received at the current epoch. For each candidate position, the target device determines the target occlusion object between the candidate position and each observed satellite based on the azimuth angle between the candidate position at the current epoch and each observed satellite in the satellite set, and calculates the elevation angle between the candidate position and each target occlusion object as the elevation angle threshold. The elevation angle threshold can reflect the maximum elevation angle that the target occlusion object can block.

[0114] In one embodiment, for each candidate location, the target device determines the target occlusion objects between the candidate location and each observation satellite in the satellite set based on the azimuth angle between the candidate location at the current epoch and each observation satellite. It then determines the boundary positions of each target occlusion object based on the city's 3D model and calculates the elevation angle between the candidate location and each target occlusion object based on the boundary positions. The boundary position of the target occlusion object can be the highest point of the target occlusion object; if there are multiple highest points of the target occlusion object, the highest point closest to the candidate location is selected.

[0115] In one embodiment, the target device determines the satellite positions of each observed satellite at the current epoch based on the satellite signals received at the current epoch. For each candidate position, the target device can calculate the elevation angle between the candidate position at the current epoch and each observed satellite based on the candidate position at the current epoch and the satellite positions of each observed satellite.

[0116] In one embodiment, the target device calculates the elevation angle between the candidate position at the current epoch and each observation satellite, compares the elevation angle between the candidate position and each observation satellite with the elevation angle threshold determined by the candidate position and each target occlusion object, and selects the observation satellites in the satellite set whose elevation angle is greater than the corresponding elevation angle threshold as the visible satellites observed at the candidate position at the current epoch.

[0117] For example, refer to Figure 8 , Figure 8 A schematic diagram of determining the visible satellite corresponding to a candidate position is shown in one embodiment. It can be seen that the elevation angle between candidate position 802 and satellite 804 is 806. The elevation angle threshold determined by the occlusion boundary position 810 between candidate position 802 and target occlusion object 808 is 812. Since elevation angle 806 is greater than elevation angle threshold 812, satellite 804 is the visible satellite corresponding to candidate position 802.

[0118] In this embodiment, based on the target occlusion objects at the azimuth angles of the candidate positions and each observation satellite, the elevation angle threshold between the candidate positions and each target occlusion object is determined. By comparing the elevation angle between the candidate positions and each observation satellite with the corresponding elevation angle threshold, the visible satellites corresponding to the candidate positions are determined, which improves the accuracy of identifying visible satellites. Subsequently, the target positions are filtered based on the visible satellites corresponding to the candidate positions, which can improve the accuracy of target position filtering.

[0119] In one embodiment, the method further includes: determining the signal-to-noise ratio (SNR) of the visible satellites observed at the candidate location at the current epoch; determining the number of visible satellites with an SNR greater than a preset threshold; and determining the satellite visibility level corresponding to the candidate location based on the number of visible satellites, including: determining the satellite visibility level corresponding to the candidate location based on a first number of visible satellites with an SNR greater than a preset threshold, wherein the satellite visibility level is positively correlated with the first number; or, determining the satellite visibility level corresponding to the candidate location based on a second number of satellites in the satellite set other than visible satellites with an SNR less than or equal to a preset threshold, wherein the satellite visibility level is inversely correlated with the second number.

[0120] The signal-to-noise ratio (SNR) is the ratio between received power and noise power, and it is directly proportional to the quality of the satellite signal.

[0121] In one embodiment, the target device determines the signal-to-noise ratio (SNR) of the satellite signals observed at the current epoch based on the satellite signals received at the current epoch, and then determines the SNR of the visible satellites corresponding to each candidate location. Optionally, the target device reads the raw observation data corresponding to the satellite signals observed at the current epoch from the global navigation satellite system chip via an application programming interface (API), and extracts the SNR of the satellite signals from the raw observation data. For example, the SNR of the satellite signals observed at the current epoch can be obtained from GNSS Measurement.

[0122] In one embodiment, in the shadow matching algorithm, if the signal-to-noise ratio of the satellite signal received by the target device is greater than a preset threshold, it is determined that the satellite signal was received directly in an unobstructed state; if the signal-to-noise ratio of the satellite signal received by the target device is less than or equal to the preset threshold, it is determined that the satellite signal was received after being reflected or diffracted.

[0123] In one embodiment, the target device determines the visible satellites corresponding to each candidate location in the current epoch, and determines the satellite visibility level corresponding to the candidate location based on the number of satellites with a signal-to-noise ratio (SNR) greater than a preset threshold among the visible satellites. Optionally, the target device scores each candidate location according to the number of satellites with an SNR greater than the preset threshold among the visible satellites corresponding to each candidate location. For example, it assigns one point to each satellite with an SNR greater than the preset threshold among the visible satellites corresponding to the candidate location, and uses the score corresponding to each candidate location as the satellite visibility level for each candidate location, and determines the target location from the candidate locations based on the satellite visibility level.

[0124] In one embodiment, the target device determines the satellite visibility level corresponding to a candidate location based on the number of satellites in the satellite set (excluding visible satellites) with a signal-to-noise ratio (SNR) less than or equal to a preset threshold. Optionally, the target device scores each candidate location based on the number of invisible satellites in the satellite set with an SNR less than or equal to the preset threshold, for example, assigning a negative one point to invisible satellites with an SNR less than or equal to the preset threshold. The score corresponding to each candidate location is used as the satellite visibility level for that candidate location, and the target location is determined from the candidate locations based on the satellite visibility level.

[0125] In one embodiment, the target device determines the satellite visibility corresponding to each candidate location, sorts the candidate locations according to the determined satellite visibility, for example, sorting from high to low or from low to high, and takes the candidate location with the highest satellite visibility as the target location.

[0126] In this embodiment, the target location is selected from the candidate locations based on the relationship between the signal-to-noise ratio of the visible satellites corresponding to each candidate location and a preset threshold, which can improve the accuracy of target location selection.

[0127] In one embodiment, refer to Figure 9 , Figure 9 This document illustrates a flowchart of the process for determining the visible satellites corresponding to candidate locations in one embodiment. As shown, the target device acquires the satellite signals received at the current epoch and determines the candidate locations corresponding to the area where the target device is located at the current epoch based on these satellite signals. The document also determines the satellite positions of each observation satellite at the current epoch based on the received satellite signals. For each candidate location, the document calculates the azimuth angle between the candidate location and each observation satellite based on the current epoch's candidate location and the satellite positions of each observation satellite. Based on the azimuth angle between the candidate location and each observation satellite, target occlusion objects are determined between the candidate location and each observation satellite. The boundary positions of each target occlusion object are determined based on a 3D city model. Finally, the elevation angle between the candidate location and each target occlusion object is calculated based on the boundary positions of the candidate location and each target occlusion object. As an elevation angle threshold, the elevation angle between the candidate position at the current epoch and each observed satellite is calculated. The elevation angle between the candidate position and each observed satellite is compared with the corresponding elevation angle threshold. Observed satellites in the satellite set whose elevation angle is greater than the corresponding elevation angle threshold are identified as visible satellites corresponding to the candidate position. The signal-to-noise ratio (SNR) of the visible satellites corresponding to the candidate position at the current epoch is determined. Each candidate position is scored according to the number of satellites with an SNR greater than a preset threshold. For example, one point is given to satellites with an SNR greater than a preset threshold. The score corresponding to each candidate position is used as the visibility of the satellites corresponding to each candidate position. The target position is determined from the candidate positions according to the satellite visibility.

[0128] In this embodiment, the target location is selected from the candidate locations corresponding to the area where the target device is located in the current epoch. The target location is then located using the visible satellites corresponding to the target location. Since satellites that cannot be directly observed by the target device are eliminated, the positioning accuracy is improved.

[0129] In one embodiment, the target device determines the satellite positions of each observed satellite in the current epoch based on the satellite signals received in the current epoch. For each candidate position, the azimuth angle between the candidate position and each observed satellite is calculated based on the candidate position and the satellite positions of each observed satellite. At the azimuth angle between the candidate position and each observed satellite, target occlusion objects between the candidate position and each observed satellite are determined, and the elevation angle between the candidate position and each target occlusion object is calculated as an elevation angle threshold. The elevation angle between the candidate position and each observed satellite in the current epoch is calculated, and the elevation angle between the candidate position and each observed satellite is compared with the corresponding elevation angle threshold. Observed satellites in the satellite set whose elevation angle is greater than the corresponding elevation angle threshold are selected as target satellites corresponding to the candidate positions. The signal-to-noise ratio (SNR) of the target satellites corresponding to the candidate positions in the current epoch is determined, and target satellites with an SNR greater than a preset threshold are selected as visible satellites corresponding to the candidate positions in the current epoch.

[0130] In this embodiment, based on the target occlusion objects at the azimuth angles of the candidate positions and each observation satellite, the elevation angle threshold between the candidate positions and each target occlusion object is determined. By comparing the elevation angle between the candidate positions and each observation satellite with the corresponding elevation angle threshold, the target satellite corresponding to the candidate position is determined. Based on the relationship between the signal-to-noise ratio of the target satellite corresponding to the candidate position and the preset threshold, the visible satellite corresponding to the candidate position is determined, thereby improving the accuracy of identifying visible satellites.

[0131] In one embodiment, the method further includes: obtaining the set of satellites observed by the reference base station at the current epoch; determining the azimuth angle of the reference base station and the target occlusion object located at the azimuth angle of the reference base station, calculating the elevation angle between the reference base station and the target occlusion object as an elevation angle threshold; calculating the elevation angle between the reference base station and each satellite in the satellite set; and identifying satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed by the reference base station at the current epoch.

[0132] In one embodiment, the target device may receive visible satellites observed at the current epoch from a reference base station, and then perform subsequent data processing steps. Alternatively, the target device may receive satellite observation data from a reference base station, determine the visible satellites observed by the reference base station at the current epoch based on the satellite observation data, and then perform subsequent data processing steps.

[0133] The steps for obtaining the set of satellites observed by the reference base station at the current epoch can refer to the steps for obtaining the set of satellites observed by the target device at the current epoch described above. The steps for determining the azimuth of the reference base station and the target obstructing object located at the azimuth of the reference base station, and calculating the elevation angle between the reference base station and the target obstructing object as an elevation angle threshold, can refer to the steps for determining the azimuth of each candidate location and the target obstructing object located at the azimuth, and calculating the elevation angle between the candidate location and the target obstructing object as an elevation angle threshold. The steps for calculating the elevation angle between the reference base station and each satellite in the satellite set can refer to the steps for calculating the elevation angle between the candidate location and each satellite in the satellite set described above, and will not be repeated here.

[0134] In one embodiment, the target device determines the satellite positions of each observed satellite in the current epoch based on the satellite signals received by the reference base station in the current epoch; calculates the azimuth angle between the reference base station and each observed satellite based on the satellite positions of the reference base station and each observed satellite in the current epoch; identifies target obstructing objects between the reference base station and each observed satellite at the azimuth angle between the reference base station and each observed satellite, and calculates the elevation angle between the reference base station and each target obstructing object as an elevation angle threshold; calculates the elevation angle between the reference base station and each observed satellite in the current epoch, compares the elevation angle between the reference base station and each observed satellite with the corresponding elevation angle threshold, and identifies the observed satellites in the satellite set whose elevation angle is greater than the corresponding elevation angle threshold as the target satellites corresponding to the reference base station; determines the signal-to-noise ratio (SNR) of the target satellites corresponding to the reference base station in the current epoch, and identifies the target satellites whose SNR is greater than a preset threshold as the visible satellites corresponding to the reference base station in the current epoch.

[0135] In this embodiment, the visible satellites observed at the target location at the current epoch and the visible satellites observed by the reference base station are obtained respectively. Subsequently, the double-difference pseudorange and double-difference frequency shift are calculated based on the target visible satellites observed by both for positioning. Since the estimation of clock error parameters and clock drift parameters is reduced, the amount of calculation in the positioning process can be reduced.

[0136] In one embodiment, the method further includes: acquiring real-time satellite status information corresponding to the target visible satellites observed by the target device at the current epoch; determining the observation pseudorange between the target position and each target visible satellite based on the real-time satellite status information; acquiring reference satellite status information corresponding to the target visible satellites observed by the reference base station at the current epoch; and calculating the reference pseudorange between the reference base station and each target visible satellite based on the reference satellite status information.

[0137] In one embodiment, for each target visible satellite, the target device determines the observed pseudorange between the target position at the current epoch and the target visible satellite based on the observed satellite signal, and obtains the reference pseudorange between the reference base station at the current epoch and the target visible satellite from the reference base station. Next, the target device extracts the first and second target visible satellites from the target visible satellites, calculates the first difference between the observed pseudorange of the target position at the current epoch to the first target visible satellite and the reference pseudorange of the reference base station at the current epoch to the first target visible satellite, calculates the second difference between the observed pseudorange of the target position at the current epoch to the second target visible satellite and the reference pseudorange of the reference base station at the current epoch to the second target visible satellite, and calculates the difference between the first and second differences to obtain the double-difference pseudorange at the current epoch.

[0138] In one embodiment, the pseudorange can be calculated using the following formula:

[0139]

[0140] in, This represents the pseudorange between receiver r and satellite s; dt represents the geometric distance between the receiver r and the satellite s; c represents the speed of light; dt r dt represents the receiver clock bias. s Indicates satellite clock bias; d r d represents the hardware delay of receiver r. s This indicates the hardware delay of satellite s; Indicates ionospheric delay, Indicates tropospheric delay; This represents the errors such as multipath and noise in pseudorange and carrier phase observations.

[0141] In one embodiment, the double-difference pseudorange of the current epoch is calculated based on the observed pseudorange between the target position and the target's visible satellites, and the reference pseudorange between the reference base station and the target's visible satellites, including:

[0142] The pseudorange of the observation of the target target device a at the target location by the target's visible satellite j. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the pseudorange observed by target device a from the target's visible satellite k at the target's current epoch. This indicates that the current epoch reference base station b has a visible view of the target satellite. Reference pseudorange; This represents the double-difference geometric distance between the target device a and the reference base station b in the current epoch; This represents the double difference error between the target device a and the reference base station b at the current epoch. This error is the correlation error between the pseudorange and carrier phase observations.

[0143] The derivation of the formula for calculating the double-difference pseudo-range is described below:

[0144] In one embodiment, refer to Figure 10 , Figure 10 This diagram illustrates the calculation of the double-difference pseudorange at the current epoch in one embodiment. An example is given where target device a and reference base station b simultaneously observe target visible satellite k and target visible satellite j at the current epoch.

[0145] Target device a and reference base station b simultaneously observe the target visible satellite k at the current epoch. Calculate the pseudorange of target device a's observation of the target visible satellite k from the target's location at the current epoch. The reference pseudorange of the current epoch reference base station b to the target visible satellite k The first difference between

[0146]

[0147] Target device a and reference base station b simultaneously observe the target visible satellite j at the current epoch. Calculate the pseudorange of target device a's observation of the target visible satellite j from the target's current epoch. The reference pseudorange of the target visible satellite j relative to the current epoch reference base station b. The second difference between

[0148]

[0149] Next, calculate the second difference. Difference from the first value The difference between them yields the double-difference pseudo-range of the current epoch.

[0150]

[0151] Considering the close distance between target device a and reference base station b, ionospheric and tropospheric residuals can be ignored. The double-difference pseudorange at the current epoch... This can be simplified as follows:

[0152]

[0153] in, This represents the double-difference pseudorange between the target device a and the reference base station b in the current epoch. This represents the double-difference geometric distance between the target device a and the reference base station b in the current epoch; This represents the double difference error between the target device a and the reference base station b at the current epoch. This error is the correlation error between the pseudorange and carrier phase observations.

[0154] In one embodiment, the target device calculates its position in the current epoch based on the double-difference pseudorange of the current epoch. For example, the target device may calculate its position in the current epoch based on double-difference pseudoranges calculated at multiple frequencies at the current epoch.

[0155] In this embodiment, the dual-difference pseudorange between the target device and the reference base station at the current epoch is calculated for positioning. The differential method can effectively eliminate satellite clock bias and receiver clock bias. Since the estimation of clock bias parameters is reduced, the amount of calculation in the positioning process can be reduced.

[0156] In one embodiment, the method further includes: acquiring a first carrier phase observation value corresponding to the target visible satellite observed by the target device at the current epoch, and a second carrier phase observation value of the target visible satellite observed by the target device at the previous epoch, and calculating the observation frequency shift corresponding to the current epoch; acquiring a first carrier phase reference value of the target visible satellite observed by the reference base station at the current epoch, and a second carrier phase reference value of the target visible satellite observed by the reference base station at the previous epoch, and calculating the reference frequency shift corresponding to the current epoch.

[0157] In one embodiment, for each target visible satellite, the target device determines the carrier phase observation value of the target visible satellite in the current epoch and the carrier phase observation value of the target visible satellite observed by the target device in the previous epoch, calculates the difference between the two, and obtains the observation frequency shift corresponding to the current epoch. The target device obtains the carrier phase reference value of the target visible satellite observed by the reference base station in the current epoch and the carrier phase reference value of the target visible satellite observed by the reference base station in the previous epoch, calculates the difference between the two, and obtains the reference frequency shift corresponding to the current epoch. Next, the target device extracts the first target visible satellite and the second target visible satellite from the target visible satellite, calculates the first difference between the observation frequency shift of the target position relative to the first target visible satellite in the current epoch and the reference frequency shift of the reference base station relative to the first target visible satellite in the current epoch, calculates the second difference between the observation frequency shift of the target position relative to the second target visible satellite in the current epoch and the reference frequency shift of the reference base station relative to the second target visible satellite in the current epoch, and calculates the first difference and the second difference to obtain the double difference frequency shift in the current epoch.

[0158] In one embodiment, the Doppler frequency shift can be calculated using the following formula:

[0159]

[0160]

[0161] in, This indicates the Doppler shift of receiver r relative to satellite s at the current epoch t; This represents the Doppler observation of satellite s by receiver r at the current epoch t; λ is the frequency wavelength. This represents the carrier phase observation of satellite s by receiver r at the current epoch t. Δt represents the carrier phase observation of satellite s by receiver r at the previous epoch t-1; Δt represents the time interval between the current epoch and the previous epoch.

[0162] In one embodiment, the relationship between the Doppler frequency shift and the receiver speed can be expressed by the following formula:

[0163]

[0164] in, This indicates the Doppler shift of receiver r relative to satellite s at the current epoch t; The cosine of the line connecting receiver r and satellite s vs indicates the speed of satellite s; v r The speed of receiver r can be specifically represented as [vx] r ,vy r ,vz r ]; b represents the clock drift of receiver r; This represents the errors such as multipath and noise in pseudorange and carrier phase observations.

[0165] In one embodiment, the double-difference frequency shift for the current epoch is calculated based on the observed frequency shift between the target location and the target's visible satellites, and the reference frequency shift between the reference base station and the target's visible satellites, including:

[0166]

[0167] in, This represents the double difference frequency shift between the target device a and the reference base station b in the current epoch; This represents the frequency shift of the observation of the target visible satellite j by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j; This represents the frequency shift of the observation of the target visible satellite k by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j.

[0168]

[0169] in, Let represent the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite j. v represents the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite k; a Indicates the speed of target device a; This represents the cosine of the direction of the line connecting reference base station b and the target visible satellite j. v represents the cosine of the direction of the line connecting reference base station b and the target visible satellite k; j v represents the velocity of the visible satellite j. k This represents the velocity of the target's visible satellite k; This represents the double difference error between target device a and reference base station b at the current epoch. This error is the correlation error between pseudorange and carrier phase observations.

[0170] The derivation of the formula for calculating the double-difference frequency shift is described below:

[0171] In one embodiment, refer to Figure 11 , Figure 11 This diagram illustrates the calculation of the double-difference frequency shift in the current epoch in one embodiment. An example is given where target device a and reference base station b simultaneously observe target visible satellite k and target visible satellite j in the current epoch:

[0172] Target device a and reference base station b simultaneously observe the target visible satellite k at the current epoch. Calculate the observation frequency shift of target device a towards the target visible satellite k at the target location at the current epoch. Reference frequency shift of the target visible satellite k relative to the current epoch reference base station b The first difference between

[0173]

[0174] Target device a and reference base station b simultaneously observe target visible satellite j at the current epoch. Calculate the observation frequency shift of target device a towards target visible satellite j from the target location at the current epoch. The reference frequency shift of the target visible satellite j relative to the current epoch reference base station b. The second difference between

[0175]

[0176] Next, calculate the second difference. Difference from the first value The difference between them yields the double-difference frequency shift for the current epoch.

[0177]

[0178] If the reference base station is a general satellite tracking reference station, then the speed v of the reference base station b Since it is zero, the double difference frequency shift of the current epoch is zero. It can be represented as:

[0179]

[0180] in, This represents the double difference frequency shift between the target device a and the reference base station b in the current epoch; Let represent the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite j. Let represent the cosine of the line connecting the target device a's position to the target's visible satellite k; let va represent the velocity of the target device a. This represents the cosine of the direction of the line connecting reference base station b and the target visible satellite j. v represents the cosine of the direction of the line connecting reference base station b and the target visible satellite k; j v represents the velocity of the visible satellite j. k This represents the velocity of the target's visible satellite k; This represents the double difference error between target device a and reference base station b at the current epoch. This error is the correlation error between pseudorange and carrier phase observations.

[0181] In this embodiment, the dual-difference frequency shift between the target device and the reference base station at the current epoch is calculated for positioning. The differential method can effectively eliminate satellite clock drift and receiver clock drift. Since the estimation of clock drift parameters is reduced, the amount of calculation in the positioning process can be reduced.

[0182] In one embodiment, a tail variable node is added to the factor graph optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, resulting in a factor graph corresponding to the current epoch. The factor graph corresponding to the current epoch is then adjusted with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, resulting in an optimized factor graph for the current epoch. Based on the tail variable nodes in the optimized factor graph of the current epoch, the positioning information of the target device in the current epoch is generated, including: using the double-difference pseudorange and the double-difference frequency shift of the current epoch as factor nodes, and calculating the positioning information of the target device in the current epoch based on the double-difference pseudorange of the current epoch. The position of the target device in the current epoch is determined by calculating the velocity of the target device in the current epoch based on the double-difference frequency shift. Then, a final variable node is added to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch, resulting in the factor graph corresponding to the current epoch. With the goal of maximizing the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch, the values ​​of each variable node in the factor graph corresponding to the current epoch are adjusted to obtain the optimized factor graph for the current epoch. Finally, based on the position represented by the final variable node in the optimized factor graph for the current epoch, the positioning information of the target device in the current epoch is generated.

[0183] In one embodiment, the method further includes: calculating a first conditional probability between each variable node in the factor graph corresponding to the current epoch; calculating a second conditional probability between each variable node and the corresponding factor node in the factor graph corresponding to the current epoch; and calculating the posterior probability of the factor graph corresponding to the current epoch based on each first conditional probability and each second conditional probability.

[0184] In one embodiment, refer to Figure 12 , Figure 12 A schematic diagram of the factor graph corresponding to the current epoch in one embodiment is shown. It can be seen that the factor graph corresponding to the current epoch includes variable nodes X1, ..., X... n-1 X n , where X n This refers to the newly added variable node in the current epoch. Each variable node has a corresponding factor node, such as variable node X. n Corresponding factor node Z n .

[0185] In one embodiment, in the factor graph corresponding to the current epoch, there are dependencies between the variable nodes, such as variable node X. n Depends on variable node X n-1 Therefore, calculate the first conditional probability between each variable node in the factor graph: P(X2|X1), ..., P(X... n |X n-1 ).

[0186] The dependencies between the variable nodes in the factor graph corresponding to the current epoch can be represented by the following formula:

[0187]

[0188] Among them, X n The variable node X represents the current epoch. n-1 The variable node represents the previous epoch of the current epoch; x, y, and z represent variable node X. n Position; v x v y v z Represents variable node X n The velocity; dt represents the time interval between the current epoch and the previous epoch.

[0189] In the factor graph corresponding to the current epoch, each variable node depends on the corresponding factor node. Therefore, the second conditional probability between each variable node and its corresponding factor node in the factor graph is calculated as: P(Z1|X1), ..., P(Z n |X n ).

[0190] The target device can employ a sliding window approach, aiming to maximize the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch. This involves adjusting the values ​​of each variable node in the factor graph corresponding to the current epoch to obtain the optimized factor graph for the current epoch, which can be expressed by the following formula:

[0191] {X}=argmax(X0)ΠP(X n |X n-1 )ΠP(Z n |X n )

[0192] Where {X} represents the optimal value of each variable node within the sliding window; (X0) represents the initial value of each variable node within the sliding window before optimization in the current epoch; ΠP(X n |X n-1 ) represents the cumulative product of the first conditional probabilities among the variable nodes within the sliding window; ΠP(Z) n |X n ) represents the cumulative product of the second conditional probabilities between each variable node and its corresponding factor node within the sliding window.

[0193] In this embodiment, the location information of the target device obtained from satellite observation data is optimized by the factor graph algorithm, which can improve the accuracy of positioning. Since the double-difference pseudorange and double-difference frequency shift reduce the estimation of clock error parameters and clock drift parameters, the amount of calculation in the positioning process can be reduced. The sliding window is used to optimize the factor graph, which can ensure both accuracy and timeliness of real-time positioning at the terminal.

[0194] In one embodiment, such as Figure 13 As shown, a positioning method is provided, which can be applied to... Figure 1 Taking terminal 102 (hereinafter referred to as the target device) as an example, the following steps are included:

[0195] Step 1302: Determine the candidate location corresponding to the area where the target device is located in the current epoch.

[0196] Step 1304: Determine the satellite positions of each observation satellite at the current epoch based on the satellite signals received at the current epoch.

[0197] Step 1306: For each candidate location, calculate the azimuth angle between the candidate location and each observation satellite based on the current epoch candidate location and the satellite positions of each observation satellite. On the azimuth angle between the candidate location and each observation satellite, determine the target occlusion objects between the candidate location and each observation satellite respectively. Determine the boundary position of each target occlusion object based on the city 3D model. Calculate the elevation angle between the candidate location and each target occlusion object based on the boundary position of the candidate location and each target occlusion object as the elevation angle threshold. Calculate the elevation angle between the current epoch candidate location and each observation satellite. Compare the elevation angle between the candidate location and each observation satellite with the corresponding elevation angle threshold. Select the observation satellites in the satellite set whose elevation angle is greater than the corresponding elevation angle threshold as the visible satellites corresponding to the candidate location.

[0198] Step 1308: Determine the signal-to-noise ratio (SNR) of the visible satellites corresponding to the current epoch candidate positions. Score each candidate position according to the number of satellites with an SNR greater than a preset threshold. For example, assign one score to the satellites with an SNR greater than the preset threshold corresponding to the candidate position. Use the score of each candidate position as the visibility of the satellites corresponding to each candidate position. Determine the target position from the candidate positions according to the visibility of the satellites.

[0199] Step 1310: Calculate the double-difference pseudorange of the current epoch based on the observed pseudorange between the target position and the target visible satellite, and the reference pseudorange between the reference base station and the target visible satellite. Calculate the double-difference frequency shift of the current epoch based on the observed frequency shift between the target position and the target visible satellite, and the reference frequency shift between the reference base station and the target visible satellite.

[0200] Step 1312: Use the double-difference pseudorange and double-difference frequency shift of the current epoch as factor nodes. Calculate the position of the target device in the current epoch based on the double-difference pseudorange and the velocity of the target device in the current epoch based on the double-difference frequency shift. Add the end variable node to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch to obtain the factor graph corresponding to the current epoch.

[0201] Step 1314: Calculate the first conditional probability between each variable node in the factor graph corresponding to the current epoch, calculate the second conditional probability between each variable node and the corresponding factor node in the factor graph corresponding to the current epoch, and calculate the posterior probability of the factor graph corresponding to the current epoch based on each first conditional probability and each second conditional probability.

[0202] Step 1316: With the goal of maximizing the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch, adjust the values ​​of each variable node in the factor graph corresponding to the current epoch to obtain the optimized factor graph for the current epoch, and generate the positioning information of the target device for the current epoch based on the position represented by the last variable node in the optimized factor graph for the current epoch.

[0203] In this embodiment, on the one hand, based on the target occlusion object in the azimuth angle between the candidate position corresponding to the area where the target device is located in the current epoch and the satellite observed by the target device, the satellite visibility corresponding to the candidate position is determined. The target position is determined from the candidate positions according to the satellite visibility. The target visible satellites jointly observed by the target position and the reference base station in the current epoch are included in the subsequent positioning process. Since satellites that the target device cannot directly observe are eliminated, the accuracy of subsequent positioning can be improved. On the other hand, the factor optimized by the double-difference pseudorange and the double-difference frequency shift of the current epoch to the previous epoch is... By adding a trailing variable node to the graph, the factor graph corresponding to the current epoch is obtained. The factor graph corresponding to the current epoch is adjusted with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, resulting in the optimized factor graph for the current epoch. Based on the trailing variable node in the optimized factor graph for the current epoch, the positioning information of the target device for the current epoch is generated. Optimizing the position information of the target device obtained from satellite observation data through the factor graph algorithm can improve the positioning accuracy. Furthermore, since double-difference pseudorange and double-difference frequency shift reduce the estimation of clock error parameters and clock drift parameters, the computational load in the positioning process can be reduced.

[0204] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0205] Based on the same inventive concept, this application also provides a positioning device for implementing the positioning method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more positioning device embodiments provided below can be found in the limitations of the positioning method described above, and will not be repeated here.

[0206] In one embodiment, such as Figure 14 As shown, a positioning device is provided, including: a candidate position determination module 1402, a target position determination module 1404, a visible satellite determination module 1406, a calculation module 1408, and a positioning module 1410, wherein:

[0207] The candidate location determination module 1402 is used to determine the candidate location corresponding to the area where the target device is located in the current epoch.

[0208] The target location determination module 1404 is used to determine the satellite visibility corresponding to the candidate location based on the target occlusion object in the azimuth angle between the candidate location at the current epoch and the satellite observed by the target device, and to determine the target location from the candidate locations according to the satellite visibility.

[0209] The visible satellite determination module 1406 is used to determine the target visible satellites observed jointly by the target position and the reference base station at the current epoch;

[0210] The calculation module 1408 is used to calculate the double-difference pseudorange of the current epoch based on the observed pseudorange between the target position and the target visible satellite, and the reference pseudorange between the reference base station and the target visible satellite, and to calculate the double-difference frequency shift of the current epoch based on the observed frequency shift between the target position and the target visible satellite, and the reference frequency shift between the reference base station and the target visible satellite.

[0211] The positioning module 1410 is used to add a trailing variable node to the factor graph optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, to obtain the factor graph corresponding to the current epoch, to adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, to obtain the optimized factor graph of the current epoch, and to generate the positioning information of the target device in the current epoch based on the trailing variable node in the optimized factor graph of the current epoch.

[0212] In one embodiment, the candidate location determination module 1402 is further configured to: determine the initial estimated location of the target device; construct a candidate region centered on the initial estimated location; and divide the candidate region into multiple candidate locations.

[0213] In one embodiment, the target location determination module 1404 is further configured to: acquire the set of satellites observed by the target device in the current epoch; for each candidate location, determine the azimuth angle of the candidate location and the target occlusion object located at the azimuth angle, calculate the elevation angle between the candidate location and the target occlusion object as an elevation angle threshold; calculate the elevation angle between the candidate location and each satellite in the satellite set; identify satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed at the candidate location in the current epoch; and determine the satellite visibility level corresponding to the candidate location based on the number of visible satellites.

[0214] In one embodiment, the target location determination module 1404 is further configured to: determine the signal-to-noise ratio (SNR) of the visible satellites observed at the candidate location at the current epoch; determine the number of visible satellites with an SNR greater than a preset threshold; determine the satellite visibility degree corresponding to the candidate location based on a first number of visible satellites with an SNR greater than the preset threshold, wherein the satellite visibility degree is positively correlated with the first number; or, determine the satellite visibility degree corresponding to the candidate location based on a second number of satellites in the satellite set other than visible satellites with an SNR less than or equal to a preset threshold, wherein the satellite visibility degree is inversely correlated with the second number.

[0215] In one embodiment, the target location determination module 1404 is further configured to: acquire the set of satellites observed by the reference base station at the current epoch; determine the azimuth of the reference base station and the target occlusion object located at the azimuth of the reference base station, calculate the elevation angle between the reference base station and the target occlusion object as an elevation angle threshold; calculate the elevation angle between the reference base station and each satellite in the satellite set; and designate satellites in the satellite set whose elevation angle is greater than the elevation angle threshold as visible satellites observed by the reference base station at the current epoch. The visible satellite determination module 1406 is further configured to: determine the target visible satellites jointly observed by the reference base station and the target location at the current epoch based on the intersection of the visible satellites observed at the target location at the current epoch and the visible satellites observed by the reference base station.

[0216] In one embodiment, the calculation module 1408 is further configured to: obtain real-time satellite status information corresponding to the target visible satellites observed by the target device at the current epoch; determine the observation pseudorange between the target position and each target visible satellite based on the real-time satellite status information; obtain reference satellite status information corresponding to the target visible satellites observed by the reference base station at the current epoch; and calculate the reference pseudorange between the reference base station and each target visible satellite based on the reference satellite status information.

[0217] In one embodiment, the computing module 1408 is further configured to:

[0218] The pseudorange of the observation of the target target device a at the target location by the target's visible satellite j. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the pseudorange observed by target device a from the target's visible satellite k at the target's current epoch. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the double-difference geometric distance between the target device a and the reference base station b in the current epoch; This represents the double difference error between the target device a and the reference base station b at the current epoch. This error is the correlation error between the pseudorange and carrier phase observations.

[0219] In one embodiment, the calculation module 1408 is further configured to: obtain the first carrier phase observation value corresponding to the target visible satellite observed by the target device in the current epoch, and the second carrier phase observation value observed by the target device on the target visible satellite in the previous epoch, and calculate the observation frequency shift corresponding to the current epoch; obtain the first carrier phase reference value observed by the reference base station on the target visible satellite in the current epoch, and the second carrier phase reference value observed by the reference base station on the target visible satellite in the previous epoch, and calculate the reference frequency shift corresponding to the current epoch.

[0220] In one embodiment, the computing module 1408 is further configured to:

[0221]

[0222] in, This represents the double difference frequency shift between the target device a and the reference base station b in the current epoch; This represents the frequency shift of the observation of the target visible satellite j by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j; This represents the frequency shift of the observation of the target visible satellite k by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j.

[0223]

[0224] in, Let represent the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite j. Let represent the cosine of the line connecting the target device a's position to the target's visible satellite k; let va represent the velocity of the target device a. This represents the cosine of the direction of the line connecting reference base station b and the target visible satellite j. v represents the cosine of the direction of the line connecting reference base station b and the target visible satellite k; j v represents the velocity of the visible satellite j. kThis represents the velocity of the target's visible satellite k; This represents the double difference error between target device a and reference base station b at the current epoch. This error is the correlation error between pseudorange and carrier phase observations.

[0225] In one embodiment, the positioning module 1410 is further configured to: use the double-difference pseudorange and the double-difference frequency shift of the current epoch as factor nodes; calculate the position of the target device in the current epoch based on the double-difference pseudorange of the current epoch; calculate the velocity of the target device in the current epoch based on the double-difference frequency shift of the current epoch; add a final variable node to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch, thereby obtaining the factor graph corresponding to the current epoch; adjust the values ​​of each variable node in the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch, thereby obtaining the factor graph optimized for the current epoch; and generate the positioning information of the target device in the current epoch based on the position represented by the final variable node in the factor graph optimized for the current epoch.

[0226] In one embodiment, the positioning module 1410 is further configured to: calculate the first conditional probability between each variable node in the factor graph corresponding to the current epoch; calculate the second conditional probability between each variable node and the corresponding factor node in the factor graph corresponding to the current epoch; and calculate the posterior probability of the factor graph corresponding to the current epoch based on each first conditional probability and each second conditional probability.

[0227] Each module in the aforementioned positioning device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.

[0228] In one embodiment, a computer device is provided, which may be a terminal, and its internal structure diagram may be as follows: Figure 15 As shown, the computer device includes a processor, memory, communication interface, display screen, and input device connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When executed by the processor, the computer program implements a positioning method.

[0229] Those skilled in the art will understand that Figure 15 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0230] In one embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the positioning method in any of the above embodiments.

[0231] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the positioning method of any of the above embodiments.

[0232] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the positioning method in any of the above embodiments.

[0233] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties.

[0234] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0235] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0236] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed. However, they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A positioning method, characterized in that, The method includes: Determine the candidate locations corresponding to the region where the target device is located in the current epoch; Based on the target occlusion object in the azimuth angle between the candidate position and the satellite observed by the target device at the current epoch, determine the satellite visibility corresponding to the candidate position, and determine the target position from the candidate positions according to the satellite visibility; determine the target visible satellites jointly observed by the target position and the reference base station at the current epoch; Based on the observed pseudorange between the target position and the target visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target visible satellite, calculate the double-difference pseudorange at the current epoch; and based on the observed frequency shift between the target position and the target visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target visible satellite, calculate the double-difference frequency shift at the current epoch. Based on the double-difference pseudorange and double-difference frequency shift of the current epoch, add a trailing variable node to the factor graph optimized in the previous epoch to obtain the factor graph corresponding to the current epoch. Adjust the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, generate the positioning information of the target device in the current epoch.

2. The method according to claim 1, characterized in that, Determining the candidate location corresponding to the area where the target device is located in the current epoch includes: Determine the initial estimated position of the target device; A candidate region is constructed centered on the initial estimated location; The candidate region is divided into multiple candidate positions.

3. The method according to claim 1, characterized in that, The determination of satellite visibility corresponding to the candidate position based on the target occlusion object in the azimuth angle between the candidate position and the satellite observed by the target device at the current epoch includes: Obtain the set of satellites observed by the target device in the current epoch; For each candidate location, determine the azimuth angle of the candidate location and the target occlusion object located at the azimuth angle, and calculate the elevation angle between the candidate location and the target occlusion object as the elevation angle threshold; Calculate the elevation angle between the candidate location and each satellite in the satellite set; Satellites in the satellite set whose elevation angle is greater than the elevation angle threshold are considered as visible satellites observed at the candidate position in the current epoch. The satellite visibility level corresponding to the candidate location is determined based on the number of visible satellites.

4. The method according to claim 3, characterized in that, The method further includes: Determine the signal-to-noise ratio of the visible satellites observed at the candidate locations at the current epoch; Determine the number of satellites in the visible satellites whose signal-to-noise ratio is greater than a preset threshold; The step of determining the satellite visibility level corresponding to the candidate location based on the number of visible satellites includes: The satellite visibility level corresponding to the candidate location is determined based on a first number of satellites in the visible satellites whose signal-to-noise ratio is greater than a preset threshold, wherein the satellite visibility level is positively correlated with the first number; or, the satellite visibility level corresponding to the candidate location is determined based on a second number of satellites in the satellite set whose signal-to-noise ratio is less than or equal to the preset threshold, wherein the satellite visibility level is inversely correlated with the second number.

5. The method according to claim 1, characterized in that, The method further includes: Obtain the set of satellites observed by the reference base station at the current epoch; Determine the azimuth angle of the reference base station and the target occlusion object located at the azimuth angle of the reference base station, and calculate the elevation angle between the reference base station and the target occlusion object as the elevation angle threshold; Calculate the elevation angle between the reference base station and each satellite in the satellite set; Satellites in the satellite set whose elevation angle is greater than the elevation angle threshold are considered as visible satellites observed by the reference base station in the current epoch. The determination of the target visible satellites jointly observed by the reference base station and the target location at the current epoch includes: Based on the intersection of the visible satellites observed at the target location at the current epoch and the visible satellites observed by the reference base station, the target visible satellites jointly observed by the reference base station and the reference base station at the target location at the current epoch are determined.

6. The method according to claim 1, characterized in that, The method further includes: Obtain the real-time satellite status information corresponding to the target visible satellite observed by the target device in the current epoch; Based on the real-time satellite status information, the observation pseudorange between the target position and each of the target's visible satellites is determined; Obtain the reference satellite status information corresponding to the target visible satellite observed by the reference base station at the current epoch; Based on the reference satellite status information, the reference pseudorange between the reference base station and each of the target visible satellites is calculated.

7. The method according to claim 6, characterized in that, The step of calculating the double-difference pseudorange for the current epoch based on the observed pseudorange between the target position and the target's visible satellite at the current epoch, and the reference pseudorange between the reference base station and the target's visible satellite, includes: in, This represents the double-difference pseudorange between the target device a and the reference base station b in the current epoch. This represents the pseudorange observed by target device a from the target's visible satellite j at the target's current epoch. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the pseudorange observed by target device a from the target's visible satellite k at the target's current epoch. This represents the reference pseudorange of the current epoch reference base station b to the target visible satellite j; This represents the double-difference geometric distance between the target device a and the reference base station b in the current epoch; This represents the double difference error between the target device a and the reference base station b at the current epoch. This error is the correlation error between the pseudorange and carrier phase observations.

8. The method according to claim 1, characterized in that, The method further includes: Obtain the first carrier phase observation value of the target visible satellite observed by the target device in the current epoch, and the second carrier phase observation value of the target device observed by the target visible satellite in the previous epoch, and calculate the observation frequency shift corresponding to the current epoch. Obtain the first carrier phase reference value observed by the reference base station on the target visible satellite in the current epoch, and the second carrier phase reference value observed by the reference base station on the target visible satellite in the previous epoch, and calculate the reference frequency shift corresponding to the current epoch.

9. The method according to claim 8, characterized in that, The step of calculating the double-difference frequency shift for the current epoch based on the observed frequency shift between the target position and the target's visible satellite at the current epoch, and the reference frequency shift between the reference base station and the target's visible satellite, includes: in, This represents the double difference frequency shift between the target device a and the reference base station b in the current epoch; This represents the frequency shift of the observation of the target visible satellite j by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j; This represents the frequency shift of the observation of the target visible satellite k by the target device a at the target location in the current epoch. This represents the reference frequency shift of the current epoch reference base station b relative to the target visible satellite j; in, Let represent the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite j. v represents the cosine of the direction of the line connecting target device a at the target location and the target's visible satellite k; a Indicates the speed of target device a; This represents the cosine of the direction of the line connecting reference base station b and the target visible satellite j. v represents the cosine of the direction of the line connecting reference base station b and the target visible satellite k; j v represents the velocity of the visible satellite j. k This represents the velocity of the target's visible satellite k; This represents the double difference error between target device a and reference base station b at the current epoch. This error is the correlation error between pseudorange and carrier phase observations.

10. The method according to any one of claims 1 to 9, characterized in that, The process involves adding a trailing variable node to the factor graph optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, obtaining the factor graph corresponding to the current epoch, adjusting the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, obtaining the optimized factor graph for the current epoch, and generating the positioning information of the target device for the current epoch based on the trailing variable node in the optimized factor graph for the current epoch. This includes: Using the double-difference pseudorange and double-difference frequency shift of the current epoch as factor nodes, the position of the target device in the current epoch is calculated based on the double-difference pseudorange of the current epoch, and the velocity of the target device in the current epoch is calculated based on the double-difference frequency shift of the current epoch. The final variable node is added to the factor graph optimized in the previous epoch according to the position and velocity of the current epoch, to obtain the factor graph corresponding to the current epoch. With the goal of maximizing the posterior probability calculated based on the factor nodes and variable nodes in the factor graph corresponding to the current epoch, the values ​​of each variable node in the factor graph corresponding to the current epoch are adjusted to obtain the optimized factor graph for the current epoch. Based on the position represented by the last variable node in the optimized factor graph for the current epoch, the positioning information of the target device in the current epoch is generated.

11. The method according to claim 10, characterized in that, The method further includes: Calculate the first conditional probability between each variable node in the factor graph corresponding to the current epoch; Calculate the second conditional probability between each variable node and the corresponding factor node in the factor graph corresponding to the current epoch; Based on each of the first conditional probabilities and each of the second conditional probabilities, the posterior probability of the factor graph corresponding to the current epoch is calculated.

12. A positioning device, characterized in that, The device includes: The candidate location determination module is used to determine the candidate location corresponding to the area where the target device is located in the current epoch; The target location determination module is used to determine the satellite visibility corresponding to the candidate location based on the target occlusion object in the azimuth angle between the candidate location and the satellite observed by the target device at the current epoch, and to determine the target location from the candidate locations according to the satellite visibility. The visible satellite determination module is used to determine the target visible satellites that are jointly observed by the target location and the reference base station at the current epoch. The calculation module is used to calculate the double-difference pseudorange of the current epoch based on the observed pseudorange between the target position and the target visible satellite, and the reference pseudorange between the reference base station and the target visible satellite, and to calculate the double-difference frequency shift of the current epoch based on the observed frequency shift between the target position and the target visible satellite, and the reference frequency shift between the reference base station and the target visible satellite. The positioning module is used to add a trailing variable node to the factor graph optimized in the previous epoch based on the double-difference pseudorange and the double-difference frequency shift of the current epoch, to obtain the factor graph corresponding to the current epoch. The module adjusts the factor graph corresponding to the current epoch with the goal of maximizing the posterior probability of the factor graph corresponding to the current epoch, to obtain the optimized factor graph of the current epoch. Based on the trailing variable node in the optimized factor graph of the current epoch, the module generates the positioning information of the target device in the current epoch.

13. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 11.

14. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 11.

15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 11.

Citation Information

Patent Citations

  • Multi-source information fusion method based on factor graph

    CN108364014A

  • A factor graph fusion positioning method introducing robust estimation

    CN111337020A