Positioning method and apparatus

By analyzing the obstruction information of the satellite signal receiving equipment at the candidate location and the actual satellite signals received, the coordinates of the location to be located are determined, solving the problem of satellite positioning drift in urban canyons and achieving higher positioning accuracy.

CN116047558BActive Publication Date: 2026-02-10BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211723478.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-30
Publication Date
2026-02-10
Estimated Expiration
2042-12-30

AI Technical Summary

Technical Problem

In modern urban canyons, satellite positioning drifts due to building obstruction, glass curtain wall reflection, and multipath effects, resulting in decreased positioning accuracy.

Method used

By acquiring satellite signals from the satellite signal receiving device at the location to be located, analyzing the obstruction information of the candidate locations, determining the satellites that the device can theoretically receive, and comparing them with the actual received satellite signals, a target location with a high degree of matching is selected to determine the coordinates of the location to be located.

Benefits of technology

It improves positioning accuracy in urban canyon environments and reduces positioning errors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116047558B_ABST
    Figure CN116047558B_ABST
Patent Text Reader

Abstract

The present disclosure provides a positioning method and device, which relates to the technical field of computers, and particularly relates to satellite positioning and navigation. The positioning method comprises the following steps: acquiring a plurality of satellite signals received by a satellite signal receiving device at a to-be-positioned position; determining a plurality of first satellites according to the plurality of satellite signals; determining the matching degrees of a plurality of candidate positions and the to-be-positioned position, wherein for each candidate position in the plurality of candidate positions: determining a plurality of second satellites that can be received by the satellite signal receiving device at the candidate position according to the shelter information of the environment around the candidate position; and comparing the plurality of first satellites with the plurality of second satellites to determine the matching degree of the candidate position and the to-be-positioned position; selecting at least one target position from the plurality of candidate positions based on the matching degrees of the plurality of candidate positions; and determining the coordinates of the to-be-positioned position according to the coordinates of the at least one target position.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and in particular to satellite positioning and navigation, specifically to a positioning method and apparatus, electronic equipment, computer-readable storage medium, and computer program product. Background Technology

[0002] Positioning is an essential part of navigation, and satellite positioning is a highly accurate method, providing a positioning accuracy of about 10 meters for both pedestrian and driving navigation. However, in modern urban canyons, factors such as building obstructions, reflections from glass curtain walls, and multipath effects cause satellite positioning to drift, resulting in significant positioning errors and severely impacting accuracy.

[0003] The methods described in this section are not necessarily methods that had been previously conceived or adopted. Unless otherwise specified, no method described in this section should be assumed to be prior art simply because it is included in this section. Similarly, unless otherwise specified, the issues mentioned in this section should not be considered to be accepted in any prior art. Summary of the Invention

[0004] This disclosure provides a positioning method and apparatus, an electronic device, a computer-readable storage medium, and a computer program product.

[0005] According to one aspect of this disclosure, a positioning method is provided, comprising: acquiring multiple satellite signals received at a location to be positioned using a satellite signal receiving device; determining multiple first satellites based on the multiple satellite signals, wherein the multiple first satellites are sources of at least a portion of the multiple satellite signals; determining a matching degree between a pre-set multiple candidate locations and the location to be positioned, wherein, for each candidate location: determining, through calculation and analysis, multiple second satellites that the satellite signal receiving device can receive satellite signals at the candidate location based on obstruction information of the surrounding environment of the candidate location; comparing the multiple first satellites with the multiple second satellites to determine the matching degree between the candidate location and the location to be positioned; selecting at least one target location from the multiple candidate locations based on the matching degree of the multiple candidate locations; and determining the coordinates of the location to be positioned based on the coordinates of the at least one target location.

[0006] According to another aspect of this disclosure, a positioning device is provided, comprising: an acquisition unit configured to acquire multiple satellite signals received at a location to be positioned using a satellite signal receiving device; a first determination unit configured to determine multiple first satellites based on the multiple satellite signals, wherein the multiple first satellites are sources of at least a portion of the multiple satellite signals; a second determination unit configured to determine a matching degree between a plurality of pre-set candidate locations and the location to be positioned; wherein, for each candidate location: based on obstruction information of the surrounding environment of the candidate location, a plurality of second satellites that the satellite signal receiving device can receive satellite signals at the candidate location are determined by calculation and analysis; and the plurality of first satellites are compared with the plurality of second satellites to determine the matching degree between the candidate location and the location to be positioned; a selection unit configured to select at least one target location from the plurality of candidate locations based on the matching degree of the plurality of candidate locations; and a third determination unit configured to determine the coordinates of the location to be positioned based on the coordinates of the at least one target location.

[0007] According to another aspect of this disclosure, an electronic device is also provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the methods described above.

[0008] According to another aspect of this disclosure, a non-transitory computer-readable storage medium storing computer instructions is also provided, wherein the computer instructions are used to cause a computer to perform the methods described above.

[0009] According to another aspect of this disclosure, a computer program product is also provided, including a computer program, wherein the computer program implements the above-described method when executed by a processor.

