System and method for correcting GNSS NLOS error using ray-tracing

The system addresses the high computational load of existing GNSS ray-tracing methods by simulating testing rays, clustering results, and applying mirror-based ray-tracing to correct NLOS errors, achieving efficient and precise GNSS positioning in urban areas.

WO2024254684A1PCT designated stage expired Publication Date: 2024-12-19UTI LIMITED PARTNERSHIP

Patent Information

Application Number
PCT/CA2024/050786
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-16
Filing Date
2024-06-12
Publication Date
2024-12-19

AI Technical Summary

Technical Problem

Current GNSS ray-tracing methods for correcting NLOS errors in urban environments face significant computational load issues, limiting their use in real-time applications, and often introduce new sources of error.

Method used

A system and method that uses a processor to simulate testing rays in a 3D environment, generates a pixel shader image, clusters preliminary ray-tracing results based on reflection surfaces, and applies mirror-based ray-tracing to select the best result with the highest signal power for error correction.

Benefits of technology

This approach significantly reduces computational load and provides precise NLOS error correction, making it suitable for real-time GNSS positioning in urban environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CA2024050786_19122024_PF_FP_ABST
    Figure CA2024050786_19122024_PF_FP_ABST
Patent Text Reader

Abstract

System and method for correcting GNSS NLOS error using ray-tracing. A processor is in communication with a receiver configured to receive a signal from at least one signal source. A ray-tracing module of the processor performs ray-tracing on a plurality of simulated testing rays that pass through a low-resolution pixel shader image. Then, results of the first ray-tracing process are clustered based on reflection surfaces combination encountered and mirror-based ray-tracing is performed on the clustered results. A best result of the mirror-based ray-tracing process (i.e., a result having the highest signal power) is selected, corresponding to a most likely path between said receiver and the signal source, and is useful for correcting errors in signals received by the signal.
Need to check novelty before this filing date? Find Prior Art

Description

Attorney Docket No.1136P025WO01 SYSTEM AND METHOD FOR CORRECTING GNSS NLOS ERROR USING RAY- TRACING CROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims priority to US Provisional Patent Application No. 63 / 508,762, entitled “SYSTEM AND METHOD FOR CORRECTING GNSS NLOS ERROR USING RAY-TRACING”, filed on June 16, 2023, the entire disclosure of which is hereby incorporated by reference. TECHNICAL FIELD

[0002] The present invention relates to GNSS ray-tracing positioning. More specifically, the present invention relates to correcting error in non-line-of-sight (NLOS) GNSS signals. BACKGROUND

[0003] Despite many recent advances in global navigation satellite system (GNSS) based positioning systems, GNSS positioning in urban areas is still challenging due to the multipath effect, non-line-of-sight (NLOS) reception and poor satellite geometry caused by infrastructure occlusion. As shown in, for example, Figure 1, NLOS reception takes place when the direct line-of-sight (LOS) vector between the satellite and the receiver is obstructed, and the received signal is reflected once or more than once times before entering the GNSS antenna. The resulting NLOS error can be as large as hundreds of meters in some severe circumstances in urban environments.

[0004] Various methods have been proposed to detect and exclude such NLOS signals, to thereby avoid the associated NLOS error. However, excluding NLOS signals in urban environments, which are typically densely built up, can result in severe degradation of satellite geometry (i.e., as relatively few LOS signals areAttorney Docket No.1136P025WO01 available). Accordingly, well-known ray-tracing processes have been proposed (see, e.g., references [1] and [2] detailed below). Ray-tracing corrects for the NLOS error in received NLOS signals, rather than excluding the signals entirely.

[0005] Different ray-tracing methods have been used. In particular, the standard “mirror based method” of ray-tracing begins by calculating the mirror image of the GNSS receiver to every possible reflection surface, then generates a line segment connecting the satellite and the mirror image. The join point of the line segment and the surface is assumed to be the candidate reflection point for further judgements (see Figure 2). A grid-search-based ray-tracing positioning method based on the mirror based ray-tracing method has also been proposed in [2], and has been subsequently refined.

