Patent Description:
Additionally, some navigation systems are used in safety-critical navigation applications. In safety-critical navigation applications, it is important to ensure that the sensors are providing reliable measurements. Accordingly, the measurements and other output provided by the sensors may be continuously monitored to gauge the health of the sensors and the integrity of measurements provided by the sensors in the navigation system.

Frequently, monitoring the health and integrity of the sensors within the navigation system is achieved by exploiting the redundancy in the sensor measurements provided by the various sensors, and by using probabilistic algorithms to detect faults and estimate kinematic errors during fault free operations. One example of a method used to monitor the integrity of measurements used by a navigation system is a solution separation method. <CIT> relates to the detection and corrections of anomalous measurements and ambiguity resolution.

The invention is set out as in the independent claims. Optional features are set out as in the dependent claims.

Understanding that the drawings depict only some embodiments and are not therefore to be considered limiting in scope, the exemplary embodiments will be described with additional specificity and detail using the accompanying drawings, in which:.

In accordance with common practice, the various described features are not drawn to scale but are drawn to emphasize specific features relevant to the example embodiments.

In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific illustrative embodiments. However, it is to be understood that other embodiments may be utilized and that logical, mechanical, and electrical changes may be made.

Systems and methods for pre-filtering measurements for use in a solution separation framework are described herein. In particular, using acquired measurements, an auxiliary filter is processed. Methods and systems described herein may be applicable for addressing measurements with a common error source which common errors cannot be predicted with sufficient quality, i.e. the GNSS receiver clock error in GNSS measurements. The auxiliary filter calculates a single difference on measurements and then applies innovation sequence monitoring to the single difference. Based on the applied innovation sequence, the system identifies faulty measurements. The faulty measurements are then excluded from a subsequently processed solution separation algorithm. For example, a processing unit may exclude the faulty measurements from subsequently processed main filters, sub-filters, and sub-sub-filters when executing a solution separation algorithm for faults detection and exclusion. By calculating a single difference and then applying innovation sequence monitoring to the single difference to identify faulty measurements, a processing unit may remove the effects of some errors that affect the received measurements.

<FIG> is a block diagram of a navigation system <NUM> that is capable of pre-filtering measurements for use in a solution separation framework. The navigation system <NUM> may be mounted to a vehicle, such as an aircraft, sea craft, spacecraft, automobile, or other type of vehicle. Alternatively, the navigation system <NUM> may be located on or as part of a movable object, such as a phone, personal electronics, land surveying equipment, or other object that is capable of being moved from one location to another. Additionally, the navigation system <NUM> acquires navigation information from a plurality of different sources. To handle the acquired navigation information, the navigation system <NUM> may include a navigation computer <NUM>. The navigation computer <NUM> may further include at least one processing unit <NUM> and at least one memory unit <NUM>.

In certain embodiments, the navigation system <NUM> may acquire navigation information that includes inertial motion information. To acquire the inertial motion information, the navigation system <NUM> may include inertial sensors <NUM> that measure and sense the inertial motion of the object mounted to the navigation system <NUM>. For example, the navigation system <NUM> may be an inertial navigation system (INS) that receives raw inertial data from a combination of inertial sensors <NUM>, such as gyroscopes and accelerometers. Alternatively, the inertial sensors <NUM> may be an INS that provides processed inertial navigation data acquired from inertial measurements to the navigation computer <NUM>.

In further embodiments, the navigation system <NUM> may include a number of additional sensors that can provide navigation data. For example, the navigation system <NUM> may include one or more other sensors <NUM>. For example, the one or more other sensors <NUM> may include a vertical position sensor such as an altimeter. Also, the one or more other sensors <NUM> may include electro-optical sensors, magnetometers, barometric sensors, velocimeters, and/or other types of sensors.