[0010] According to one or more embodiments of this disclosure, firstly, multiple first satellites that actually communicate with the device are determined based on satellite signals received by the satellite signal receiving device at the location to be located. Then, the surrounding environment of each pre-set candidate location is analyzed to determine multiple second satellites that the device can theoretically receive satellite signals at each candidate location. Finally, the multiple first satellites and multiple second satellites are compared. If the overlap between the multiple first satellites and multiple second satellites is high, it indicates that the candidate location is very likely the target location. Finally, the specific coordinates of the location to be located are determined based on the target location. This positioning method determines candidate locations that match the location to be located by comparing satellites that can receive satellite signals at different locations, thus enabling more accurate positioning of the location to be located.

[0011] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0012] The accompanying drawings exemplify embodiments and form part of the specification, serving together with the textual description to explain exemplary implementations of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of the claims. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0013] Figure 1 A schematic diagram of an exemplary system in which the various methods described herein may be implemented according to embodiments of the present disclosure is shown;

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

[0015] Figure 3 A flowchart of a method for determining a plurality of first satellites according to an embodiment of the present disclosure is shown;

[0016] Figure 4 A schematic diagram illustrating the principle of different types of satellites transmitting satellite signals is shown;

[0017] Figure 5 A flowchart of a method for determining multiple candidate locations according to embodiments of the present disclosure is shown;

[0018] Figure 6 A flowchart of a method for determining a plurality of second satellites corresponding to candidate locations according to an embodiment of the present disclosure is shown;

[0019] Figure 7a and Figure 7b A schematic diagram illustrating the principle of determining the field of view of a satellite signal receiving device at a candidate location is shown.

[0020] Figure 8 A flowchart is shown of a method for determining the coordinates of a location to be located according to an embodiment of the present disclosure;

[0021] Figure 9 A structural block diagram of a positioning device according to an embodiment of the present disclosure is shown;

[0022] Figure 10 A structural block diagram of an exemplary electronic device that can be used to implement embodiments of the present disclosure is shown. Detailed Implementation

[0023] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.

[0024] In this disclosure, unless otherwise stated, the use of terms such as "first," "second," etc., to describe various elements is not intended to limit the positional, temporal, or importance relationships of these elements; such terms are merely used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of that element, while in other cases, based on the context, they may refer to different instances.

[0025] The terminology used in the description of the various examples in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context explicitly indicates otherwise, an element may be one or more unless the number of elements is specifically limited. Furthermore, the term "and / or" as used in this disclosure covers any one of the listed items and all possible combinations thereof.

[0026] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings.

[0027] Figure 1 A schematic diagram of an exemplary system 100 in which the various methods and apparatus described herein can be implemented according to embodiments of this disclosure is shown. Reference Figure 1 The system 100 includes one or more client devices 101, 102, 103, 104, 105 and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. The client devices 101, 102, 103, 104, 105 and 106 can be configured to execute one or more applications.

[0028] In embodiments of this disclosure, server 120 may run one or more services or software applications that enable the execution of positioning methods or methods for generating control instructions.

[0029] In some embodiments, server 120 may also provide other services or software applications that may include non-virtual and virtual environments. In some embodiments, these services may be provided as web-based services or cloud services, such as to users of client devices 101, 102, 103, 104, 105 and / or 106 under a Software as a Service (SaaS) model.

[0030] exist Figure 1 In the configuration shown, server 120 may include one or more components that implement the functions performed by server 120. These components may include software components, hardware components, or combinations thereof that can be executed by one or more processors. Users operating client devices 101, 102, 103, 104, 105, and / or 106 can sequentially interact with server 120 using one or more client applications to utilize the services provided by these components. It should be understood that various different system configurations are possible and may differ from system 100. Therefore, Figure 1 This is an example of a system used to implement the various methods described herein, and is not intended to be limiting.

[0031] Users can input voice data using client devices 101, 102, 103, 104, 105, and / or 106. The client devices can provide an interface that allows users to interact with them. The client devices can also output information to the user through this interface. Although... Figure 1 Only six client devices are described, but those skilled in the art will understand that this disclosure can support any number of client devices.

[0032] Client devices 101, 102, 103, 104, 105, and / or 106 may include various types of computer devices, such as portable handheld devices, general-purpose computers (such as personal computers and laptops), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, gaming systems, thin clients, various messaging devices, sensors, or other sensing devices. These computer devices can run various types and versions of software applications and operating systems, such as Microsoft Windows, Apple iOS, UNIX-like operating systems, Linux, or Linux-like operating systems; or include various mobile operating systems, such as Microsoft Windows Mobile OS, iOS, Windows Phone, and Android. Portable handheld devices may include cellular phones, smartphones, tablets, personal digital assistants (PDAs), etc. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. Gaming systems may include various handheld gaming devices, internet-enabled gaming devices, etc. Client devices are capable of executing various applications, such as various internet-related applications, communication applications (such as email applications), short message service (SMS) applications, and can use various communication protocols.

[0033] Network 110 can be any type of network well known to those skilled in the art, and can use any of a variety of available protocols (including but not limited to TCP / IP, SNA, IPX, etc.) to support data communication. By way of example only, one or more networks 110 can be a local area network (LAN), an Ethernet-based network, a token ring network, a wide area network (WAN), the Internet, a virtual network, a virtual private network (VPN), an intranet, an extranet, a public switched telephone network (PSTN), an infrared network, a wireless network (e.g., Bluetooth, WIFI), and / or any combination of these and / or other networks.