[0006] However, the grid-search-based positioning method introduces intensive computational load, dependent on the candidate grid density and the candidate area size. In a real-world urban environment, the consideration of multiple reflections is also needed. However, this requirement for multiple reflection points increases computational load exponentially when the number of reflections considered grows, as possible reflection paths must then be calculated for every possible reflection surface combination. The heavy computational load of the mirror based ray-tracing method would severely limit its usage in real-time applications. As yet, methods that mitigate the computational load also introduce new sources of error, and there are no computationally efficient and precise methods and systems for GNSS ray-tracing positioning. SUMMARY

[0007] This document discloses a system and method for GNSS NLOS error correction using ray-tracing that provides significant computational efficiencies over previous approaches. A processor is in communication with a receiver configured to receive a signal from at least one signal source. A ray-tracing module of the processor performs ray-tracing on a plurality of simulated testing rays that pass through a low-resolution pixel shader image. Then, results of the first ray-tracing process are clustered based on reflection surfaces combinationAttorney Docket No.1136P025WO01 encountered and mirror-based ray-tracing is performed on the clustered results. A best result of the mirror-based ray-tracing process (i.e., a result having the highest signal power) is selected, corresponding to a most likely path between said receiver and the signal source, and is useful for correcting errors in signals received by the receiver.

[0008] In a first aspect, this document discloses a system for GNSS NLOS error correction using ray-tracing, the system comprising: a processor in communication with a receiver configured to receive a signal from at least one satellite, said processor implementing a ray-tracing module for: simulating a plurality of testing rays from said receiver, said plurality of testing rays being simulated in a simulated 3D environment of said receiver; in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray-tracing results; clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; applying mirror-based ray-tracing to said clustered results to produce error-corrected results; and selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one satellite.

[0009] In another embodiment, this document discloses a system wherein one of said clustered results corresponds to all testing rays that encounter zero surfaces.

[0010] In another embodiment, this document discloses a system wherein said signal is a non-line-of-sight (NLOS) signal.Attorney Docket No.1136P025WO01

[0011] In another embodiment, this document discloses a system wherein said environment is a 3D simulation.

[0012] In another embodiment, this document discloses a system wherein said processor further comprises a simulation module for generating said 3D simulation.

[0013] In another embodiment, this document discloses a system wherein said at least one satellite is one of: a GPS satellite; a GLONASS satellite; a Galileo satellite; and a Beidou satellite; and a QZSS satellite.

[0014] In another embodiment, this document discloses a system wherein said pixel shader image is generated using an omnidirectional camera model.

[0015] In another embodiment, this document discloses a system wherein, for each surface from which said signal is reflected, ray-tracing comprises: normal vector judgement; ray rotation; ray scale coefficient (t) judgement; inside border judgement; reflection calculation; rotation back; and L2 norm square calculation.

[0016] In a second aspect, this document discloses a ray-tracing method for GNSS NLOS error correction, the method comprising: simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one satellite, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray- tracing results; clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; applying mirror-based ray-tracing to said clustered results to produce error-corrected results; and selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite, wherein said best result isAttorney Docket No.1136P025WO01 useful for correcting NLOS errors in signals received by said receiver from said at least one satellite.

[0017] In another embodiment, this document discloses a method wherein one of said clustered results corresponds to all testing rays that encounter zero surfaces.

[0018] In another embodiment, this document discloses a method wherein said signal is a non-line-of-sight (NLOS) signal.

[0019] In another embodiment, this document discloses a method wherein said at least one satellite is one of: a GPS satellite; a GLONASS satellite; a Galileo satellite; and a Beidou satellite; and a QZSS satellite.

[0020] In another embodiment, this document discloses a method wherein said environment is a 3D simulation.

[0021] In another embodiment, this document discloses a method further comprising a step of generating said 3D simulation.

[0022] In another embodiment, this document discloses a method wherein said pixel shader image is generated using an omnidirectional camera model.

[0023] In another embodiment, this document discloses a method wherein, for each surface from which said signal is reflected, ray-tracing comprises: normal vector judgement; ray rotation; ray scale coefficient (t) judgement; inside border judgement; reflection calculation; rotation back; and L2 norm square calculation.

[0024] In a third aspect, this document discloses a method for ray-tracing error correction for signals from of at least one signal source, the method comprising: simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one signal source, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one signal source and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; ray-tracing said testingAttorney Docket No.1136P025WO01 rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray-tracing results; clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; applying mirror-based ray-tracing to said clustered results to produce error-corrected results; and selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one signal source, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one signal source.