In certain embodiments, the navigation system <NUM> may use GNSS measurements to determine navigation information, the navigation system <NUM> may include a GNSS receiver <NUM> with at least one antenna <NUM> that receives satellite signals from multiple GNSS satellites that are observable to the at least one antenna <NUM>. For example, during operation, the GNSS receiver <NUM> may receive GNSS satellite signals from the presently observable GNSS satellites. As used herein, the GNSS satellites may be any combination of satellites that provide navigation signals. For example, the GNSS satellites may be part of the global positioning system (GPS), GLONASS, Galileo system, COMPASS (BeiDou), or other system of satellites that form part of a GNSS. The GNSS satellites may provide information that can be used for navigational purposes. The processing unit <NUM> and GNSS receiver <NUM> may receive the satellite signals and extract position, velocity, and time data from the signals to acquire pseudorange measurements.

The processing unit <NUM> and/or other computational devices used in the navigation system <NUM>, management system <NUM>, or other systems and methods described herein may be implemented using software, firmware, hardware, or appropriate combination thereof. The processing unit <NUM> and other computational devices may be supplemented by, or incorporated in, specially-designed application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, the processing unit <NUM> and/or other computational devices may communicate through an additional transceiver with other computing devices outside of the navigation system <NUM>, such as those associated with the management system <NUM> or computing devices associated with other subsystems controlled by the management system <NUM>. The processing unit <NUM> and other computational devices can also include or function with software programs, firmware, or other computer readable instructions for carrying out various process tasks, calculations, and control functions used in the methods and systems described herein.

The methods described herein may be implemented by computer executable instructions, such as program modules or components, which are executed by at least one processor, such as the processing unit <NUM>. Generally, program modules include routines, programs, objects, data components, data structures, algorithms, and the like, which perform particular tasks or implement particular abstract data types.

Instructions for carrying out the various process tasks, calculations, and generation of other data used in the operation of the methods described herein can be implemented in software, firmware, or other computer readable instructions. These instructions are typically stored on appropriate computer program products that include computer readable media used for storage of computer readable instructions or data structures. Such a computer readable medium may be available media that can be accessed by a general purpose or special purpose computer or processor, or any programmable logic device. For instance, the memory unit <NUM> may be an example of a computer readable medium capable of storing computer readable instructions and/or data structures. Also, the memory unit <NUM> may store navigational information such as maps, terrain databases, magnetic field information, path data, and other navigation information.

Suitable computer readable storage media (such as the memory unit <NUM>) may include, for example, non-volatile memory devices including semi-conductor memory devices such as Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable ROM (EEPROM), or flash memory devices; magnetic disks such as internal hard disks or removable disks; optical storage devices such as compact discs (CDs), digital versatile discs (DVDs), Blu-ray discs; or any other media that can be used to carry or store desired program code in the form of computer executable instructions or data structures.

In certain embodiments, navigation measurements may be subject to various errors and faults. To account for faults that may exist in the measurements, the navigation computer <NUM> monitors the integrity of the various measurements used while navigating. The processing unit <NUM> receives signals from the GNSS receiver <NUM> conveying measurements associated with the different GNSS satellites in communication with the GNSS receiver <NUM>. The processing unit <NUM> monitors then the integrity of the signals. As used herein, integrity is a measure of the level of trust that can be placed in the correctness of the information supplied for use by a navigation system <NUM>. A system that performs integrity monitoring may monitor the integrity of the various measurements during the operation of the navigation system <NUM>. To perform integrity monitoring, systems may implement integrity monitoring algorithms.

Integrity monitoring algorithms are based on a solution separation methodology. In a solution separation methodology, a system (such as the navigation system <NUM>) determines a full solution and one or more sub-solutions, where the full solution is calculated based on information acquired from a set of information sources and the sub-solutions are calculated based on information acquired from subsets of the set of information sources. Using the full solution and the sub-solutions, a system determines the integrity of the full solution. For example, using the full solution and the sub-solutions, the system may determine whether or not a measurement is faulty. Additionally, executed integrity monitoring algorithms may calculate sub-sub-solutions that are solutions based on subsets of the subsets of the information used for each sub-solution. The executed integrity monitoring algorithm may use the sub-sub-solutions to identify which measurement sources are faulty and then exclude the measurements produced by faulty sources from calculations of navigation information.