[0034] Server 120 may include one or more general-purpose computers, special-purpose server computers (e.g., PC (personal computer) servers, UNIX servers, mid-range servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and / or combination. Server 120 may include one or more virtual machines running a virtual operating system, or other computing architectures involving virtualization (e.g., one or more flexible pools of logical storage devices that can be virtualized to maintain virtual storage devices for servers). In various embodiments, server 120 may run one or more services or software applications that provide the functionality described below.

[0035] The computing unit in server 120 can run one or more operating systems, including any of the aforementioned operating systems and any commercially available server operating system. Server 120 can also run any of a variety of additional server applications and / or middleware applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, etc.

[0036] In some implementations, server 120 may include one or more applications to analyze and merge data feeds and / or event updates received from users of client devices 101, 102, 103, 104, 105 and / or 106. Server 120 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105 and / or 106.

[0037] In some implementations, server 120 can be a server for a distributed system or a server integrated with blockchain. Server 120 can also be a cloud server, or an intelligent cloud computing server or intelligent cloud host with artificial intelligence technology. A cloud server is a host product in the cloud computing service system, designed to address the shortcomings of traditional physical hosts and Virtual Private Server (VPS) services, such as high management difficulty and weak business scalability.

[0038] System 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as audio files and video files. Databases 130 may reside in various locations. For example, a database used by server 120 may be local to server 120, or it may be located away from server 120 and may communicate with server 120 via a network-based or dedicated connection. Databases 130 may be of different types. In some embodiments, the database used by server 120 may be, for example, a relational database. One or more of these databases may store, update, and retrieve data from and from the databases in response to commands.

[0039] In some embodiments, one or more of the databases 130 may also be used by an application to store application data. The databases used by the application may be of different types, such as key-value stores, object stores, or regular stores supported by a file system.

[0040] Figure 1 The system 100 can be configured and operated in various ways to enable the application of the various methods and apparatus described in this disclosure.

[0041] The following is combined with Figures 2 to 9 The various embodiments of this disclosure are described in detail. Figure 2 This is a flowchart of a positioning method 200 according to one embodiment of the present disclosure, as follows: Figure 2 As shown, the method 200 includes:

[0042] Step 210: Obtain multiple satellite signals received at the location to be located using a satellite signal receiving device;

[0043] Step 220: Determine multiple first satellites based on multiple satellite signals, wherein the multiple first satellites are the source of at least some of the satellite signals among the multiple satellite signals;

[0044] Step 230: Determine the matching degree between multiple pre-set candidate locations and the location to be located;

[0045] Step 240 selects at least one target location from the multiple candidate locations based on the matching degree of the multiple candidate locations; and

[0046] Step 250: Determine the coordinates of the location to be located based on the coordinates of at least one target location.

[0047] Step 230 further includes, for each of the multiple candidate positions:

[0048] Step 231: Based on the obstruction information of the surrounding environment of the candidate location, determine, through calculation and analysis, multiple second satellites that the satellite signal receiving device can receive satellite signals at the candidate location; and

[0049] Step 232: Compare multiple first satellites with multiple second satellites to determine the matching degree between the candidate location and the location to be located.

[0050] According to one or more embodiments of this disclosure, firstly, multiple first satellites that actually communicate with the device are determined based on satellite signals received by the satellite signal receiving device at the location to be located. Then, the surrounding environment of each pre-set candidate location is analyzed to determine multiple second satellites that the device can theoretically receive satellite signals at each candidate location. Finally, the multiple first satellites and multiple second satellites are compared. If the overlap between the multiple first satellites and multiple second satellites is high, it indicates that the candidate location is very likely the target location. Finally, the specific coordinates of the location to be located are determined based on the target location. This positioning method determines candidate locations that match the location to be located by comparing satellites that can receive satellite signals at different locations, thus enabling more accurate positioning of the location to be located.

[0051] In step 210, the satellite signal receiving device can be an electronic device such as a mobile phone or tablet computer capable of receiving satellite signals, and it can be implemented as follows: Figure 1 The client devices 101, 102, 103, 104, 105, and / or 106 are shown. Users of the satellite signal receiving devices can use these devices for positioning when they move to the desired location. As client devices, the satellite signal receiving devices can send positioning service requests to the server 120 through relevant applications (e.g., navigation applications, smart map applications, etc.). Simultaneously, the satellite signal receiving devices can also send multiple satellite signals received at the desired location to the server 120 for subsequent positioning analysis by the server 120.

[0052] In step 220, the server can determine the source of multiple satellite signals, i.e., determine multiple first satellites. Specifically, the aforementioned satellite signals also include some satellite parameters, which include, but are not limited to, GPS coordinates, ground truth coordinates, GNSS information, and timestamp data. The GNSS information includes data such as satellite identification number (prn), azimuth angle (azi), elevation angle (ele), and signal-to-noise ratio (SNR). The source of each satellite signal among the multiple satellite signals can be determined through the satellite identification number (prn) included in the GNSS information, thereby determining multiple first satellites. In some embodiments, the satellites that are the sources of these satellite signals can be further filtered to determine the final multiple first satellites; this part will be described in detail in conjunction with the method 300 described below.

[0053] Before executing method 200 of this embodiment, building layout information and geographic information of the entire geographic area (e.g., the entire city) containing the location to be located can be obtained, thereby establishing a three-dimensional city model in the relevant server 120. Environmental parameters around any location can be obtained from this three-dimensional city model. These environmental parameters include, but are not limited to, information about obstructions, such as buildings and structures in the city. In step 231, for each candidate location, obstruction information of the surrounding environment can be obtained through the aforementioned three-dimensional city model. Based on the obstruction information, the field of view of the satellite signal receiving device at the candidate location can be determined through relevant calculations and analysis, thereby identifying multiple second satellites from which the device can receive its satellite signals.

[0054] For each candidate location, a set of second satellites can be determined based on the obstruction information at that location. This means that the multiple second satellites corresponding to each candidate location are not identical. In step 232, the multiple second satellites corresponding to each candidate location can be compared with the multiple first satellites determined in step 220 to determine the degree of matching. Generally, the more satellites the multiple second satellites and multiple first satellites share, the higher the degree of matching, thus indicating a higher degree of matching between the candidate location and the location to be located.

[0055] In step 240, one or more candidate locations with the highest matching degree can be selected from multiple candidate locations as at least one target location. Since the coordinates of the target location and the coordinates of the location to be located are very close, in step 250, the coordinates of the location to be located can be determined based on the coordinates of at least one target location.

[0056] Figure 3 A flowchart of a method 300 for determining a plurality of first satellites according to an embodiment of the present disclosure is shown. Figure 3 As shown, the method 300 includes:

[0057] Step 310: Based on the relevant parameters of multiple satellite signals, determine multiple direct signals from the multiple satellite signals, wherein the direct signals are satellite signals that are directly received by the satellite signal receiving equipment without reflection; and

[0058] Step 320: Determine multiple first satellites based on multiple direct signals, wherein the multiple first satellites are the sources of the multiple direct signals.

[0059] In step 310, satellite signals can be classified into two types: direct signals and reflected signals. Figure 4 This diagram illustrates the principles behind different types of satellite signal transmission. For example... Figure 4As shown, the satellite signal transmitted by satellite A is a direct signal, which travels in a straight line (as shown by the dotted line in the figure) and reaches the satellite signal receiving equipment directly without being blocked by any environmental objects (such as buildings). The satellite signal transmitted by satellite B is a reflected signal, which is reflected by environmental objects before reaching the satellite signal receiving equipment. Relevant parameters of satellite signals include, but are not limited to, satellite elevation angle, signal-to-noise ratio, and satellite identification number.

[0060] It is understandable that although the satellite signal receiving device can receive satellite signals at the location to be located, the satellites that actually emit certain satellite signals (e.g., reflected signals) are not within the field of view of the satellite signal receiving device, so they need to be excluded. In step 320, satellite signal features can be constructed using information such as elevation angle, signal-to-noise ratio, and pseudorange residuals in the satellite signal. Subsequently, the SVM classification model is used to classify the satellite signal based on the satellite signal features to distinguish whether the satellite signal is a direct signal or a reflected signal. SVM (Support Vector Machine) is a discrimination method. In the field of machine learning, SVM is a supervised learning model, which is usually used for pattern recognition, classification, and regression analysis. The classification calculation process is shown in the following formulas (1)-(2):

[0061] label = SVM(f i ), i=1,…,n (1)

[0062] f i =[ele i ,snr i ,pr i (2)

[0063] Where label represents the type of signal, f i Here, n represents the total number of satellite signal characteristics. ele represents the elevation angle, snr represents the signal-to-noise ratio, and pr represents the satellite identification number.

[0064] In this embodiment, reflected signals can be excluded based on relevant parameters of the satellite signals. This avoids mistakenly identifying satellites that are not actually within the field of view of the satellite signal receiving equipment as the first satellite, thereby improving the accuracy of subsequent positioning.

[0065] In some embodiments, multiple candidate locations may be determined within a predetermined geographical area, which is an area containing the locations to be located (e.g., an urban area). Figure 5 A flowchart of a method 500 for determining multiple candidate positions according to an embodiment of the present disclosure is shown, such as... Figure 5 As shown, the method 500 includes:

[0066] Step 510: Divide the geographical region into multiple sub-regions; and

[0067] Step 520: The geometric center position of each of the multiple sub-intervals is taken as a candidate position.

[0068] In step 510, the geographical region can be a geographical area within a preset distance range, using the GPS coordinates of the satellite signal receiving device as the midpoint. It can be understood that although the GPS coordinates are not the precise coordinates of the location to be located, they are close to it. Selecting an area within a certain range of the GPS coordinates as the geographical region ensures that the geographical region includes the location to be located. Specifically, the server 120 can obtain building information and the beginning and end coordinates of roads near the GPS coordinates using the aforementioned 3D city model. The building information includes the coordinates and height of each building's edge. Using the GPS coordinates as the center, multiple 5m*5m grids are established by taking a point every 10m within the surrounding area as the grid center point. Then, using the road as the axis of symmetry, grids of the same size are established at the symmetrical points of the positioning points on the opposite side of the road, thereby dividing the geographical region into multiple grid sub-intervals. In step 520, the center of each grid can be used as a candidate location for subsequent location matching.

[0069] Although in this embodiment the geographical area is divided into 5m*5m grid sub-intervals, it is understood that in other embodiments, the grid can be of other sizes, such as 10m*10m, 20m*10m, etc. Furthermore, the sub-intervals can also be in other forms besides grids; for example, each sub-interval can be a hexagonal honeycomb shape.

[0070] In this embodiment, the geographical area is divided into multiple grid sub-intervals, and the center of each sub-interval is used as a candidate location. Compared to using every coordinate point within the geographical area as a candidate location, this method only matches a limited number of candidate locations with the location to be located. Therefore, in subsequent processes, the server only calculates the satellite signal reception field of view at these candidate locations, thereby significantly reducing the server's computational load. Furthermore, by setting the sparsity of the sub-intervals, a balance can be achieved between positioning accuracy and computational load. If the user requires high positioning accuracy, dense sub-intervals can be set; if the user requires high positioning computation speed, sparse sub-intervals can be set.

[0071] Figure 6 A flowchart of a method 600 for determining a plurality of second satellites corresponding to candidate locations, according to an embodiment of the present disclosure, is shown. In this embodiment, obstruction information includes the heights of a plurality of obstructions and the distances from the candidate location to each of the plurality of obstructions. Figure 6As shown, the method 600 includes:

[0072] Step 610: Determine the field of view for receiving satellite signals at the candidate location based on the heights of multiple obstructions and the distances from the candidate location to each obstruction; and

[0073] Step 620: Identify multiple second satellites that fall within the field of view based on ephemeris data.

[0074] Figure 7a and Figure 7b This diagram illustrates the principle of determining the field of view of a satellite signal receiving device at a candidate location. At a candidate location, the surrounding environment may contain multiple obstructions; for example, in a city, there may be multiple buildings surrounding the candidate location. Figure 7a The image shows a candidate location and a building surrounding it. By calculating the elevation angle of the candidate location to the top edge of the building within the azimuth angle range of 0–360°, the field of view obstructed by the building can be determined. Figure 7a As shown, the elevation angle calculated based on the building shown in the figure is represented by the letter Ω. The method for calculating the elevation angle is shown in the following formula (3):

[0075] ele_grid i,j =arctan(height,dist) j ),i=1,…,n; j=0,…,360 (3)

[0076] Where height is the building's height, and dist j Let be the distance from the candidate location at angle j to the edge of the building.

[0077] In step 610, after calculating the elevation angle in each angular direction within the range of 0 to 360°, the field of view of the candidate position can be determined. Figure 7b This is a schematic diagram illustrating an example field of view. Solid lines represent the field of view. After obtaining the field of view for a candidate location, satellites within that field of view are identified as multiple second satellites, such as... Figure 7b As shown, satellites A, B, and C fall within the field of view and are therefore identified as the second satellite. In step 620, during the process of determining whether any satellites currently in the sky fall within the field of view, ephemeris data describing the trajectories of all satellites can be referenced. Based on the ephemeris data, the current orientation angle and altitude of all satellites can be obtained, thereby determining whether each satellite falls within the field of view of the candidate location at the current moment.

[0078] The method in this embodiment determines the field of view for receiving satellite signals based on the height and distance of the obstruction, thereby making the determined field of view more accurate and thus enabling more accurate identification of multiple second satellites.

[0079] In some embodiments, comparing a plurality of first satellites with a plurality of second satellites to determine the matching degree between the candidate location and the location to be located includes: increasing the matching degree in response to determining that any second satellite among the plurality of second satellites is the same as one of the plurality of first satellites; and / or decreasing the matching degree in response to determining that any second satellite among the plurality of second satellites is different from each of the plurality of first satellites.

[0080] In some embodiments, a matching score can be set to represent the matching degree, and the number of all observable satellites in the ephemeris data can be used as the initial matching score. Multiple theoretically observable second satellites at each candidate location are compared with multiple first satellites from which the satellite signal receiving device originates. The collected list of satellite identification numbers is traversed; if one of the multiple observable second satellites at the candidate location is the same as one of the multiple first satellites, the matching score is incremented by one; if one of the multiple second satellites is not present in the multiple first satellites, the matching score is decremented by one. Through this method, a matching score can be finally determined. The higher the matching score, the better the overlap between the multiple second satellites and the multiple first satellites, and thus the higher the similarity between the candidate location and the location to be located.

[0081] In some embodiments, for each of a plurality of candidate locations: in response to determining that the candidate location is located within an obstruction in the surrounding environment, the matching degree of the candidate location is set to be less than a preset threshold. The coordinate range of all obstructions (e.g., buildings) within the geographic area can be obtained from the 3D city model described above. If a candidate location is within the coordinate range of a building, then that candidate location cannot be the location to be located, because within an obstruction, the satellite signal receiving device cannot receive satellite signals. In this case, the matching degree of the candidate location is set to tend towards 0, for example, set to less than 0.01, thereby avoiding determining the location of the obstruction as the target location.

[0082] In some embodiments, weights can be assigned to the matching score to further improve the accuracy of the match. The final matching score is calculated as shown in formula (4):

[0083]

[0084] Among them, res i Let N be the matching score for candidate position i. matchN represents the number of identical satellites contained within multiple first satellites and multiple second satellites. shelter The number of satellites that appear in multiple second satellites but not in multiple first satellites, where α and β are weighting coefficients, and β can be negative to represent a penalty for the matching degree of appearing in different satellites.

[0085] In some embodiments, selecting at least one target location from multiple candidate locations based on their matching scores includes: sorting the multiple candidate locations according to their matching scores; and selecting a predetermined number of candidate locations with the highest matching scores as at least one target location. After traversing all grid sub-intervals and calculating the matching scores of the corresponding candidate locations, the candidate locations are sorted according to their matching scores. In some embodiments, the predetermined number can be 2, that is, selecting all candidate locations with the top two matching scores (i.e., the midpoints of the corresponding grid sub-intervals) as at least one target location.

[0086] Figure 8 A flowchart of a method 800 for determining the coordinates of a location to be located according to an embodiment of the present disclosure is shown, as follows: Figure 8 As shown, the method 800 includes:

[0087] Step 810: Based on the coordinates of each target location in at least one target location, cluster multiple sub-intervals to obtain at least one interval cluster, wherein each interval cluster contains the sub-interval where the corresponding target location is located; and

[0088] Step 820: Determine the target interval cluster that contains the most sub-intervals from at least one interval cluster; and

[0089] Step 830: Determine the average coordinates of multiple sub-intervals contained in the target interval cluster, and use them as the coordinates of the location to be located.

[0090] In step 810, clustering can be performed based on the coordinates of the target location, thereby dividing multiple sub-intervals into multiple clusters, each containing multiple sub-intervals. The coordinates of these sub-intervals in each cluster are close to the target location, and therefore they are grouped into the same cluster as the sub-interval containing the target location. In step 820, the target interval cluster containing the most sub-intervals can be determined from at least one interval cluster. The higher the number of sub-intervals, the higher the probability that the interval cluster contains the location to be located.

[0091] The average coordinates of the candidate positions of multiple sub-intervals contained in the interval cluster with the most output sub-intervals are calculated as shown in formulas (5)-(6).

[0092] C = argmax Cluster((x top2 ,y top2(5)

[0093]

[0094] Where C is the cluster with the most members after clustering, Cluster is the clusterer, (x top2 ,y top2 ) represents the two candidate positions with the highest scores, n C Let C be the number of members. This is the final calculated value. It can be used as the coordinates of the location to be located.

[0095] The method in this embodiment divides a geographical region into multiple interval clusters through clustering. By calculating the average coordinates of the interval cluster containing the most sub-intervals, a more accurate location can be obtained.

[0096] According to another aspect of this disclosure, a positioning device is also provided. Figure 9 A structural block diagram of a positioning device 900 according to an embodiment of the present disclosure is shown, including: an acquisition unit 910 configured to acquire multiple satellite signals received at a location to be positioned using a satellite signal receiving device; a first determination unit 920 configured to determine multiple first satellites based on the multiple satellite signals, wherein the multiple first satellites are sources of at least a portion of the multiple satellite signals; a second determination unit 930 configured to determine the matching degree between a plurality of pre-set candidate locations and the location to be positioned; wherein, for each candidate location: based on obstruction information of the surrounding environment of the candidate location, a plurality of second satellites that the satellite signal receiving device can receive satellite signals at the candidate location are determined; and the plurality of first satellites are compared with the plurality of second satellites to determine the matching degree between the candidate location and the location to be positioned; a selection unit 940 configured to select at least one target location from the plurality of candidate locations based on the matching degree of the plurality of candidate locations; and a third determination unit 950 configured to determine the coordinates of the location to be positioned based on the coordinates of the at least one target location.

[0097] In some embodiments, the first determining unit 920 includes: a first determining module configured to determine a plurality of direct signals from the plurality of satellite signals based on relevant parameters of the plurality of satellite signals, wherein the direct signals are satellite signals that are directly received by a satellite signal receiving device without reflection; and a second determining module configured to determine a plurality of first satellites based on the plurality of direct signals, wherein the plurality of first satellites are sources of the plurality of direct signals.

[0098] In some embodiments, the apparatus 900 further includes: a fourth determining unit configured to determine a plurality of candidate locations within a predetermined geographical area, wherein the fourth determining unit includes: a dividing module configured to divide the geographical area into a plurality of sub-intervals; and a third determining module configured to use the geometric center location of each of the plurality of sub-intervals as a candidate location.

[0099] In some embodiments, the obstruction information includes the height of multiple obstructions and the distance from the candidate position to each of the multiple obstructions. The second determining unit 930 includes: a fourth determining module configured to determine the field of view range for receiving satellite signals at the candidate position based on the height of the multiple obstructions and the distance from the candidate position to each of the multiple obstructions; and a fifth determining module configured to determine multiple second satellites falling within the field of view range based on ephemeris data.

[0100] In some embodiments, the second determining unit 930 is further configured to: increase the matching degree in response to determining that any second satellite among a plurality of second satellites is the same as one of a plurality of first satellites; and / or decrease the matching degree in response to determining that any second satellite among a plurality of second satellites is different from each of a plurality of first satellites.

[0101] In some embodiments, the selection unit 910 further includes: a sorting module configured to sort multiple candidate positions according to the matching degree; and a selection module configured to select a preset number of candidate positions with the highest matching degree as at least one target position.

[0102] In some embodiments, the third determining unit 950 includes: a clustering module configured to cluster multiple sub-intervals based on the coordinates of each target location in at least one target location to obtain at least one interval cluster, wherein each interval cluster contains the sub-interval where the corresponding target location is located; a sixth determining module configured to determine the target interval cluster containing the most sub-intervals from the at least one interval cluster; and a seventh determining module configured to determine the average coordinates of the multiple sub-intervals contained in the target interval cluster as the coordinates of the location to be located.

[0103] The working principles and operation methods of each unit and module in the above-mentioned device 900 are similar to those of each step in method 200 to method 800, and will not be described in detail here.

[0104] The collection, storage, use, processing, transmission, provision, and disclosure of user personal information involved in the technical solution disclosed herein comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0105] According to embodiments of this disclosure, an electronic device, a readable storage medium, and a computer program product are also provided.

[0106] refer to Figure 10 The present invention describes a structural block diagram of an electronic device 1000 that can serve as a server or client of the present disclosure, which is an example of a hardware device that can be applied to various aspects of the present disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0107] like Figure 10 As shown, the electronic device 1000 includes a computing unit 1001, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1002 or a computer program loaded from a storage unit 1008 into a random access memory (RAM) 1003. The RAM 1003 may also store various programs and data required for the operation of the electronic device 1000. The computing unit 1001, ROM 1002, and RAM 1003 are interconnected via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.

[0108] Multiple components in electronic device 1000 are connected to I / O interface 1005, including: input unit 1006, output unit 1007, storage unit 1008, and communication unit 1009. Input unit 1006 can be any type of device capable of inputting information to electronic device 1000. Input unit 1006 can receive input digital or character information and generate key signal inputs related to user settings and / or function control of electronic device, and may include, but is not limited to, a mouse, keyboard, touchscreen, trackpad, trackball, joystick, microphone, and / or remote control. Output unit 1007 can be any type of device capable of presenting information, and may include, but is not limited to, a monitor, speaker, video / audio output terminal, vibrator, and / or printer. Storage unit 1008 may include, but is not limited to, a hard disk and an optical disk. The communication unit 1009 allows the electronic device 1000 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers and / or chipsets, such as Bluetooth™ devices, 802.11 devices, WiFi devices, WiMax devices, cellular communication devices and / or the like.

[0109] The computing unit 1001 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 1001 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 1001 performs the various methods and processes described above, such as the positioning method described above. For example, in some embodiments, the positioning method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 1008. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 1000 via ROM 1002 and / or communication unit 1009. When the computer program is loaded into RAM 1003 and executed by the computing unit 1001, one or more steps of the positioning method described above may be performed. Alternatively, in other embodiments, the computing unit 1001 may be configured to perform the positioning method described above by any other suitable means (e.g., by means of firmware).

[0110] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0111] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0112] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0113] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).