[0025] In a fourth aspect, this document discloses computer-readable media having encoded thereon computer-readable and computer-executable instructions that, when executed, implement a method for ray-tracing error correction, the method comprising: simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one satellite, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray-tracing results; clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; applying mirror-based ray-tracing to said clustered results to produce error-corrected results; and selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one satellite.Attorney Docket No.1136P025WO01 BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The present invention will now be described by reference to the following figures, in which identical reference numerals refer to identical elements and in which: Figure 1 is an exemplary image of an urban environment showing NLOS GNSS signal paths; Figure 2 is a diagram of the mirror based method as known in the prior art; Figure 3 is a stylized image of a system according to an aspect of the present invention; Figure 4 is a diagram of ray-tracing using a pixel shader image and an omnidirectional camera model; Figure 5 is a flowchart illustrating subprocesses of pixel shader based ray-tracing to correct GNSS NLOS errors; Figure 6 shows exemplary geometrical shapes to illustrate ray-tracing subprocesses; Figure 7 is a flowchart illustrating clustering and mirror-based ray-tracing to said clustered results to produce error-corrected results according to an embodiment of the present invention; Figure 8 shows an image of ray-tracing results clustering according to an embodiment of the present invention; Figure 9A shows the plots of computational complexity for the present method and prior methods, considering double reflections; Figure 9B shows the plots of computational complexity for the present method and prior methods, considering triple reflections; and Figure 10 is a flowchart detailing a method according to an aspect of the invention.Attorney Docket No.1136P025WO01 DETAILED DESCRIPTION

[0027] To better understand the present invention, the reader is directed to the listing of citations at the end of this description. For ease of reference, these citations and references have been referred to by their listing number throughout this document. The contents of the citations in the list at the end of this description are hereby incorporated by reference herein in their entirety.

[0028] Figure 3 is a stylized diagram of a system 10 according to one aspect of the invention. (As should be clear, Figure 3 is not to scale.) In the system 10, a GNSS receiver 20 receives a signal from at least one satellite 25. The receiver 20 communicates with a processor 30 that applies ray-tracing, clustering, and further ray-tracing to testing rays, as described below. The receiver 20 and the processor 30, as should be clear, are shown as separate elements in Figure 3, but may be part of a single device. For example, in some embodiments, both the receiver 20 and the processor 30 are elements of a smartphone or other user communication device having a GNSS antenna and a suitable processing system. In particular, in some smartphone implementations, a GNSS antenna on the smartphone acts as the receiver 20. In some embodiments, further, some of the processing modules are present in the same device as the receiver 20 while other modules are embodied in other processors, such as Internet-accessible cloud processing modules. Nothing in Figure 3 should be considered to limit the format of the receiver 20 and processor 30. Further, it should be understood that the processor 30 may be a standalone processing unit, e.g., the processing unit of a smartphone or other mobile computing device. However, in other implementations, the processor 30 may be separate from the receiver and may be directed or controlled by one or more server units, such as (without limitation) a remote or cloud-based server. Further, signals can be received from any GNSS satellite for which the receiver is configured. Such satellites include without limitation satellites from the Global Positioning System (GPS), the Russian GLONASS system, the European Galileo system, the Chinese Beidou system, and / or the Japanese Quasi- Zenith Satellite System (QZSS).Attorney Docket No.1136P025WO01

[0029] A ray-tracing module implemented by the processor 30 generates a pixel shader image (i.e., an array of pixels) based on a simulated 3D model of an environment of the receiver 20. As discussed below, the pixel shader image is preferably omnidirectional but may have a narrower field of view. The ray-tracing module then applies ray-tracing to a plurality of simulated testing rays, to thereby produce preliminary ray-tracing results indicating potential signal paths from the receiver. A clustering module of the processor 30 clusters the preliminary results based on the surfaces (if any) from which each testing ray reflects along its ray path. That is, preliminary results of ray paths that include the same reflection surfaces combination will be clustered together, while ray paths that hit different reflection surfaces will be clustered into different clusters. Further, rays that hit zero surfaces (i.e., that travel directly from the receiver 20 into the sky) will be clustered into a single cluster. A mirror-based ray-tracing module then applies the well-known “traditional mirror-based” (TMB) ray-tracing method to the clustered results, to thereby produce preliminary results. A selection module implemented by the processor 30 selects a best result (i.e., a result having a highest signal power) from the error-corrected result. The best result indicates the most likely path between the receiver 20 and the satellite 25. The best result can then be used, in some embodiments and if desired, to determine a position of the receiver 20.

