Apparatus and method for calculating receiver position-velocity-time results
By combining the least squares algorithm and the RSIKF algorithm, the problem of inaccurate positioning of GNSS receivers in multipath delay environments was solved, and higher accuracy and stable PVT calculation were achieved.
Patent Information
- Application Number
- CN202110738240.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-06-30
- Publication Date
- 2026-03-06
- Estimated Expiration
- 2041-06-30
AI Technical Summary
The positioning results calculated by the GNSS receiver on paths where multipath delay has a significant impact are inaccurate and unstable.
A method combining the least squares algorithm and the random sampling iterative Kalman filter (RSIKF) algorithm is adopted to calculate the final estimated PVT result of the receiver by establishing the observation equation, iteratively eliminating the faulty observation equation.
It improves the positioning accuracy and stability of GNSS receivers in multipath delay environments, ensuring higher accuracy of position, velocity, and time results.
Smart Images

Figure CN115542354B_ABST
Abstract
Description
Technical Field
[0001] This application relates to an apparatus and method for calculating the positioning results of a Global Navigation Satellite System (GNSS) receiver, and more specifically, to an apparatus and method for calculating the position-velocity-time (PVT) results of a GNSS receiver. Background Technology
[0002] Typically, GNSS receivers acquire data from GNSS satellites (such as BeiDou-3 satellites) and calculate their positioning results based on this data. However, in certain situations, such as when the receiver travels along a path significantly affected by multipath delay, the calculated positioning results may be inaccurate and unstable. Therefore, an improved method is needed to calculate the receiver's positioning results to enhance accuracy and stability. Summary of the Invention
[0003] According to one embodiment, a PVT calculation device includes: a memory; and one or more processors communicating with the memory, the one or more processors being configured to perform the following operations: receiving observations and ephemeris data of a satellite to obtain PVT data of the satellite and a predicted PVT result of a receiver; establishing observation equations corresponding to the satellite based on the PVT data of the satellite and the PVT prediction result of the receiver, respectively; calculating a first estimated PVT result of the receiver using a least squares algorithm based on the observation equations; iteratively eliminating faulty observation equations from the observation equations of an inlier subset using a random sampling iterative Kalman filter (RSIKF) algorithm until no faulty observation equations are detected in the inlier subset; calculating a second estimated PVT result of the receiver using the observation equations in the inlier subset through the RSIKF algorithm; and outputting a final estimated PVT result of the receiver.
[0004] According to one embodiment, a method for calculating the PVT result of a receiver using a PVT calculation device 200 includes: receiving satellite observations and ephemeris to obtain satellite PVT data and a receiver predicted PVT result; establishing observation equations corresponding to the satellite based on the satellite PVT data and the receiver's PVT prediction result; calculating a first estimated PVT result of the receiver using a least squares algorithm based on the observation equations; iteratively eliminating faulty observation equations from the observation equations of an inlier subset using a random sampling iterative Kalman filter (RSIKF) algorithm until no faulty observation equations are detected in the inlier subset; calculating a second estimated PVT result of the receiver using the observation equations in the inlier subset through the RSIKF algorithm; and outputting the final estimated PVT result of the receiver.
[0005] According to one embodiment, a non-transitory computer-readable medium storing instructions, when executed by one or more computer processors of a PVT computing device, causes the PVT computing device to perform the following operations: receiving observations and ephemeris data of a satellite to obtain PVT data of the satellite and a predicted PVT result of a receiver; establishing observation equations corresponding to the satellite based on the PVT data of the satellite and the PVT prediction result of the receiver, respectively; calculating a first estimated PVT result of the receiver using a least squares algorithm based on the observation equations; iteratively eliminating faulty observation equations from the observation equations of an inlier subset using a random sampling iterative Kalman filter (RSIKF) algorithm until no faulty observation equations are detected in the inlier subset; calculating a second estimated PVT result of the receiver using the observation equations in the inlier subset through the RSIKF algorithm; and outputting a final estimated PVT result of the receiver. Attached Figure Description
[0006] Non-limiting and non-exhaustive embodiments of this application are described with reference to the following accompanying drawings, wherein, unless otherwise stated, the same reference numerals refer to the same parts in the various views.
[0007] Figure 1 This is a diagram illustrating a GNSS receiver 100 according to one embodiment.
[0008] Figure 2 This is a diagram illustrating a PVT calculation device 200 in a GNSS receiver 100 according to one embodiment.
[0009] Figure 3 This is a diagram illustrating a Kalman filtering algorithm 300 that calculates the PVT results of receiver 100 using a PVT calculation device 200 according to one embodiment.
[0010] Figure 4 This is a diagram illustrating a method 400 for calculating the PVT result of receiver 100 using a PVT calculation device 200 according to one embodiment.
[0011] Figure 5 This is a block diagram illustrating a software architecture 500 in which examples can be implemented. Detailed Implementation
[0012] Various aspects and examples of this application will now be described. The following description provides specific details for a thorough understanding and implementation of these examples. However, those skilled in the art will understand that this application can be practiced without many of these details.
[0013] Additionally, some well-known structures or functions may not be shown or described in detail in order to be concise and avoid unnecessarily obscuring the relevant descriptions.
[0014] The terminology used in the description given below, even when used in conjunction with the detailed description of certain specific examples of this application, should be interpreted in its broadest and most reasonable manner. Certain terms may even be emphasized below; however, any term intended to be interpreted in any restrictive manner will be explicitly and specifically defined in this specific description section.
[0015] Without loss of generality, illustrative embodiments will be referenced by way of example apparatus and methods for calculating the position-velocity-time (PVT) results of a GNSS receiver. Those skilled in the art will understand that this is merely for the purpose of clearly and fully describing the application, and not for limiting the scope of the application as defined by the appended claims.
[0016] GNSS receivers can receive radio frequency (RF) signals from navigation satellites and obtain data from them (e.g., raw observations and ephemeris). A Kalman filter can then be used to calculate the receiver's positioning results (e.g., PVT results) based on these data. However, in certain situations, such as when a vehicle-borne receiver travels along a path significantly affected by multipath delays (e.g., caused by urban high-rise buildings, underpasses, and canyons), the receiver's calculated PVT results may become inaccurate and unstable.
[0017] Figure 1 This is a figure illustrating a GNSS receiver 100 according to one embodiment. The GNSS receiver 100 may include a signal processing unit 150 and a PVT calculation unit 200. The signal processing unit 150 may include a series-coupled signal input unit 110, a baseband signal processing unit 120, and a baseband observation processing unit 130. According to one embodiment, the signal processing unit 150 can receive and process RF navigation signals from GNSS satellites and can output observations and ephemeris corresponding to the satellites, respectively.
[0018] Figure 2 This is a diagram illustrating a PVT calculation device 200 in a GNSS receiver 100 according to one embodiment. The PVT calculation device 200 may include a preprocessing module 21, an observation equation forming module 22 coupled to the preprocessing module 21, a least squares solving module 23 coupled to the observation equation forming module 22 and a first convergence detector 24, a random sampling iterative Kalman filter (RSIKF) 25 coupled to the observation equation forming module 22 and a second convergence detector 27, and a postprocessing module 26 coupled to the least squares solving module 23 and the RSIKF 25.
[0019] The preprocessing module 21 can receive observations and ephemeris, obtain satellite positioning data (e.g., PVT data), and obtain the predicted PVT results from the receiver 100.
[0020] The preprocessing module 21 can roughly screen observations and ephemeris based on gross error detection of the original measurements and ephemeris validity detection to obtain valid observations and ephemeris. For example, the preprocessing module 21 receives 20 observations and ephemeris from 20 satellites, and based on the gross error detection and ephemeris validity detection of the original measurements, filters out 2 invalid observations and ephemeris received from 2 corresponding satellites, thereby obtaining 18 valid observations and ephemeris, which are then sent to the observation equation forming module 22.
[0021] The observation equation forming module 22 can establish observation equations corresponding to the satellites based on the satellite's PVT data and the receiver 100's predicted PVT results. For example, the observation equation forming module 22 can establish 18 observation equations corresponding to 18 satellites based on the satellite's PVT data and the receiver 100's predicted PVT results. The satellite's PVT data can include raw observation data and ephemeris data obtained from the satellites.
[0022] The least squares solution module 23 can receive the observation equation and use the observation equation to calculate the first estimated PVT result of the receiver.
[0023] The RSIKF25 can receive observation equations, iteratively eliminate faulty observation equations from the observation equations in the inner point subset until no faulty observation equations are detected in the inner point subset, and use the observation equations to calculate the receiver's second estimated PVT result.
[0024] The post-processing module 26 can output the final estimated PVT result of the receiver. The final estimated PVT result of the receiver can be the first estimated PVT result of the receiver calculated by the least squares solution module 23 using the observation equation, or it can be the second estimated PVT result of the receiver calculated by RSIKF25 using the observation equation.
[0025] Figure 3 This is a diagram illustrating a Kalman filtering algorithm 300 for calculating the PVT results of receiver 100 according to one embodiment. In one embodiment, such as Figure 2 The RSIKF25 shown can be used as follows Figure 3 The Kalman filter algorithm 300 shown is used to calculate the PVT result of receiver 100. In one embodiment, algorithm 300 may be stored in the memory of RSIKF25 in PVT calculation device 200. The following explains how algorithm 300 works to calculate the PVT result of receiver 100.
[0026] In box 30, the observation equation forming module 22 can establish observation equations corresponding to the satellite based on the satellite's PVT data and the receiver 100's predicted PVT results, respectively.
[0027] For example, 18 observation equations can be established based on, for example, 18 valid observations received from, for example, 18 satellites and, for example, 18 sets of ephemeris, and can be used to calculate the PVT results of receiver 100.
[0028] In box 31, algorithm 300 checks whether the current iteration is the first iteration. If it is, the algorithm proceeds to box 32; otherwise, if it is not, the algorithm proceeds to box 33.
[0029] In box 32, RSIKF25 randomly samples a first number of observation equations from the observation equations as internal equations into the internal point subset, and a second number of observation equations from the observation equations as external equations into the external point subset. The internal and external point subsets can be stored in RSIKF25.
[0030] For example, RSIKF25 can randomly sample 10 of the 18 valid observation equations as internal observation equations in the internal point subset, and place the remaining 8 as external observation equations in the external point subset. In this way, the 18 valid observation equations are randomly allocated in box 32 into 10 internal observation equations and 8 external observation equations.
[0031] In box 34, RSIKF25 randomly sorts the internal observation equations in the subset of internal points. For example,
[0032] RSIKF25 can randomly sort 10 internal observation equations in an internal point subset.
[0033] In box 35, the RSIKF25 sequentially chi-squares the internal observation equations in the internal point subset. If one or more fault internal observation equations are detected by chi-square in the internal point subset, the RSIKF25 moves those one or more fault internal observation equations from the internal point subset to the external point subset.
[0034] For example, the RSIKF25 can sequentially chi-square test 10 internal observation equations in an internal point subset. For instance, if three fault internal observation equations are detected chi-squarely in the internal point subset, the RSIKF25 will move these three fault internal observation equations from the internal point subset to the external point subset.
[0035] Then, in box 35, if the first internal observation equation in the subset of internal points (e.g., there are 10 internal observation equations at the beginning) passes the RSIKF chi-square test, the first internal observation equation will update the receiver's predicted PVT result to form the receiver's updated PVT result.
[0036] Next, in box 35, if a subsequent (e.g., the second) internal observation equation passes the RSIKF chi-square test, the subsequent internal observation equation updates the receiver's updated PVT result. This process in box 35 is performed one by one on the other internal observation equations of the 10 internal observation equations in the internal point subset.
[0037] Finally, in box 35, if the last internal observation equation (e.g., the tenth) passes the RSIKF chi-square test, the last internal observation equation updates the receiver's updated PVT result.
[0038] In this way, the receiver's predicted PVT results are updated by each internal observation equation in the subset of internal points detected by RSIKF chi-square test, forming the receiver's latest updated PVT results.
[0039] In box 36, the RSIKF25 performs a chi-square test on the second number of observation equations in the 36-outer-point subset. If one or more high-quality external observation equations are detected by the chi-square test in the outer-point subset, the RSIKF25 moves those one or more high-quality external observation equations from the outer-point subset to the inner-point subset. For example, if two high-quality external observation equations are detected by the chi-square test in an outer-point subset with eight external observation equations, the RSIKF25 moves those two high-quality external observation equations from the outer-point subset to the inner-point subset.
[0040] In this way, each high-quality external observation equation in the external subset detected by RSIKF chi-square is moved from the external subset to the internal subset.
[0041] In box 37, at the end of the current iteration, the RSIKF convergence test is set to false if at least one observation equation that moves between the inlier and outer subsets is detected in the current iteration. Otherwise, the RSIKF convergence test is set to true if no equation that moves between the inlier and outer subsets is detected in the current iteration. Afterward, the current iteration is completed.
[0042] For example, in the current iteration, the RSIKF convergence detection is set to false because three faulty internal observation equations that move from the internal subset to the external subset and two high-quality external observation equations that move from the external subset to the internal subset are detected.
[0043] If the RSIKF convergence detection is false, Kalman filter algorithm 300 will continue running subsequent iterations starting from box 31. The subsequent iterations are described below.
[0044] In box 31, algorithm 300 checks that the subsequent iteration is not the first (or initial) iteration, and therefore proceeds to box 33.
[0045] In box 33, RSIKF25 is used to adjust the inner and outer point subsets in subsequent iterations.
[0046] In box 34, in subsequent iterations, RSIKF25 randomly sorts the adjusted interior observation equations in the adjusted interior subset 34 according to their order. For example, in subsequent iterations, RSIKF randomly sorts the nine adjusted interior observation equations in the adjusted interior subset according to their order.
[0047] In box 35, in subsequent iterations, RSIKF25 sequentially detects the adjusted internal observation equations (e.g., 9 adjusted internal observation equations) in the adjusted internal point subset.
[0048] The operations performed in box 35 regarding subsequent iterations are the same as those performed in box 35 regarding the first iteration.
[0049] For example, in block 35, in a subsequent iteration, the predicted PVT result from the receiver in preprocessing module 21 is updated using the first internal observation equation detected by RSIKF chi-square detection to form the updated PVT result for the receiver. Next, in block 35, in a subsequent iteration, the updated PVT result for the receiver is updated using the subsequent internal observation equation detected by RSIKF chi-square detection. Finally, in block 35, in a subsequent iteration, the updated PVT result for the receiver is finally updated using the last internal observation equation detected by RSIKF chi-square detection.
[0050] In box 36, in subsequent iterations, the RSIKF chi-square test detects external observation equations in the external point subset to find one or more high-quality external observation equations to move to the internal point subset.
[0051] In box 37, the RSIKF convergence detection is set to false or true in subsequent iterations based on whether at least one observation equation is found to move between the inlier and outlier subsets in subsequent iterations. If the RSIKF convergence detection is false in a subsequent iteration, another subsequent iteration is performed until the RSIKF convergence detection is true.
[0052] In one embodiment, in response to a true RSIKF convergence detection, the RSIKF25 outputs an updated PVT result for the receiver, which is calculated by the RSIKF25 as the final estimated PVT result for the receiver. In this way, the RSIKF can calculate improved positioning results for the receiver with higher accuracy and robustness.
[0053] In one embodiment, in response to a false RSIKF convergence detection after a finite number of iterations (e.g., 20), the post-processing module 26 outputs a first estimated PVT result for the receiver, which is calculated by the least squares solution module 23 and used as the final estimated PVT result for the receiver. Thus, when the second estimated PVT result for the receiver calculated by RSIKF 25 becomes unusable due to a false final result of the RSIKF convergence detection, the first estimated PVT result for the receiver calculated by the least squares solution module 23 can be used as a backup.
[0054] Kalman filter algorithm 300 is a random sampling iterative filtering algorithm. It initially samples the observation equations into an inner point subset. In each iteration, the inner observation equations within the inner point subset are randomly sorted. Faulty inner observation equations are iteratively eliminated from the inner point subset in each iteration. Furthermore, each inner observation equation detected by RSIKF chi-square test continuously updates the receiver's predicted PVT results obtained from the preprocessing module. Therefore, Kalman filter algorithm 300 can improve the accuracy and stability of the receiver's PVT results, especially when the receiver is located on a path significantly affected by multiple delays, such as those caused by urban high-rise buildings, overpasses, and canyons. The route of the vehicle carrying the GNSS receiver 100 can be changed based on the receiver's final estimated PVT results.
[0055] Figure 4 This is a diagram illustrating a method 400 for calculating the PVT results of a receiver 100 using a PVT calculation device 200 according to one embodiment. Figure 2 As shown, the PVT computing device 200 may include a preprocessing module 21, an observation equation forming module 22 coupled to the preprocessing module 21, a least squares solution module 23 coupled to the first convergence detector 24 and the observation equation forming module 22, an RSIKF 25 coupled to the second convergence detector 27 and the observation equation forming module 22, and a postprocessing module 26 coupled to the least squares solution module 23 and the RSIKF 25.
[0056] The following describes a method 400 for calculating the PVT result of receiver 100 using PVT calculation device 200 according to one embodiment.
[0057] In frame 401, the preprocessing module 21 receives the satellite's observations and ephemeris, and obtains the satellite's PVT data and the receiver's PVT prediction results 401.
[0058] In box 402, the observation equation forming module 22 establishes observation equations 402 corresponding to the satellite based on the satellite's PVT data and the receiver's predicted PVT results.
[0059] In block 403, the first estimated PVT result 403 of the receiver is calculated by least squares solution module 23 based on the observation equation.
[0060] In box 404, fault observation equations are iteratively eliminated from the observation equations in the inner point subset using RSIKF25 until fault observation equation 404 is no longer detected in the inner point subset.
[0061] In box 405, the second estimated PVT result 405 of the receiver is calculated using the observation equations in the inner point subset via RSIKF25.
[0062] In block 406, the final estimated PVT result 406 of the receiver is output by post-processing module 26.
[0063] In one embodiment, in the first iteration 31, RSIKF25 randomly samples a first number of observation equations into the inner point subset 32 and places the remaining second number of observation equations into the outer point subset.
[0064] In the first iteration, RSIKF25 randomly sorts the internal observation equations in the internal point subset 34.
[0065] In the first iteration, the RSIKF25 sequentially chi-squares the internal observation equations in the 35-point subset. When one or more fault internal observation equations are detected in the internal subset, the RSIKF25 moves the one or more fault internal observation equations from the internal subset to the external subset.
[0066] In the first iteration, the RSIKF25 chi-squares detects the second number of observation equations in the 36-outside-point subset, and when at least one high-quality external observation equation is detected in the outside-point subset, the RSIKF25 moves that at least one high-quality external observation equation from the outside-point subset to the inside-point subset.
[0067] refer to Figure 3 and Figure 4 This further explains how RSIKF25 calculates the receiver's second estimated PVT result. In the first iteration, in response to the detection of the first internal observation equation detected by RSIKF chi-square detection, this first internal observation equation updates the receiver's predicted PVT result to form the updated PVT result for the receiver. Next, in response to the detection of a subsequent internal observation equation detected by RSIKF chi-square detection, this subsequent internal observation equation updates the receiver's updated PVT result. Finally, in response to the detection of the last internal observation equation detected by RSIKF chi-square detection, this last internal observation equation updates the receiver's updated PVT result.
[0068] In one embodiment, the RSIKF convergence detection is set to false when at least one equation in the observation equations that moves between the interior and exterior subsets is found in the current iteration of the first iteration, and the RSIKF convergence detection is set to true when no equation that moves between the interior and exterior subsets is found in the first iteration.
[0069] If the RSIKF convergence detection is false, subsequent iterations will continue. In subsequent iterations, RSIKF first adjusts the interior and exterior subsets. Then, RSIKF randomly sorts the interior observation equations in the adjusted interior subset. Next, RSIKF performs a sequential chi-square test on the interior observation equations in the adjusted interior subset. When one or more fault interior observation equations are detected in the adjusted interior subset, RSIKF moves those equations from the adjusted interior subset to the adjusted exterior subset.
[0070] In subsequent iterations, the receiver's predicted PVT results obtained from preprocessing module 21 are updated using another first internal observation equation of chi-square detection by RSIKF to form further updated PVT results for the receiver. Next, the receiver's further updated PVT results are updated using another subsequent internal observation equation of chi-square detection by RSIKF. Finally, the receiver's further updated PVT results are updated using another final internal observation equation of chi-square detection by RSIKF.
[0071] In subsequent iterations, RSIKF chi-square detection is performed on the external observation equations in the adjusted external point subset. Upon detecting at least one high-quality external observation equation in the adjusted external point subset, RSIKF moves that high-quality external observation equation from the adjusted external point subset to the adjusted internal point subset.
[0072] In subsequent iterations, whether to continue with another iteration depends on whether at least one observation equation is found to move between the adjusted subsets of interior and exterior points. Iteration will continue until no observation equation is found to move between the adjusted subsets of interior and exterior points.
[0073] If no observation equation that moves between the adjusted subset of inlets and outlets is found in subsequent iterations, the post-processing module 26 outputs the updated PVT result from the receiver as the receiver's final estimated PVT result to the outside. If at least one observation equation that moves between the adjusted subset of inlets and outlets is found in subsequent iterations, further subsequent iterations will be executed.
[0074] In one embodiment, after a finite number of iterations (e.g., 30), when at least one observation equation is found to move between the adjusted subset of interior and exterior points, the post-processing module 26 outputs the receiver's first estimated PVT result as the receiver's final estimated PVT result to the outside.
[0075] Figure 5 This is a block diagram 500 illustrating a software architecture 504 that can be installed on any one or more wireless smart devices (e.g., smart sockets) described herein. The software architecture 504 is supported by hardware such as a machine 502 including a processor 520, memory 526, and I / O components 538. In this example, the software architecture 504 can be conceptualized as a stack of layers, each providing specific functionality. The software architecture 504 includes layers such as an operating system 512, libraries 510, frameworks 508, and applications 506. Operationally, the application 506 invokes API calls 550 through the software stack and receives messages 552 in response to API calls 550.
[0076] Operating system 512 manages hardware resources and provides public services. Operating system 512 includes, for example, a kernel 514, services 516, and drivers 522. Kernel 514 acts as an abstraction layer between the hardware layer and other software layers. For example, kernel 514 provides memory management, processor management (e.g., scheduling), component management, network and security settings, and other functions. Services 516 can provide other public services to other software layers. Driver 522 is responsible for controlling or interfacing with the underlying hardware. For example, driver 522 may include a display driver, a camera driver, a Bluetooth driver, etc. or Bluetooth Low Energy Drives, flash drives, serial communication drives (e.g., USB drives), Drivers, audio drivers, power management drivers, etc.
[0077] Library 510 provides common low-level infrastructure used by application 506. Library 510 may include system libraries 518 (e.g., the C standard library), which provide functions such as memory allocation, string manipulation, and mathematical functions. Furthermore, library 510 may include API libraries 524 such as media libraries (e.g., libraries for supporting the rendering and manipulation of various media formats, such as Moving Picture Experts Group 4 (MPEG4), Advanced Video Coding (H.264 or AVC), Layer 3 Moving Picture Experts Group (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codecs, Joint Picture Experts Group (JPEG or JPG) or Portable Web Graphics (PNG), graphics libraries (e.g., OpenGL frameworks for rendering two-dimensional (2D) and three-dimensional (3D) content on a display), database libraries (e.g., SQLite providing various relational database functions), web libraries (e.g., WebKit for providing web browsing capabilities), and so on. Library 510 may also include various other libraries 528 to provide many other APIs to application 506.
[0078] Framework 508 provides common high-level infrastructure for use by application 506. For example, framework 508 provides various graphical user interface (GUI) functions, advanced resource management, and advanced location services. Framework 508 can provide a broad spectrum of other APIs that can be used by application 506, some of which may be specific to a particular operating system or platform.
[0079] In one example, application 506 may include a home application 536, a contacts application 530, a browser application 532, a book reader application 534, a location application 542, a media application 544, a messaging application 546, a game application 548, and a wide variety of other applications such as third-party application 540. Application 506 is a program that performs functions defined in a program. Various programming languages can be used to create one or more applications 506 constructed in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a particular example, third-party application 540 (e.g., an application developed by an entity other than a vendor of a particular platform using an ANDROID™ or IOS™ software development kit (SDK)) may be mobile software running on a mobile operating system, such as IOS™, ANDROID™, etc. Or other mobile operating systems. In this example, a third-party application 540 can invoke API calls 550 provided by the operating system 512 to facilitate the functionality described herein.
[0080] Features and aspects of various embodiments may be integrated into other embodiments, and the embodiments shown in this document may be implemented without showing or describing all features or aspects.
[0081] Those skilled in the art will understand that while specific examples and embodiments of the systems and methods have been described for illustrative purposes, various modifications may be made without departing from the spirit and scope of this application. Furthermore, features of one embodiment may be incorporated into other embodiments, even if such features are not described together in a single embodiment of this specification. Therefore, this application is described by the appended claims.
Claims
1. A position-velocity-time, PVT, computation device (200) in a global navigation satellite system, GNSS, receiver (100), characterized by, comprises: a memory; and one or more processors in communication with the memory, the one or more processors configured to perform operations comprising: receiving observations and ephemeris of satellites to obtain PVT data of the satellites and predicted PVT results of the receiver; establishing observation equations corresponding to the satellites respectively according to the PVT data of the satellites and the PVT predicted results of the receiver; calculating first PVT estimation results of the receiver by a least square algorithm based on the observation equations; adopting a random sampling iterative Kalman filter (RSIKF) algorithm to iteratively eliminate faulty observation equations from observation equations in an inlier subset until no faulty observation equation is detected in the inlier subset; adopting the RSIKF algorithm to calculate second estimation PVT results of the receiver using observation equations in the inlier subset; and outputting final estimation PVT results of the receiver; wherein iteratively eliminating faulty observation equations from observation equations in an inlier subset comprises: in a first iteration (31), randomly sampling (32) a first number of observation equations into the inlier subset and placing a remaining second number of observation equations into an outlier subset; in the first iteration, randomly ordering (34) the inlier observation equations in the inlier subset in order; in the first iteration, sequentially performing a sequential chi-squared test (35) on the inlier observation equations in the inlier subset, wherein upon detecting one or more faulty inlier observation equations in the inlier subset, the one or more faulty inlier observation equations are moved from the inlier subset to the outlier subset; and in the first iteration, performing a chi-squared test (36) on the second number of observation equations in the outlier subset, wherein upon detecting at least one good outlier observation equation in the outlier subset, the at least one good outlier observation equation is moved from the outlier subset to the inlier subset.
2. The PVT calculation apparatus of claim 1, wherein, calculating second estimation PVT results of the receiver using the remaining observation equations comprises: in the first iteration, in response to detecting a first inlier observation equation passing the RSIKF chi-squared test, updating the predicted PVT results of the receiver by the first inlier observation equation to form updated PVT results of the receiver, in the first iteration, in response to detecting a subsequent inlier observation equation passing the RSIKF chi-squared test, updating the updated PVT results of the receiver by the subsequent inlier observation equation, and in the first iteration, in response to detecting a last inlier observation equation passing the RSIKF chi-squared test, updating the updated PVT results of the receiver by the last inlier observation equation.
3. The PVT calculation apparatus of claim 2, wherein, setting a RSIKF convergence detection to false when at least one equation in the observation equations is found to be moved between the inlier subset and the outlier subset in a current iteration in the first iteration, and setting the RSIKF convergence detection to true when no equation is found to be moved between the inlier subset and the outlier subset in the first iteration.
4. The PVT calculation apparatus of claim 3, wherein, further comprising: in a subsequent iteration, adjusting (33) the inner point subset and the outer point subset if the RSIKF convergence detection setting is false after the first iteration; in the subsequent iteration, sequentially randomly ordering (34) the internal observation equations in the adjusted inner point subset by the RSIKF algorithm; in the subsequent iteration, sequentially performing sequential chi-squared detection (35) on the internal observation equations in the adjusted inner point subset by the RSIKF algorithm, wherein another first internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the predicted PVT result of the receiver to form another updated PVT result of the receiver, wherein another subsequent internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the another updated PVT result of the receiver, and wherein another last internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the another updated PVT result of the receiver; in the subsequent iteration, moving one or more faulty internal observation equations from the adjusted inner point subset to the adjusted outer point subset when the one or more faulty internal observation equations are detected in the adjusted inner point subset; in the subsequent iteration, performing chi-squared detection (36) on the external observation equations in the adjusted outer point subset, wherein at least one good external observation equation is moved from the adjusted outer point subset to the adjusted inner point subset when the at least one good external observation equation is detected in the adjusted outer point subset; and in the subsequent iteration, determining whether to continue another subsequent iteration based on whether at least one observation equation is found to be moved between the adjusted inner point subset and the outer point subset, wherein the iteration continues until no observation equation is found to be moved between the adjusted inner point subset and the outer point subset.
5. The PVT calculation apparatus of claim 4, wherein, when no observation equation is found to be moved between the adjusted inner point subset and the outer point subset in the subsequent iteration, the updated PVT result of the receiver is outputted externally as a final estimated PVT result of the receiver, and wherein another subsequent iteration is performed when at least one observation equation is found to be moved between the adjusted inner and outer point subsets in the subsequent iteration.
6. The PVT calculation apparatus of claim 5, wherein, after a finite number of iterations, when at least one observation equation is found to be moved between the adjusted inner point subset and the outer point subset, the first estimated PVT result of the receiver is outputted externally as a final estimated PVT result of the receiver.
7. A computer-implemented method (400) of calculating a position-velocity-time (PVT) result for a receiver (100) using a PVT calculating device (200), characterized in that, The method comprises: receiving observations and ephemeris of a satellite to obtain PVT data of the satellite and a predicted PVT result of the receiver; establishing observation equations corresponding to the satellite respectively according to the PVT data of the satellite and the PVT predicted result of the receiver; calculating a first estimated PVT result of the receiver by a least squares algorithm based on the observation equations; using a random sampling and iterative Kalman filter (RSIKF) algorithm to iteratively remove faulty observation equations from the observation equations in the inlier subset until no faulty observation equations are detected in the inlier subset; using the RSIKF algorithm to calculate a second estimated PVT result for the receiver using the observation equations in the inlier subset; and outputting a final estimated PVT result for the receiver; wherein iteratively removing faulty observation equations from the observation equations in the inlier subset comprises: in a first iteration (31), randomly sampling (32) a first number of observation equations into the inlier subset and placing a second number of remaining observation equations into an outlier subset; in the first iteration, randomly ordering (34) the inlier observation equations in the inlier subset in order; in the first iteration, sequentially performing a sequential chi-squared test (35) on the inlier observation equations in the inlier subset, wherein upon detecting one or more faulty inlier observation equations in the inlier subset, moving the one or more faulty inlier observation equations from the inlier subset to the outlier subset; and in the first iteration, performing a chi-squared test (36) on the second number of observation equations in the outlier subset, wherein upon detecting at least one good outlier observation equation in the outlier subset, moving the at least one good outlier observation equation from the outlier subset to the inlier subset.
8. The computer-implemented method of claim 7, wherein, calculating a second estimated PVT result for the receiver using the remaining observation equations by the RSIKF algorithm comprises: in the first iteration, in response to detecting a first inlier observation equation by the RSIKF chi-squared test, updating a predicted PVT result for the receiver by the first inlier observation equation to form an updated PVT result for the receiver, in the first iteration, in response to detecting a subsequent inlier observation equation by the RSIKF chi-squared test, updating the updated PVT result for the receiver by the subsequent inlier observation equation, and in the first iteration, in response to detecting a last inlier observation equation by the RSIKF chi-squared test, updating the updated PVT result for the receiver by the last inlier observation equation.
9. The computer-implemented method of claim 8, wherein, setting a RSIKF convergence detection to false when at least one equation in the observation equations is found to move between the inlier and outlier subsets in a current iteration in the first iteration, and setting the RSIKF convergence detection to true when no equations are found to move between the inlier and outlier subsets in the first iteration.
10. The computer-implemented method of claim 9, wherein, further comprising: in a subsequent iteration, if the RSIKF convergence detection is set to false after the first iteration, adjusting (33) the inlier subset and the outlier subset by the RSIKF; in the subsequent iteration, randomly ordering (34) the inlier observation equations in the adjusted inlier subset in order by the RSIKF algorithm; and in the subsequent iteration, sequentially performing a sequential chi-squared test (35) on the inlier observation equations in the adjusted inlier subset by the RSIKF algorithm, wherein upon detecting one or more faulty inlier observation equations in the adjusted inlier subset, moving the one or more faulty inlier observation equations from the adjusted inlier subset to the outlier subset. in the subsequent iterations, sequentially performing sequential chi-squared detection (35) on the internal observation equations in the adjusted inlier subset by the RSIKF algorithm, wherein when one or more faulty internal observation equations in the adjusted inlier subset are detected, the one or more faulty internal observation equations are moved from the adjusted inlier subset to the adjusted outlier subset; wherein a first other internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the predicted PVT result of the receiver to form a first other updated PVT result of the receiver, wherein a subsequent other internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the first other updated PVT result of the receiver, and wherein a last other internal observation equation updated by the chi-squared detection of the RSIKF algorithm updates the first other updated PVT result of the receiver; in the subsequent iterations, performing chi-squared detection (36) on the external observation equations in the adjusted outlier subset by the RSIKF algorithm, wherein when at least one high-quality external observation equation in the adjusted outlier subset is detected, the at least one high-quality external observation equation is moved from the adjusted outlier subset to the adjusted inlier subset; and in the subsequent iterations, determining whether to continue another subsequent iteration based on whether at least one observation equation is found to be moved between the adjusted inlier subset and the adjusted outlier subset, wherein the iterations continue until no observation equation is found to be moved between the adjusted inlier subset and the adjusted outlier subset.
11. The computer-implemented method of claim 10, wherein, when no observation equation is found to be moved between the adjusted inlier subset and the adjusted outlier subset in the subsequent iterations, the updated PVT result of the receiver is outputted externally as a final estimated PVT result of the receiver, and wherein when at least one observation equation is found to be moved between the adjusted inlier subset and the adjusted outlier subset in the subsequent iterations, another subsequent iteration is performed.
12. The computer-implemented method of claim 11, wherein, after a finite number of iterations, when at least one observation equation is found to be moved between the adjusted inlier subset and the adjusted outlier subset, the first estimated PVT result of the receiver is outputted externally as a final estimated PVT result of the receiver.
13. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a position-velocity-time (PVT) computation device (200) in a global navigation satellite system (GNSS) receiver (100), cause the PVT computation device to perform operations comprising: receiving observations and ephemeris of satellites to obtain PVT data of the satellites and a predicted PVT result of the receiver; establishing observation equations corresponding to the satellites, respectively, according to the PVT data of the satellites and the PVT predicted result of the receiver; calculating a first PVT estimation result of the receiver by a least squares algorithm based on the observation equations; iteratively eliminating faulty observation equations from the observation equations of the inlier subset using a random sampling and iterative Kalman filter (RSIKF) algorithm until no faulty observation equations are detected in the inlier subset; calculating a second estimated PVT result for the receiver using the observation equations in the inlier subset via the RSIKF algorithm; and outputting a final estimated PVT result for the receiver; wherein iteratively eliminating faulty observation equations from the observation equations of the inlier subset includes: in a first iteration (31), randomly sampling (32) a first number of observation equations into the inlier subset and placing a second number of remaining observation equations into an outlier subset; in the first iteration, randomly ordering (34) the internal observation equations in the inlier subset in order; in the first iteration, sequentially performing a sequential chi-squared test (35) on the internal observation equations in the inlier subset, wherein upon detecting one or more faulty internal observation equations in the inlier subset, moving the one or more faulty internal observation equations from the inlier subset to the outlier subset; and in the first iteration, performing a chi-squared test (36) on the second number of observation equations in the outlier subset, wherein upon detecting at least one good external observation equation in the outlier subset, moving the at least one good external observation equation from the outlier subset to the inlier subset.
14. The non-transitory computer-readable medium storing instructions of claim 13, wherein, changing a heading of a vehicle carrying the GNSS receiver based on the final estimated PVT result for the receiver.
15. The non-transitory computer-readable medium storing instructions of claim 13, wherein, calculating a second estimated PVT result for the receiver using the remaining observation equations via the RSIKF algorithm includes: in the first iteration, in response to detecting a first internal observation equation via the RSIKF chi-squared test, updating a predicted PVT result for the receiver via the first internal observation equation to form an updated PVT result for the receiver, in the first iteration, in response to detecting a subsequent internal observation equation via the RSIKF chi-squared test, updating the updated PVT result for the receiver via the subsequent internal observation equation, and in the first iteration, in response to detecting a last internal observation equation via the RSIKF chi-squared test, updating the updated PVT result for the receiver via the last internal observation equation.
16. The non-transitory computer-readable medium storing instructions of claim 15, wherein, further comprising: in a subsequent iteration, if a RSIKF convergence test is set to false after the first iteration, adjusting (33) the inlier subset and the outlier subset via the RSIKF algorithm; in the subsequent iteration, randomly ordering (34) the internal observation equations in the adjusted inlier subset in order via the RSIKF algorithm; in the subsequent iteration, sequentially performing a sequential chi-squared test (35) on the internal observation equations in the adjusted inlier subset via the RSIKF algorithm, in the subsequent iteration, sequentially performing a sequential chi-squared test (35) on the internal observation equations in the adjusted inlier subset via the RSIKF algorithm, wherein upon detection of one or more faulty internal observation equations in the adjusted internal subset, the one or more faulty internal observation equations are moved from the adjusted internal subset to the adjusted external subset; wherein another first internal observation equation update, via chi-squared detection of the RSIKF algorithm, the predicted PVT result of the receiver to form another updated PVT result of the receiver, wherein another subsequent internal observation equation update, via chi-squared detection of the RSIKF algorithm, the another updated PVT result of the receiver, and wherein another last internal observation equation update, via chi-squared detection of the RSIKF algorithm, the another updated PVT result of the receiver; in the subsequent iteration, external observation equations in the adjusted external subset are adjusted via RSIKF algorithm chi-squared detection (36), wherein upon detection of at least one high quality external observation equation in the adjusted external subset, the at least one high quality external observation equation is moved from the adjusted external subset to the adjusted internal subset; and in the subsequent iteration, based on whether at least one observation equation is found to be moved between the adjusted internal and external subsets, a determination is made as to whether to continue another subsequent iteration, wherein iteration continues until no observation equations are found to be moved between the adjusted internal and external subsets.
17. The non-transitory computer-readable medium storing instructions of claim 16, wherein, when no observation equations are found to be moved between the adjusted internal and external subsets in the subsequent iteration, the updated PVT result of the receiver is output externally as a final estimated PVT result of the receiver, and wherein when at least one observation equation is found to be moved between the adjusted internal and external subsets in the subsequent iteration, another subsequent iteration is performed.
Citation Information
Patent Citations
GNSS (Global Navigation Satellite System) single-point dynamic positioning method based on improved expanded Kalman filtering
CN102928858A
RAIM algorithm in satellite navigation system based on Kalman filtering
CN105487088A