The solution separation methodology is used to determine the integrity of solutions calculated using information acquired from GNSS navigation satellites. For example, the main position solution may incorporate a set of pseudoranges from available satellites that are integrated with inertial sensor measurements, where the sub-solutions are based on a subset of the pseudoranges from the available satellites and the sub-sub-solutions are based on subsets of the subsets of the pseudoranges. The system may then determine the protection levels for the main position solution based on differences or separations between the main position solution and the sub-solutions. Also, the system may exclude pseudoranges that are determined to be faulty. Additionally, the executed integrity monitoring algorithm may use full solution estimates, sub-solution estimates, dependence among the full solution and setoff sub-solutions, probabilities of missed detection, and probabilities of false alert to detect faults and compute protection levels.

In frequent embodiments, the navigation computer <NUM> may use filtering (such as Kalman filtering or other filtering technique) to combine measurements acquired through the GNSS receiver <NUM> with measurements acquired from the inertial sensors <NUM> and the other sensors <NUM>. When the navigation computer <NUM> uses a Kalman filter to combine measurements, the navigation computer <NUM> may use a dynamic model, control inputs of the navigation system <NUM>, and multiple sequential measurements acquired from the inertial sensors <NUM>, the other sensors <NUM>, and through the GNSS receiver <NUM> to form an estimate of navigation parameters for the navigation system <NUM> that is better than measurements acquired from any one of the individual measurement sources.

When implementing a Kalman filter, the navigation computer <NUM> (or other computing system in communication with the navigation computer <NUM>) may perform a prediction step and an update step. In the prediction step, the navigation computer <NUM> may predict a state estimate and an estimate covariance of a navigation solution for the navigation system <NUM>. In the update step, the navigation computer <NUM> may create weighted measurements by applying a Kalman gain to measurements acquired from the measurement sources and add the weighted measurements to the predicted state estimate calculated in the prediction step. Further, when performing the update step, the navigation computer <NUM> may calculate an innovation (also known as a residual). To calculate the innovation, the navigation computer <NUM> may compare the observed measurements against the predicted state estimates. While the calculations by navigation computer <NUM> have been described as applying to Kalman filtering, it may also apply to Extended Kalman filter (EKF), Unscented Kalman filter, and other statistical filters. For example, an EKF may be applied when integrating INS and GNSS measurements.

Frequently, hybrid systems that combine measurements like GNSS and INS measurements (like the navigation computer <NUM>) may perform innovation sequence monitoring. As described herein, innovation sequence monitoring may refer to the application of statistical tests on the calculated innovations or measurement residuals. For example, the navigation computer <NUM> may calculate the innovations and perform a chi-square, Gaussian, or other statistical test on the innovations. The navigation computer <NUM> may use the results from the innovation sequence monitoring to identify faulty or erroneous measurements and exclude those measurements from subsequent processing. However, when performing the innovation sequence monitoring with GNSS measurements, the confidence in the residual test may be very poor due to the prediction of GNSS receiver clocks. For example, when performing sequential measurement processing, a GPS receiver clock bias may be estimated based on a first processed measurement. If that first processed measurement is faulty or erroneous, the receiver clock bias estimate may cause the resultant navigation solution to also be faulty or erroneous.

In certain embodiments, the navigation computer <NUM> may remove the effects of GNSS receiver clock errors and/or other measurement common sources of errors by calculating a single difference and using the results of the single difference within an auxiliary filter. As used herein, a single difference refers to a difference between different measurements associated with different measurement sources. The navigation computer <NUM> calculates a single difference by calculating the differences between a measurement provided by a first measurement source and the measurements provided by the other measurement sources.

In certain embodiments, where the measurements are pseudoranges, the navigation computer <NUM> may calculate a single difference by calculating pseudorange measurement differences and using the results of the calculated pseudorange measurement differences within an auxiliary filter. As used herein, a pseudorange measurement difference may refer to a difference between pseudoranges associated with different satellites. For example, the navigation computer <NUM> may calculate a difference between a pseudorange associated with a first satellite and a pseudorange associated with a second satellite.