[0030] Figure 4 further illustrates this ray-tracing approach. Each simulated testing ray starts from the receiver 20 (i.e., observer origin) and travels through one of the pixels on the pixel shader image, i.e., a defined array of pixels in the simulation of the testing rays. An omnidirectional camera model is defined to map the generated testing ray directions, covering the horizontal hemisphere above the observer origin point. Each ray is then checked against all surfaces in the scene to determine if that ray hits any surface (‘ray hit’) before reaching the sky (‘ray miss’). For rays that reach the sky, the possibility of reaching one of the satellites is also calculated. Reflections from intervening surfaces are then traced as necessary, until the surface hit is determined to be a satellite. The 3D model / simulation of the environment of the receiver 20 is obtained from a third party or generated by a simulation module of the processor 30, depending on the embodiment. Given the limited resolution of the pixel shader image, however,Attorney Docket No.1136P025WO01 only preliminary (i.e., low-resolution) path data and reflection surfaces can be determined for each ray (i.e., the “preliminary results”). The preliminary ray- tracing results are then refined using clustering and the traditional mirror-based method based on the preliminary traced path and reflection surfaces, as described below, so that accurate NLOS corrections can be acquired, so as to be useful in determining, e.g., the position of the receiver. Pixel Shader Image Based Ray-Tracing

[0031] Pixel shader based ray-tracing methods are well-known in computer graphics for rendering 3D scenes, lighting effects, etc., which is utilized for GNSS NLOS error correction for correcting GNSS NLOS error. The overall pixel shader based ray-tracing flowchart for one testing ray, to judge whether it hits a surface and to calculate its reflection geometry, is shown in Figure 5. This figure depicts several sub-processes, namely: ‘normal vector judgement’, ‘ray rotation’, ‘t judgement’ (where t is the ray scale coefficient), ‘inside border judgement’, ‘reflection calculation’, ‘rotation back’ and ‘L2 norm square calculation’. Each of these sub-processes will now be described in detail. (i) Normal Vector Judgement

[0032] Normal vector judgement is a preliminary step applied to each surface in the scene (i.e., in the 3D simulation) to determine whether that surface is visible from the candidate location (i.e., the position of the receiver). Consider a ray starting at point A with the unit directional vector ^^^^. Any position that ray can reach can be written as:

[0033] surface that can be hit by the ray, the angle between its normal vector ^^and ^^^^should range from 90 to 270 degrees. Thus, the following condition can be used to judge if the surface can hit by the ray: ^^^^∙ ^^< 0Attorney Docket No.1136P025WO01

[0034] With normal vector judgement, half of the tested surfaces in the scene are expected to be eliminated from further steps, if the surfaces are evenly distributed. (ii) Ray rotation, t judgement, and inside border judgement

[0035] For each surface that passes the normal vector judgement, the necessary rotation so that the ray is in the reflection surface coordinate frame is calculated. After that, the ray scale coefficient ^ is calculated to judge if the rotated ray can hit the surface. The inside border judgement is performed to determine if the hit point is located inside the surface’s edge.

[0036] Two common reflection surface shapes, namely, rectangle and triangle, are used as examples in Figure 6 to illustrate these processes. The application of such processes to other-shaped surfaces can also be derived using geometrical approaches. In the examples in Figure 6, a coordinate frame is used (also referred to as ,a ‘reflection surface frame’). This coordinate frame is set up so that the plane of the exemplary rectangle and / or triangle, as applicable, is perpendicular to the x-axis of the coordinate frame, and so that one of the edges of each shape is parallel to the y-axis of the coordinate frame. Applying such a coordinate frame significantly reduces the required amount of computation when calculating the reflected geometry and the hitting condition judgment, as detailed in [5]. Thus, each testing surface that passes the normal vector judgement is rotated into the coordinate frame / reflection surface frame before such calculations are performed.

[0037] In Figure 6, the normal unit vector is ^^=^100^^for the rectangle and the triangle. With ^^= ^^in Equation 1 above, the intersection point F between the ray and the surface can be calculated with ^ = ^^^− ^^^ / ^^,^. The scale coefficient t satisfies t > 0, as the ray cannot travel backward. Of all the surfaces that pass the inside border judgement, only the one with the smallest scale coefficient t is selected as the final traced surface, as that is the closest surface to the ray starting point A. After that, the hit condition (whether the ray hits theAttorney Docket No.1136P025WO01 surface or not) can be judged based on whether point F is located inside the border of the surface.