[0114] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.

[0115] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.

[0116] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.

[0117] While embodiments or examples of this disclosure have been described with reference to the accompanying drawings, it should be understood that the methods, systems, and devices described above are merely exemplary embodiments or examples, and the scope of the invention is not limited by these embodiments or examples, but only by the granted claims and their equivalents. Various elements in the embodiments or examples may be omitted or replaced by their equivalents. Furthermore, the steps may be performed in a different order than that described in this disclosure. Further, various elements in the embodiments or examples may be combined in various ways.

Claims

1. A positioning method, comprising: Acquire multiple satellite signals received at the location to be located using satellite signal receiving equipment; Based on the relevant parameters of the multiple satellite signals, an SVM classification model is used to classify them to identify multiple direct signals from the multiple satellite signals, wherein the direct signals are satellite signals that are directly received by the satellite signal receiving device without reflection; and Multiple first satellites are determined based on the multiple direct signals, wherein the multiple first satellites are the sources of the multiple direct signals; Divide a predetermined geographical region into multiple sub-regions; and The geometric center position of each of the multiple sub-intervals is used as a candidate position to determine multiple candidate positions; Determine the matching degree between the plurality of candidate locations and the location to be located, wherein, for each of the plurality of candidate locations: Based on information about obstructions in the surrounding environment of the candidate location, calculations and analysis are used to determine multiple second satellites from which the satellite signal receiving device can receive satellite signals at that candidate location; and The plurality of first satellites are compared with the plurality of second satellites to determine the degree of matching between the candidate location and the location to be located; Based on the matching degree of the multiple candidate locations, at least one target location is selected from the multiple candidate locations; and Determining the coordinates of the location to be located based on the coordinates of the at least one target location includes: Based on the coordinates of each target location in the at least one target location, the plurality of sub-intervals are clustered to obtain at least one interval cluster, wherein each interval cluster contains the sub-interval where the corresponding target location is located; From the at least one interval cluster, determine the target interval cluster that contains the most sub-intervals; and The average coordinates of multiple sub-intervals contained in the target interval cluster are determined and used as the coordinates of the location to be located.