In certain embodiments, the navigation computer <NUM> implements the pseudorange measurement differences within an auxiliary filter by implementing a statistical filter for the pseudorange measurement differences processing. For example, the navigation computer <NUM> may calculate the differences between a first pseudorange and each of the other available pseudoranges. The navigation computer <NUM> may then calculate predicted states of the pseudorange measurement differences and calculate updates for the pseudorange measurement differences. As part of calculating the updates, the navigation computer <NUM> may perform innovation sequence monitoring on the pseudorange measurement differences.

As part of the innovation sequence monitoring, the navigation computer <NUM> may perform a statistical test to determine if the calculated innovations for any of the pseudorange measurement differences are indicative of errors or faults in the measurements acquired from the various GNSS satellites. For example, the navigation computer <NUM> may perform a chi-square test, a Gaussian test, comparison of the innovation to a threshold value, or other test on the innovations of the pseudorange measurement differences. If an innovation fails or part of the test fails, the navigation computer <NUM> may deploy logic to find the faulty pseudo range measurement. When the faulty pseudorange measurement is identified, the navigation computer <NUM> may exclude the faulty pseudorange measurement from subsequent calculations.

After performing the innovation sequence monitoring within the auxiliary filter, the navigation computer <NUM> proceeds then to performing the standard solution separation method using the pseudoranges that passed the statistical test. For example, if the navigation computer <NUM> determines that a pseudorange associated with the third of six satellites is faulty, the navigation computer <NUM> may then perform the solution separation method excluding the faulty pseudorange.

<FIG> is a diagram illustrating the use of an auxiliary filter <NUM> within a solution separation method. As shown, the calculation of the auxiliary filter <NUM> may be performed separately from the performed solution separation method. As described above, when executing the auxiliary filter <NUM>, the navigation computer <NUM> may perform innovation sequence monitoring on the pseudorange measurement differences. For example, as shown in <FIG>, there may be pseudorange measurements associated with six satellites. Accordingly, the navigation computer <NUM> may calculate the pseudorange measurement differences by individually subtracting the pseudorange measurements for the second through sixth satellites from the pseudorange measurement for the first satellite (<NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>, and <NUM>-<NUM>).

The navigation computer <NUM> may calculate a solution using a statistical filter using the pseudorange measurement differences, if the innovation fails a statistical test (like the chi-square test), the navigation computer <NUM> may execute logic to determine which satellites are providing faulty pseudorange measurements. When the navigation computer <NUM> determines that one or more satellites are providing faulty pseudorange measurements, the navigation computer <NUM> may then perform the solution separation method using the non-faulty pseudorange measurements not deploying the single measurements differences.

When performing the solution separation method, after implementing the auxiliary filter, the navigation computer <NUM> may calculate a main solution <NUM> using all the available pseudorange measurements that are not faulty or erroneous as determined by the auxiliary filter <NUM>. For example, if the auxiliary filter <NUM> determined that none of the pseudoranges were faulty or erroneous, the navigation computer <NUM> may calculate the main solution <NUM> using all of the available pseudoranges (satellites <NUM>-<NUM>). However, if the auxiliary filter <NUM> identified a faulty or erroneous pseudorange measurement, the navigation computer <NUM> may calculate the main solution <NUM> using the non-faulty/non-erroneous pseudorange measurements. For example, if the auxiliary filter <NUM> determined that faulty or erroneous pseudorange measurements were associated with a fourth satellite, the navigation computer <NUM> may calculate the main solution using the other non-faulty/non-erroneous pseudorange measurements (satellites <NUM>-<NUM> and <NUM>-<NUM>).

