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.

The publication <NPL>, discloses using innovation sequence monitoring techniques and a solution separation method.

Systems and methods for implementing single differences within a solution separation framework are provided.

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 implementing single differences within a solution separation framework are described herein. In particular, using measurements acquired from different sources, a solution separation method may be performed on a single difference between the different measurements. For example, a main solution may be calculated using single differences of the available measurements. Additionally, sub-solutions and sub-sub solutions may be calculated using the single differences. Further, a processing unit may perform innovation sequence monitoring on the main solution, sub-solution, and sub-sub solutions. Using the applied innovation sequence monitoring, the system may identify faulty measurements. The faulty measurements may then be excluded from a subsequently processed solutions in the executed solution separation algorithm. For example, a processing unit may perform innovation sequence monitoring on the main filter and exclude the faulty measurements from subsequently processed sub-filters and sub-sub-filters when executing a solution separation algorithm. By calculating single differences and performing innovation sequence monitoring on the single differences 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 implementing single differences within 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> may acquire navigation information from one or more 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 location information anywhere on the Earth. 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> may monitor the integrity of the various measurements used while navigating. For example, the processing unit <NUM> may receive 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> may then monitor 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.

In certain embodiments, 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 may determine 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.

In some implementations, the solution separation methodology may be 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 limits 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 uses full solution estimates, sub-solution estimates, dependence among the full solution and set of 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 statistical 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> calculates 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 calculation by the 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. An EKF is typically applied when integrating INS and GNSS.

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 refers 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 time prediction of GNSS receiver clocks. For example when performing sequential measurement processing, a GPS receiver clock bias may be estimated based on a first process 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.

The navigation computer <NUM> removes 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 a solution separation framework. As used herein, a single difference refers to a difference between different measurements associated with different measurement sources. For example, the navigation computer <NUM> may calculate 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.

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 a solution separation framework. As used herein, a pseudorange measurement difference refers to a single difference where the measurements are different pseudoranges associated with different satellites. For example, the navigation computer <NUM> may calculate a difference between a first pseudorange associated with a first satellite and a second pseudorange associated with a second satellite. The navigation computer <NUM> may calculate additional differences between the first pseudorange and a third pseudorange associated with a third satellite, additional differences between the first pseudorange and a fourth pseudorange associate with a fourth satellite, and so forth for the number of pseudorange measurements associated with different satellites.

In certain embodiments, the navigation computer <NUM> may calculate the pseudorange measurement difference within the solution separation method by implementing a statistical filter for one or more of a main solution, a sub-solution, or a sub-sub solution. For example, when calculating a solution in the solution separation method, 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> performs innovation sequence monitoring on the pseudorange measurement differences by comparing the predicted states and the observed measurements.

As part of the innovation sequence monitoring, the navigation computer <NUM> performs 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 pseudorange measurement. When the faulty pseudorange measurement is identified, the navigation computer <NUM> may exclude the faulty pseudorange measurement from the present and subsequent calculations.

In certain embodiments, the navigation computer <NUM> may then proceed to performing the standard solution separation method using the pseudorange measurement differences associated with 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 a single differences (such as pseudorange measurement differences) within a solution separation method <NUM>. As shown, the navigation computer <NUM> may perform the solution separation method <NUM> with a main solution <NUM>, sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, and sub-sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. However, as compared to a normal solution separation method that uses measurements, the solution separation method <NUM> uses single differences for the different solutions.

In certain embodiments, the navigation computer <NUM> calculates the main solution <NUM> by finding a set of differences between a first measurement and each of the other measurements. For example, when the measurements are pseudorange measurements associated with particular satellites (and for illustrative purposes six satellites), the navigation computer <NUM> may calculate a set of pseudorange differences, where each pseudorange difference in the set of pseudorange differences is respectively the difference between the pseudoranges of the first satellite and the second satellite, the first satellite and the third satellite, the first satellite and the fourth satellite, the first satellite and the fifth satellite, the first satellite, and the sixth satellite. Using the multiple computed differences, the system may calculate the main solution.

In further embodiments, when calculating the sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> the navigation computer <NUM> may identify a sub-set of measurements where one of the available measurements is excluded. From the identified sub-set of measurements, the navigation computer <NUM> may find a set of differences between a measurement in the sub-set and the remaining measurements in the sub-set. Using the set of differences, the navigation computer <NUM> may calculate a sub-solution. For example, for the sub-solution <NUM>, the navigation computer <NUM> may identify the sub-set of measurements by excluding the measurement produced by a first of six satellites. Accordingly, the sub-solution <NUM> may be calculated using the set of differences that includes the pseudorange differences between a second satellite and a third satellite, the second satellite and a fourth satellite, the second satellite and a fifth satellite, and the second satellite and a sixth satellite. In a similar manner, the navigation computer <NUM> may calculate each of the sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> by excluding a pseudorange measurement associated with a different satellite from each calculated sub-solution.