2. The method according to claim 1, wherein, The obstruction information includes the height of multiple obstructions and the distance from the candidate location to each of the multiple obstructions. The step of determining multiple second satellites from which the satellite signal receiving device can receive satellite signals at the candidate location based on the obstruction information of the surrounding environment includes: The field of view for receiving satellite signals at the candidate location is determined based on the height of the plurality of obstructions and the distances from the candidate location to each of the plurality of obstructions; and The plurality of second satellites falling within the field of view are determined based on ephemeris data.

3. The method according to claim 1 or 2, wherein, The step of comparing the plurality of first satellites with the plurality of second satellites to determine the matching degree between the candidate location and the location to be located includes: In response to determining that any one of the plurality of second satellites is identical to one of the plurality of first satellites, the matching degree is increased; and / or In response to determining that any one of the plurality of second satellites is different from each of the plurality of first satellites, the matching degree is reduced.

4. The method according to claim 3, further comprising: For each of the plurality of candidate locations: in response to determining that the candidate location is located within an obstruction in the environment surrounding the candidate location, the matching degree of the candidate location is set to be less than a preset threshold.

5. The method according to claim 1 or 2, wherein, Selecting at least one target location from the plurality of candidate locations based on the matching degree of the plurality of candidate locations includes: The candidate positions are sorted according to the matching degree; and Select a preset number of candidate positions with the highest matching degree as the at least one target position.