In certain embodiments, in conjunction with calculating the main solution <NUM>, the navigation computer <NUM> may also calculate sub-solutions for the various non-faulty/non-erroneous pseudorange measurements. The navigation computer <NUM> may calculate sub-solutions by calculating separate sub-solutions for each satellite by excluding a pseudorange measurement provided by a single satellite. As illustrated, there are six sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. In the first sub-solution <NUM>, the navigation computer <NUM> may calculate a solution that excludes the pseudorange measurement associated with a first satellite. In other words, the first sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM> to <NUM>. In a similar manner, the second sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM> and <NUM> to <NUM>; the third sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM>, <NUM> and <NUM> to <NUM>; the fourth sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM> to <NUM>, <NUM>, and <NUM>; the fifth sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM> to <NUM> and <NUM>; and the sixth sub-solution <NUM> may be calculated using pseudoranges associated with satellites <NUM> to <NUM>. Additionally, while not shown, the navigation computer <NUM> may also calculate multiple sub-sub-solutions in accordance with a solution separation methodology for faults exclusion.

In some embodiments, when the navigation computer <NUM> determines that one or more pseudorange measurements are faulty or erroneous based on the auxiliary filter <NUM>, the navigation computer <NUM> may exclude faulty/erroneous pseudorange measurements from being used in the calculation of the sub-solutions. For example, when six satellites are visible and the navigation computer <NUM> determines that the pseudorange measurement associated with the third satellite is faulty or erroneous, the pseudorange measurement associated with the third satellite may be excluded from the calculations of the various sub-solutions. For instance, when the third satellite is associated with a faulty or erroneous pseudorange, the navigation computer <NUM> may calculate the sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. In other words, the navigation computer <NUM> may not calculate the sub-solution <NUM>. Additionally, when calculating the sub-solutions, the navigation computer <NUM> may calculate the first sub-solution <NUM> using pseudoranges associated with the satellites <NUM> and <NUM> to <NUM>. In a similar manner, the navigation computer <NUM> may calculate the second sub-solution <NUM> using pseudoranges associated with the satellites <NUM> and <NUM> to <NUM>; the fourth sub-solution <NUM> using pseudoranges associated with the satellites <NUM>, <NUM>, <NUM>, and <NUM>; the fifth sub-solution <NUM> using pseudoranges associated with the satellites <NUM>, <NUM>, <NUM>, and <NUM>; and the sixth sub-solution <NUM> using pseudoranges associated with the satellites <NUM>, <NUM>, <NUM>, and <NUM>. In a similar manner, the navigation computer <NUM> may calculate multiple sub-sub-solutions in accordance with solution separation methodologies.

<FIG> is a flowchart diagram illustrating an exemplary method <NUM>, not encompassed by the wording of the claims, for pre-filtering measurements for use in a solution separation framework. The method <NUM> proceeds at <NUM>, where a plurality of measurements are processed to determine an auxiliary navigation solution by applying a single difference between the plurality of measurements. Additionally, the method <NUM> may proceed at <NUM>, where innovation sequence monitoring is performed on the auxiliary navigation solution. Further, the method <NUM> may proceed at <NUM>, where a set of measurements are identified in the plurality of measurements based on the innovation sequence monitoring. Moreover, the method may proceed at <NUM>, where a solution separation method may be performed on the set of measurements.

Claim 1:
A computer-implemented method (<NUM>) comprising:
processing (<NUM>) a plurality of GNSS measurements to determine an auxiliary navigation solution for a vehicle by calculating a single difference by calculating the differences between a GNSS measurement provided by a first measurement source and GNSS measurements provided by other measurement sources;
performing (<NUM>) innovation sequence monitoring on the auxiliary navigation solution by applying innovation sequence monitoring to the single difference to identify (<NUM>) a set of measurements in the plurality of measurements that are faulty or erroneous; and performing (<NUM>) a solution separation method comprising:
processing the set of measurements to determine a full navigation solution;
processing subsets of the set of measurements to determine a set of navigation sub-solutions, wherein any measurements identified as faulty or erroneous are excluded from the calculations of the navigation sub-solutions;
using the full solution and the sub-solutions to determine the integrity of the full solution.