[0038] To judge whether a point F locates inside the rectangle in Figure 6, the following comparison is carried out:

[0039] To judge whether a point F locates inside the triangle in Figure 6, the following conditions need to be evaluated:

[0040] As is well-known, division operations are far slower than multiplication on modern computers. Accordingly, to improve efficiency, the above triangle equations can be rewritten as:(iii) Reflection calculation and rotation back

[0041] Once a ray is determined to hit a surface following the steps above, the corresponding reflected ray from that surface is calculated. The reflected ray is then rotated back to the original coordinate frame of the testing surface.Attorney Docket No.1136P025WO01

[0042] For simplicity in the explanation below, the mirror reflection law is applied. Of course, real-world applications may require more complex reflection laws. The reflected ray C is calculated as follows: (iv) L2 norm square calculation

[0043] If the maximum number of reflections (a predetermined limitation) has been reached, or if a ray does not hit a surface, the corresponding ‘reflected’ ray is calculated using the L2 norm square of the incident ray. The L2 norm square values provide a measure of the likelihood of a ray hitting the satellite. The L2 norm square is calculated as follows: ^^=^^^^^^− ^^^^^^^

[0044] where e ^^^ =^e ,! e ," e ,#^is the unit directional vector of the ray hitting sky and e^^^$= ^e$,!e$,"e$,#^ is the unit directional vector from the starting point of the ray to the satellite. Since the satellite-receiver distance is so large compared to the distance from the antenna to the starting point of the reflected ray, the vector from the antenna to the starting point of the reflected ray can be neglected when calculating e^^^$. Thus, e^^^$can be approximated by the satellite- receiver unit directional vector when calculating L^, which saves computation for every testing ray.