6. A positioning device, comprising: The acquisition unit is configured to acquire multiple satellite signals received at the location to be located using a satellite signal receiving device; The first determining module is configured to classify the multiple satellite signals using an SVM classification model based on relevant parameters of the multiple satellite signals, in order to determine multiple direct signals from the multiple satellite signals, wherein the direct signals are satellite signals that are directly received by the satellite signal receiving device without reflection; and The second determining module is configured to determine a plurality of first satellites based on the plurality of direct signals, wherein the plurality of first satellites are the sources of the plurality of direct signals; The partitioning module is configured to divide a predefined geographical area into multiple sub-regions; and The third determining module is configured to use the geometric center position of each of the plurality of sub-intervals as a candidate position to determine the plurality of candidate positions; The second determining unit is configured to determine the matching degree between the plurality of candidate locations and the location to be located; wherein, for each of the plurality of candidate locations: based on the obstruction information of the surrounding environment of the candidate location, a plurality of second satellites that the satellite signal receiving device can receive satellite signals at the candidate location are determined by calculation and analysis; and the plurality of first satellites are compared with the plurality of second satellites to determine the matching degree between the candidate location and the location to be located. The selection unit is configured to select at least one target location from the plurality of candidate locations based on the matching degree of the candidate locations; and A third determining unit is configured to determine the coordinates of the location to be located based on the coordinates of the at least one target location, wherein the third determining unit includes: The clustering module is configured to cluster the multiple sub-intervals based on the coordinates of each target location in the at least one target location to obtain at least one interval cluster, wherein each interval cluster contains the sub-interval where the corresponding target location is located; The sixth determining module is configured to determine, from the at least one interval cluster, the target interval cluster containing the largest number of sub-intervals; and The seventh determining module is configured to determine the average coordinates of multiple sub-intervals contained in the target interval cluster, so as to use the coordinates of the location to be located.