In additional embodiments, when calculating sub-sub-solutions, (sub-sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, for example), the navigation computer <NUM> may identify sub-sub-sets of measurements. Each sub-sub-set may include a sub-set of the measurements associated with each sub-set of measurements, where each sub-sub-set is associated with a different excluded measurement from the associated sub-set of measurements. For example, for the sub-solution <NUM>, the navigation computer <NUM> may calculate sub-sub-solutions <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Each of the sub-sub-solutions may exclude a different pseudorange measurement when calculating the differences between the different pseudorange measurements. For example, the sub-sub-solution <NUM> may calculate the sub-sub-solution using the differences in pseudorange measurements associated with the third satellite and the fourth satellite, the third satellite and the fifth satellite, and the third satellite and the sixth satellite; excluding the pseudorange measurements associated with the first and second satellite. In a similar manner, the navigation computer <NUM> may calculate each of the sub-sub -solutions <NUM>, <NUM>, <NUM>, and <NUM> by excluding a pseudorange measurement associated with two different satellites from each calculated sub-sub-solution.

In certain implementations, when calculating the various solutions, sub-solutions, and sub-sub-solutions, the navigation computer <NUM> or other processing device may perform innovation testing on some or all of the solutions, sub-solutions, and sub-sub-solutions, where the innovation testing is performed substantially as described above in connection with <FIG>. For example, the navigation computer <NUM> may perform innovation testing on the solution <NUM> and apply the results of the innovation test when calculating the sub-solutions and sub-sub-solutions. Alternatively, the navigation computer <NUM> may perform innovation testing on each of the sub-solutions and the sub-sub-solutions. Through the innovation testing, the navigation computer <NUM> may identify faulty measurements from calculations of solutions, sub-solutions, and sub-sub-solutions.

When calculating the single differences between measurements for the solutions, sub-solutions, and sub-sub-solutions, the navigation computer <NUM> may alter the calculation of measurements when performing filtering (i.e. Kalman filtering) of the measurements. For example, a general measurement may be represented as follows: <MAT> where vk~(<NUM>, R).

As shown, zk may refer to an observed measurement, xk may refer to a true state of the measurement, H may be an observation model that maps the true state of the measurement into the observed measurement, and vk may refer to observation noise.

To create a single difference for a GNSS pseudorange, the navigation computer <NUM> may define a transformation matrix C as follows: <MAT>.

The navigation computer <NUM> may apply the transformation matrix to the measurement as follows: <MAT>.

Additionally, the navigation computer <NUM> may decorrelate Czk, CH, and CRCT using the following: <MAT>.

For example, the navigation computer <NUM> may decorrelate Czk as VTCzk, CH using <MAT> , and CRCT using <MAT>. The navigation computer <NUM> may perform the decorrelation for the solution, sub-solutions, and sub-sub-solutions.

Methods described herein may be applicable for measurements with common error source which cannot be predicted with sufficient quality, e.g. the GNSS receiver clock error in GNSS measurements. By using the single differences, the navigation computer <NUM> may remove the effects of receiver clock errors. The removal of the effects of receiver clock errors allows effectiveness for the performance of innovation sequence monitoring by the navigation computer <NUM> and the isolation of erroneous or faulty measurements regardless of how many measurements are simultaneously affected by an error.

Claim 1:
A method (<NUM>, <NUM>) comprising:
processing pseudorange measurements to determine a full navigation solution by applying a single difference between the pseudorange measurements, wherein applying the single difference between the pseudorange measurements comprises calculating, by a navigation computer, differences between pseudorange measurements associated with different satellites;
performing innovation sequence monitoring, wherein performing innovation sequence monitoring comprises excluding a pseudorange measurement that fails one or more associated single difference statistical tests;
processing subsets of the pseudorange measurements to determine a set of navigation sub-solutions (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) by applying the single difference between the respective subsets of the pseudorange measurements, wherein a result of the innovation sequence monitoring is applied to the set of navigation sub-solutions (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>), by determining the set of navigation sub-solutions using the pseudorange measurement differences associated with the pseudorange measurements that passed the one or more statistical tests; and
providing faults detection and computing protection levels of quantities of navigation information based on a full navigation solution estimate, navigation sub-solution estimates, dependence among the full navigation solution and the set of navigation sub-solutions, and probabilities of missed detection and false alert.