[0045] The power of the reflected rays can be calculated using Equation (2), which serves as a metric for selecting the ray with the highest probability of reaching the satellite.=L^ − L^ ^ ^()! L()! − L ≥ P*+(+,where L^()!is the L2 norm square max value and P*+(+,is the power cut-off threshold. Any traced ray with L^()!− L^lower than P*+(+,will be simplyAttorney Docket No.1136P025WO01 neglected. Considering the fact that a limited number of testing rays can be generated with a pixel shader image of a fixed resolution, it is important to set a sufficiently large P*+(+,. A higher P*+(+,allows more traced routes, which are close to the best reflection geometry, to pass the L2 norm square judgment, and thereby reduces the risk of missed detections. Of course, the degree of “sufficiently large” depends on the specific implementation. The person skilled in the art would understand how to determine suitable L^()!and P*+(+,values for a particular implementation, based at least on specific needed or desired outcomes and on surface resolution of the 3D model. Testing Ray Generation Using the Omnidirectional Camera Model

[0046] To generate testing rays from all possible directions above the horizontal plane at once, an omnidirectional camera model is applied to generate the pixel shader image and define the ray directions pattern. Such a model is disclosed in, for example, reference [6] below. As this method independently generates the testing ray by an array of pixels for ray-tracing, the implementation can be easily parallelized and accelerated using parallel computing devices like graphics processing units (GPUs) and field-programmable gate array (FPGAs).

[0047] It should be noted that, although omnidirectional models are generally preferred, non-omnidirectional camera models may be used in some implementations. For example, in some embodiments, camera models with narrower fields of view and / or multiple overlapping camera models are used to perform the ray-tracing. Clustering

[0048] Figure 7 illustrates clustering and error-correction steps according to an embodiment of the present invention. Moving from left to right, the preliminary ray-tracing results produced by the ray-tracing module are clustered, by the clustering module, based on reflection surface combination (i.e., based on which surface(s) is / are encountered by each testing ray along its preliminarily determined path, if any). Mirror-based ray-tracing, as described above, is then applied, by the mirror-based ray-tracing module, to each clustered path result toAttorney Docket No.1136P025WO01 further correct the NLOS error in the clustered path results and to thereby produce error-corrected results (denoted as ‘refined path+ surface combination’ in the figure). The error-corrected result having the highest signal power, and thus corresponding to the most likely signal path between the receiver and the signal source, is then selected (by the selection module) as the ‘best result’.

[0049] Figure 8 is an image showing clustered results overlaid on an omnidirectional camera image from a testing 3D model. The boxes on the image correspond to distinct clusters formed by clustering together the signal paths from preliminary ray-tracing based on the reflection surfaces combination encountered by each ray. Mirror-based ray-tracing can now be performed on the clustered paths to reduce the remaining NLOS error therein, and the strongest signal (in visual representation such as this figure, the brightest / deepest red signal) can be determined as the most likely path for the actual signal to have taken. Computational Complexity Analysis

[0050] To assess the computational load of the present method, various tests were performed with different maximum numbers of reflections, numbers of surfaces and satellite count configurations. For comparison, the computational complexity of the traditional mirror based method (TMB, without the pixel shader image or clustering steps) was assessed alongside these values.

[0051] For the below, . / 0is the probability that a ray will hit 1^times before entering the sky, 23 / 4^is the maximum number of reflections, 2^is the surface count (i.e., number of surfaces) and 2^is the number of satellites. The image resolution of the pixel shader image in the present method is notated as 3^5^. Further, it is assumed that 2^pixels on average fulfill the L2 norm square cut-off condition .^≥ .6^ / ^7.

[0052] Note also that, for the TMB method, the computational count for each sub- process with different values for 1^must be iterated and added up. In contrast, the present method already accounts for differences in these values. As such, the total computational count for the present approach is calculated from the weighted average value with a probability . / 0for each 1^condition. Tables 2Attorney Docket No.1136P025WO01 and 3 give the expected computation times for each subprocess in the TMB method (Table 2) and for each subprocess in the present method (Table 3). Table 1.Table 2. MMM / 0CAttorney Docket No.1136P025WO01 F^ L2 norm squareGHI

[0053] It can be seen from Tables 2 and 3 that the computational load of the TMB method would increase exponentially as the maximum number of reflections, but only increase linearly for the present method.

[0054] To compare the computational load of the three methods in numerical form, the computation load for each sub-process was evaluated two methods are implemented using C language and benched for computational load using a desktop computer. The selected shape for benching the inside border judgment is triangle, as it is more complex to compute and a general shape in real-word 3D models.

[0055] After obtaining the computational load for each sub-process, the total computational load for each method can be calculated by multiplying the computational load of each sub-process with the expected computation count for that sub-process, and adding the totals for each sub-process together. The initial parameters 2D= 50, .3^= 0.85, .3^= 0.10, .3Q= 0.05 are generally used in benchmarking. (It is noted that these values are already disadvantageous for evaluating the present method when compared to real-world situations. That is, in the real world, higher values would be expected for .3^and .3^, and the computational load of the proposed method would be further decreased. In contrast, the higher values of .3^and .3^would not affect the TMB method. As such, it should be clear that the present performs less well in benchmarking than would be expected in the real world.) Further, 2Ris taken as 4, which is an empirical average value obtained from a long-term real-world 3D model ray- tracing test. Two different shader image resolution configurations were adopted in the benchmarking process: Case 1, in which the resolution of the pixel shader image was 64x64, and Case 2, in which the resolution of the pixel shader image was 128x128.

[0056] Figure 9A shows the ratio of the overall computational load of the TMB method and that of the present method for Case 1 and Case 2 in the benchmarking tests,Attorney Docket No.1136P025WO01 for different surface counts 2@and satellite counts 2^and when considering double reflections. Similarly, Figure 9B shows the computational load ratios for Case 1 and Case 2 in the benchmarking tests, when considering triple reflections.

[0057] With 23 / 4^= 2 and 2^= 10, the present method outperforms the TMB method in Case 1 when 2^> 44. Further, the present method outperforms the TMB method in Case 2 when 2^> 156. Thus, as the satellite count and surface count become larger, the advantages of the present method become clear. In particular, these surface count values are easily surpassed by real-world 3D models, making the present method well suited for real-world positioning applications. Similarly, with 23 / 4^= 3 and 2^= 10, the present method rapidly outperforms the TMB method in both Case 1 (when 2^ > 9 )and in Case 2 (when 2^ > 14. With 2^ >100 in Case 1, the present ray-tracing provides speeds hundreds of times as fastas the other methods. Method Flowchart

[0058] Turning now to Figure 10, a flowchart is provided that details a method according to one aspect of the invention. At step 1000, test rays from the receiver are simulated. A pixel shader image is simulated in the simulation of the test rays at step 1010. A first ray-tracing process is performed on the test rays according to the descriptions above, at step 1020, and preliminary paths (i.e., “preliminary results”) are thereby produced. At step 1030, the preliminary results are clustered based on reflection surfaces combination encountered , to thereby produce clustered results. Mirror-based ray tracing is then applied to the clustered results at step 1040, to thereby produce refined / error-corrected results. A best result of the refined results is returned at step 1050, corresponding to a most likely signal path between the receiver and a specific signal source.

[0059] Of course, as should be clear, this approach may be used for determining the position, or relative position, of any suitable signal source. That is, this approach is not limited to GNSS applications. The method and system disclosed herein may be used for determining position information in astronomy, cellular network, radio- and telecommunications, and many other fields.Attorney Docket No.1136P025WO01 References

[0060] As noted above, for a better understanding of the present invention, the following references may be consulted. Each of these references is hereby incorporated by reference in its entirety: [1] Ercek R, De Doncker P, Grenez F (2006) NLOS-multipath effects on Pseudo-Range estimation in urban canyons for GNSS applications. In: 2006 First European Conference on Antennas and Propagation. pp 1–6. [2] Miura S, Hisaka S, Kamijo S (2013) GPS multipath detection and rectification using 3D maps. In: 16th International IEEE Conference on Intelligent Transportation Systems (ITSC 2013). pp 1528–1534. [3] Ng H-F, Zhang G, Hsu L-T (2020) A Computation Effective Range-Based 3D Mapping Aided GNSS with NLOS Correction Method. The Journal of Navigation: 1–21. https: / / doi.org / 10.1017 / S037346332000003X. [4] Purcell TJ, Buck I, Mark WR, Hanrahan P (2002) Ray tracing on programmable graphics hardware. In: ACM Trans Graph 21(3):703–712. [5] Shirley P (2016) Ray tracing in one weekend. Amazon Digital Services LLC. [6] Mei C, Rives P (2007) Single View Point Omnidirectional Camera Calibration from Planar Grids. In: Proceedings 2007 IEEE International Conference on Robotics and Automation. Roma, Italy, pp 3945–3950.

[0061] As used herein, the expression “at least one of [x] and [y]” means and should be construed as meaning “[x], [y], or both [x] and [y]”.

[0062] It should be clear that various elements of the present invention may be implemented as software modules in an overall software system. As such, the present invention may thus comprise computer executable instructions that, when executed, implements various software modules with predefined functions.Attorney Docket No.1136P025WO01

[0063] Additionally, it should be clear that, unless otherwise specified, any references herein to ‘image’ or to ‘images’ refer to a digital image or to digital images, comprising pixels or picture cells.

[0064] Elements of the invention may be executed by a computer processor or similar device programmed in the manner of method steps, or may be executed by an electronic system which is provided with means for executing these steps. Similarly, an electronic memory means such as computer diskettes, CD-ROMs, Random Access Memory (RAM), Read Only Memory (ROM) or similar computer software storage media known in the art, may be programmed to execute such method steps. As well, electronic signals representing these method steps may also be transmitted via a communication network.

[0065] Embodiments of the invention may be implemented in any conventional computer programming language. For example, preferred embodiments may be implemented in a procedural programming language (e.g., “C” or “Go”) or an object-oriented language (e.g., “C++”, “java”, “PHP”, “PYTHON” or “C#”). Alternative embodiments of the invention may be implemented as pre- programmed hardware elements, other related components, or as a combination of hardware and software components.

[0066] Embodiments can be implemented as a computer program product for use with a computer system. Such implementations may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or electrical communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions embodies all or part of the functionality previously described herein. Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may beAttorney Docket No.1136P025WO01 transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink-wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server over a network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention may be implemented as entirely hardware, or entirely software (e.g., a computer program product).

[0067] A person understanding this invention may now conceive of alternative structures and embodiments or variations of the above all of which are intended to fall within the scope of the invention as defined in the claims that follow.

Claims

Attorney Docket No.1136P025WO01 We claim:

1. A system for correcting GNSS NLOS error using ray-tracing, the system comprising: - a processor in communication with a receiver configured to receive a signal from at least one satellite, said processor implementing: - a simulation module for simulating a plurality of testing rays from said receiver, said plurality of testing rays being simulated in a simulated 3D environment of said receiver; - a pixel-shader module for generating a pixel shader image in said simulated 3D environment, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; - a ray-tracing module for ray-tracing said testing rays to determine the reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray-tracing results; - a clustering module for clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; - a mirror-based ray-tracing module for applying mirror-based ray-tracing to said clustered results to produce error-corrected results; and - a selection module for selecting a best result from said error-corrected results, said best result having a highest signal power of said error- corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one satellite.

2. The system according to claim 1, wherein one of said clustered results corresponds to all testing rays that encounter zero surfaces.Attorney Docket No.1136P025WO01 3. The system according to claim 1, wherein said signal is a non-line-of-sight (NLOS) signal.

4. The system according to claim 1, wherein said at least one satellite is one of: a GPS satellite; a GLONASS satellite; a Galileo satellite; a Beidou satellite; and a QZSS satellite.

5. The system according to claim 1, wherein said pixel shader image is generated using an omnidirectional camera model.

6. The system according to claim 1, wherein, for each surface from which said signal is reflected, ray-tracing comprises: normal vector judgement; ray rotation; ray scale coefficient (t) judgement; inside border judgement; reflection calculation; rotation back and L2 norm square calculation.

7. The system according to claim 1, further comprising a server in communication with said receiver and with said processor, wherein said server directs said processor to implement specific modules.

8. A method for determining ray-tracing error correction, the method comprising: - simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one satellite, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; - in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; - ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray- tracing results; - clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results;Attorney Docket No.1136P025WO01 - applying mirror-based ray-tracing to said clustered results to produce error- corrected results; and - selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite wherein said best result is useful for correcting errors in signals received by said receiver from said at least one satellite.

9. The method according to claim 8, wherein one of said clustered results corresponds to all testing rays that encounter zero surfaces.

10. The method according to claim 8, wherein said signal is a non-line-of-sight (NLOS) signal.

11. The method according to claim 8, wherein said at least one satellite is one of: a GPS satellite; a GLONASS satellite; a Galileo satellite; a Beidou satellite; and a QZSS satellite.

12. The method according to claim 8, wherein said pixel shader image is generated using an omnidirectional camera model.

13. The method according to claim 8, wherein, for each surface from which said signal is reflected, ray-tracing comprises: normal vector judgement; ray rotation; scale coefficient (t) judgement; inside border judgement; reflection calculation; rotation back; and L2 norm square calculation.

14. A method for determining ray-tracing error correction, the method comprising: - simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one signal source, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; - in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one signalAttorney Docket No.1136P025WO01 source and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; - ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray- tracing results; - clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; - applying mirror-based ray-tracing to said clustered results to produce error- corrected results; and - selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one signal source, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one signal source.

15. Computer-readable media having encoded thereon computer-readable and computer- executable instructions that, when executed, implement a method for determining ray- tracing error correction, the method comprising: - simulating a plurality of testing rays from a receiver, said receiver being configured to receive a signal from at least one satellite, and said plurality of testing rays being simulated in a simulated 3D environment of said receiver; - in said simulated 3D environment, generating a pixel shader image, wherein said pixel shader image comprises an array of pixels between said at least one satellite and said receiver, wherein each of said plurality of testing rays passes through one of said pixels of said pixel shader image and each of said plurality of testing rays corresponds to a unique one of said pixels; - ray-tracing said testing rays to determine reflection surfaces combination encountered by each of said testing rays, to thereby produce preliminary ray- tracing results;Attorney Docket No.1136P025WO01 - clustering said preliminary ray-tracing results based on said reflection surfaces combination encountered by said testing rays, to thereby produce clustered results; - applying mirror-based ray-tracing to said clustered results to produce error- corrected results; and - selecting a best result from said error-corrected results, said best result having a highest signal power of said error-corrected results, such that said best result corresponds to a most likely path between said receiver and said at least one satellite, wherein said best result is useful for correcting errors in signals received by said receiver from said at least one satellite.

Citation Information

Patent Citations

  • Position detection device, position detection system, and position detection method

    US20160146945A1

  • Perception data based GNSS multipath identification and correction

    US20220390619A1

Cited By

  • Non-line-of-sight building layout repositioning method and device in array interferometric synthetic aperture radar three-dimensional imaging, storage medium and program product

    CN120630201A