7. The apparatus according to claim 6, wherein, The obstruction information includes the heights of multiple obstructions and the distances from the candidate position to each of the multiple obstructions. The second determining unit includes: The fourth determining module is configured to determine the field of view for receiving satellite signals at the candidate location based on the height of the plurality of obstructions and the distance from the candidate location to each of the plurality of obstructions; and The fifth determining module is configured to determine the plurality of second satellites falling within the field of view based on ephemeris data.

8. The apparatus according to claim 6 or 7, wherein, The second determining unit is further configured to: In response to determining that any one of the plurality of second satellites is the same as one of the plurality of first satellites, the matching degree is increased; and / or In response to determining that any one of the plurality of second satellites is different from each of the plurality of first satellites, the matching degree is reduced.

9. The apparatus according to claim 6 or 7, wherein, The selection unit further includes: The sorting module is configured to sort the plurality of candidate positions according to the matching degree; and The selection module is configured to select a preset number of candidate positions with the highest matching degree as the at least one target position.

10. An electronic device, comprising: At least one processor; as well as A memory that is communicatively connected to the at least one processor; in The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-5.

11. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-5.

12. A computer program product comprising a computer program, wherein, When the computer program is executed by a processor, it implements the method of any one of claims 1-5.

Citation Information

Patent Citations

  • Positioning method and electronic equipment

    CN112444834A

  • Terminal positioning method and device, equipment and storage medium

    CN113376674A