US20100088027A1 - System and method of auto-calibration of inertial sensors - Google Patents

System and method of auto-calibration of inertial sensors Download PDF

Info

Publication number
US20100088027A1
US20100088027A1 US12/245,351 US24535108A US2010088027A1 US 20100088027 A1 US20100088027 A1 US 20100088027A1 US 24535108 A US24535108 A US 24535108A US 2010088027 A1 US2010088027 A1 US 2010088027A1
Authority
US
United States
Prior art keywords
error
trip
inertial sensor
estimate
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US12/245,351
Other versions
US8255161B2 (en
Inventor
Charles T. Bye
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell International Inc
Original Assignee
Honeywell International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell International Inc filed Critical Honeywell International Inc
Priority to US12/245,351 priority Critical patent/US8255161B2/en
Assigned to HONEYWELL INTERNATIONAL INC. reassignment HONEYWELL INTERNATIONAL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BYE, CHARLES T.
Priority to EP20090171520 priority patent/EP2172744B1/en
Priority to IL201313A priority patent/IL201313A/en
Publication of US20100088027A1 publication Critical patent/US20100088027A1/en
Application granted granted Critical
Publication of US8255161B2 publication Critical patent/US8255161B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices

Definitions

  • Inertial sensors are used in many navigation systems to provide data to compute position, acceleration, heading, etc. Inertial sensors are subject to various sources of error. For example, two common errors are bias and scale factor. Bias and scale factor errors each have two components, a run-to-run (also referred to as repeatability) and an in-run (also referred to as stability) component.
  • the repeatability component typically changes each time the system is powered on and off, but remains constant when the system is on.
  • the stability component varies while the system is powered on.
  • Typical auto-calibration techniques do not provide an optimal implementation for some navigation systems, such as MEMS-based navigation systems.
  • the stability component of the error may be the same or larger than the repeatability component.
  • the sensor error estimate that is stored in memory for use the next time the system is turned on will essentially be a random value due to the large size of the stability component of the sensor error. This makes the typical auto-calibration approach ineffective for some navigation systems.
  • a system comprising at least one inertial sensor operable to provide inertial sensor data during a trip; a processing unit coupled to at least one inertial sensor, the processing unit operable to calculate navigation data based on the inertial sensor data and to estimate error in the inertial sensor data, wherein the processing unit is further operable to adjust subsequent inertial sensor data received during the trip from at least one inertial sensor to compensate for the estimated error; and a memory coupled to the navigation unit and operable to store data between power cycles; wherein the processing unit is further operable to calculate a current trip error estimate from a plurality of error estimates during the trip and to estimate a repeatability error component based on the current trip error estimate and previous trip error estimates stored in the memory; wherein the repeatability error component is stored in the memory, the processing unit being further operable to update inertial sensor data during a subsequent trip based on the repeatability error component.
  • FIG. 1 is a block diagram of one embodiment of a navigation system.
  • FIG. 2 is a data flow diagram depicting one embodiment of the flow of data in a navigation system.
  • FIG. 3 is a flow chart depicting one embodiment of a method of auto-calibration of inertial sensor errors.
  • FIG. 1 is a block diagram of one embodiment of a navigation system 100 .
  • Navigation system 100 is implemented in mobile vehicles such as, but not limited to, airplanes, helicopters, surface ships, automobiles, etc.
  • Navigation system 100 includes at least one inertial sensor 102 operable to obtain inertial sensor data.
  • inertial sensor 102 includes at least one linear accelerometer and at least one gyroscope.
  • inertial sensor(s) 102 are implemented as micro-electrical-mechanical system (MEMS) sensors.
  • MEMS micro-electrical-mechanical system
  • inertial sensor(s) 102 are implemented as other sensor types, such as ring laser gyroscopes.
  • Inertial sensor(s) 102 output inertial sensor data to processing unit 104 during a trip.
  • trip refers to the time from when navigation system 100 is powered on until the navigation system 100 is powered off.
  • a point during a trip refers to a point in time after navigation system 100 is powered on, but before navigation system 100 is powered off.
  • Processing unit 104 uses the received inertial sensor data to calculate navigation data of the vehicle during the trip.
  • processing unit 104 estimates the error in the calculated navigation data from a variety of sources including the inertial sensor.
  • processing unit 104 is operable to estimate and store a run-to-run (repeatability) error component of the estimated error or errors in the inertial sensors, as discussed below.
  • processing unit 104 implements a Kalman filter to estimate the bias and scale factor error of the inertial sensors in the calculated navigation data in a single Kalman filter state.
  • the repeatability and stability components are together in a single state in this example.
  • other techniques are used to estimate the error in the calculated navigation data.
  • Processing unit 104 uses data received from an aiding source 108 to estimate the error in the calculated navigation data.
  • Aiding source 108 is implemented as a Global Positioning System (GPS) sensor in this embodiment.
  • GPS Global Positioning System
  • the Kalman filter compares data received from GPS sensor 108 with the calculated navigation data to estimate the error.
  • aiding source 108 is implemented using different sensors and or techniques.
  • aiding source 108 is a sensor operable to independently determine when the vehicle has zero velocity (e.g. a sensor to determine when wheels on a ground vehicle are not rotating) or another radio based navigation system. Processing unit 104 is then able to determine which changes in the calculated navigation data are due to sensor errors rather than errors in the aiding source data.
  • Navigation unit 104 then adjusts subsequent inertial sensor data received from inertial sensor(s) 102 to compensate for the estimated error. In this way, navigation unit 104 periodically adjusts the received inertial sensor data with updated error estimates during the trip. One exemplary period for adjusting the received inertial sensor data is 1 Hz.
  • navigation unit 104 calculates the covariance (i.e. uncertainty) of each estimated error and, in some embodiments, compares the covariance to a threshold value. For example, if the covariance of the estimated error exceeds the threshold value, the estimated error is discarded. If the covariance is equal to or below the threshold value, the estimated error is used in updating subsequent inertial sensor data received from inertial sensor(s) 102 .
  • the estimated error is approximately 50 part per million (ppm) and the covariance is above 400 ppm, the usefulness of the error estimate is limited.
  • a threshold value for such a case could be set at 100 ppm to avoid using error estimates with relatively high levels of uncertainty in the estimate.
  • the threshold level is based on the error characteristics of the inertial sensor(s).
  • Navigation unit 104 also calculates a trip error estimate.
  • a trip error estimate is an estimate of the error over a trip based on a plurality of error estimates taken at different points during the trip.
  • the trip error estimate is a statistically weighted average of a plurality of error estimates during the trip. For example, estimates with lower covariance are weighted more than estimates with higher covariance.
  • the trip error estimate is calculated using a running average of the sensor error during the trip or using only a specified number of estimates (e.g. 10). As discussed above, in some embodiments, estimates having a covariance that exceeds the threshold value are not included in the trip average.
  • Navigation unit 104 then stores the calculated trip error estimate (including the uncertainty of the trip error estimate) in memory 110 .
  • Processing unit 104 uses the current trip error estimate together with previous trip error estimates stored in memory 110 to calculate an estimate of the repeatability component of the error estimates.
  • processing unit 104 uses a weighted least squares linear regression method to fit a curve to the current and previous trip error estimates. The fit curve is then used to estimate the repeatability component at the present time. This value is stored in memory 110 along with its associated uncertainty.
  • the repeatability component is calculated using the estimates from all previous trips in some embodiments.
  • a moving window of previous trip error estimates is used. In other words, only a specific number of the most recent trip error estimates are used. For example, only the previous 10 trip error estimates are used in some embodiments. The oldest trip error estimate is deleted when a new trip estimate is computed since the moving window only includes the 10 most recent previous trip error estimates.
  • the repeatability component is used during subsequent trips in adjusting inertial sensor data. For example, at the start of the next trip (i.e. at power on), the repeatability component is retrieved from memory 110 and used in adjusting inertial sensor data received from inertial sensor(s) 102 . For example, during startup when no in-run estimates have been calculated by processing unit 104 , the repeatability component is used to adjust for error in the initial sensor data from inertial sensor(s) 102 . After startup, the inertial sensor data from inertial sensor(s) 102 is updated with the error estimates calculated by processing unit 104 .
  • Processing unit 104 outputs the calculated navigation data to at least one of display element 112 and control unit 114 , in some embodiments.
  • Display element 112 enables a user to view the calculated navigation data while controlling the vehicle. Suitable display elements include, but are not limited to, various cathode ray tube (CRT), active and passive matrix liquid crystal display (LCD), and plasma display systems.
  • Control unit 114 is used to perform additional control functions based on the navigation data, such as, but not limited to, changing engine throttle, changing heading of the vehicle, etc.
  • FIG. 2 is a data flow diagram depicting one embodiment of the flow of data in a navigation system such as navigation system 100 above.
  • Sensor data flows from sensors 202 to processing unit 204 .
  • the sensor data is adjusted in sensor compensation block 216 if an error estimate is available.
  • the compensated data is then used to calculate navigation data in navigation block 218 .
  • the navigation data is then passed to Kalman filter 220 .
  • aiding information from aiding source 208 flows into Kalman filter 220 .
  • Kalman filter 220 estimates an error in the navigation data based on the aiding information.
  • the estimated error is combined with a current repeatability component, when available, in error estimate block 228 .
  • the updated error estimate from error estimate block 228 is passed to sensor compensation block 216 to compensate subsequent data from sensors 202 .
  • the error estimate from Kalman filter 220 is periodically passed to error estimate block 228 during a trip. For example, in one embodiment, the period is 1 Hz.
  • the error estimate from Kalman filter 220 is passed to block 222 where processing unit 204 calculates a current trip error.
  • the trip error is an estimate of the error in the navigation data over the course of a trip.
  • the trip error estimate is a weighted average, in some embodiments, as discussed above.
  • the error estimate from Kalman filter 220 is only passed to block 222 if the covariance of the error estimate is below a threshold as discussed above.
  • the current trip error estimate is saved with previous trip error estimates 224 in memory 210 .
  • the current trip error estimate is passed to block 226 where processing unit 204 estimates a repeatability component.
  • processing unit 204 retrieves previous trip error estimates from block 224 of memory 210 to be used with the current trip error estimate in estimating the current repeatability component.
  • a repeatability component is estimated for one or more of gyroscope scale factor, gyroscope bias, linear accelerometer bias and linear accelerometer scale factor error.
  • the repeatability component is estimated, in some embodiments, by using a weighted least squares linear regression method as discussed above.
  • the current repeatability component estimate is stored in block 225 of memory 210 . Once during each trip, such as at startup, the current estimated repeatability component is passed to error estimate block 228 to be used for compensating sensor data at startup.
  • FIG. 3 is a flow chart showing one embodiment of a method 300 of calibrating inertial sensor(s) 102 as described above.
  • method 300 can be implemented as processor-readable instructions operable to cause a processor to calibrate inertial sensor data. Instructions are typically tangibly embodied on any appropriate medium used for storage of computer readable instructions or data structures.
  • Computer readable media can be any available media that can be accessed by a general purpose or special purpose computer or processor, or any programmable logic device. Suitable computer readable media may include storage media or memory media such as magnetic or optical media, e.g., disk or CD-ROM, volatile or non-volatile media such as RAM (e.g.
  • SDRAM Secure Digital RAM
  • DDR SDRAM DDR SDRAM
  • RDRAM RDRAM
  • SRAM SRAM
  • ROM EEPROM
  • flash memory etc. as well as transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and/or a wireless link.
  • inertial sensor data is received from at least one inertial sensor.
  • the inertial sensor error, and its covariance are estimated. For example, in some embodiments, position data from an aiding device is used to estimate the error in the navigation solutions calculated position data and the contribution of this position due to the errors in the inertial sensors, as described above. In some embodiments both sensor bias and scale factor error are estimated. In addition, in some embodiments, the error is estimated for both a linear accelerometer and a gyroscope.
  • a threshold value As described above, the usefulness of the estimated error can be limited when the uncertainty in the error is large compared to the expected sensor error. The expected error is based on the capability of the inertial sensors. In such situations, a threshold can be used. If the error estimate is above the threshold, the error estimate is discarded at 314 . Otherwise, method 300 continues at 316 , where subsequent sensor data is updated. At 318 , it is optionally determined if an error estimate has been calculated within a set time frame, such as the previous 10 minutes. If an error estimate has been calculated within the set time frame, the error estimate is discarded at 314 . The set time frame is used to ensure a trip error estimate is calculated based on error estimates obtained throughout the trip.
  • a current trip error estimate is calculated if no error estimate has been calculated within the set time frame at 318 .
  • the current trip error estimate is a weighted average of error estimates calculated during the trip.
  • the current trip error estimate is calculated as a running average during the trip in some embodiments.
  • the trip error estimate can be calculated once at the end of the trip and/or after a set number of error estimates are obtained.
  • the repeatability component is estimated based on the current and previous trip error estimates.
  • a moving window of previous trip error estimates is used.
  • only the most recent previous trip error estimates are used.
  • only the 10 most recent trip error estimates are included in the calculation of the repeatability component.
  • a weighted least squares linear regression method is used to fit a curve to the current and previous trip error estimates. The least squares linear regression calculation is weighted based on the covariance of each trip error estimate. The curve is used to determine the repeatability component at the present time.
  • the repeatability component of the sensor error(s) is stored for future use.
  • a subsequent trip is beginning based on a new power on. If the vehicle is beginning a subsequent trip, the repeatability component is retrieved from the memory at 330 . The repeatability component is then used at 306 , in adjusting sensor data received at 302 . The repeatability component is only retrieved once during the startup of the subsequent trip. Additional adjustments are then based on new error estimates taken during the trip as described above.

Abstract

A system comprises at least one inertial sensor operable to provide inertial sensor data during a trip; a processing unit coupled to the at least one inertial sensor, the processing unit operable to calculate navigation data based on the inertial sensor data and to estimate error in the inertial sensor data, wherein the processing unit is further operable to adjust subsequent inertial sensor data received during the trip from the at least one inertial sensor in order to compensate for the estimated error; and a memory coupled to the navigation unit and operable to store data between power cycles; wherein the processing unit is further operable to calculate a current trip error estimate from a plurality of error estimates during the trip and to estimate a repeatability error component based on the current trip error estimate and previous trip error estimates stored in the memory; wherein the repeatability error component is stored in the memory, the processing unit being further operable to update inertial sensor data during a subsequent trip based on the repeatability error component

Description

    BACKGROUND
  • Inertial sensors are used in many navigation systems to provide data to compute position, acceleration, heading, etc. Inertial sensors are subject to various sources of error. For example, two common errors are bias and scale factor. Bias and scale factor errors each have two components, a run-to-run (also referred to as repeatability) and an in-run (also referred to as stability) component. The repeatability component typically changes each time the system is powered on and off, but remains constant when the system is on. The stability component varies while the system is powered on.
  • Typical auto-calibration techniques do not provide an optimal implementation for some navigation systems, such as MEMS-based navigation systems. In some systems, such as MEMS, the stability component of the error may be the same or larger than the repeatability component. In these systems, when typical auto calibration techniques are used, the sensor error estimate that is stored in memory for use the next time the system is turned on will essentially be a random value due to the large size of the stability component of the sensor error. This makes the typical auto-calibration approach ineffective for some navigation systems.
  • SUMMARY
  • The above mentioned problems and other problems are resolved by the present invention and will be understood by reading and studying the following specification.
  • In one embodiment, a system is provided. The system comprises at least one inertial sensor operable to provide inertial sensor data during a trip; a processing unit coupled to at least one inertial sensor, the processing unit operable to calculate navigation data based on the inertial sensor data and to estimate error in the inertial sensor data, wherein the processing unit is further operable to adjust subsequent inertial sensor data received during the trip from at least one inertial sensor to compensate for the estimated error; and a memory coupled to the navigation unit and operable to store data between power cycles; wherein the processing unit is further operable to calculate a current trip error estimate from a plurality of error estimates during the trip and to estimate a repeatability error component based on the current trip error estimate and previous trip error estimates stored in the memory; wherein the repeatability error component is stored in the memory, the processing unit being further operable to update inertial sensor data during a subsequent trip based on the repeatability error component.
  • DRAWINGS
  • Understanding that the drawings depict only exemplary embodiments of the present invention and are not therefore to be considered limiting in scope, the exemplary embodiments will be described with additional specificity and detail through the use of the accompanying drawings, in which:
  • FIG. 1 is a block diagram of one embodiment of a navigation system.
  • FIG. 2 is a data flow diagram depicting one embodiment of the flow of data in a navigation system.
  • FIG. 3 is a flow chart depicting one embodiment of a method of auto-calibration of inertial sensor errors.
  • In accordance with common practice, the various described features are not drawn to scale but are drawn to emphasize specific features relevant to the present invention.
  • DETAILED DESCRIPTION
  • 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 in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, and electrical changes may be made without departing from the scope of the present invention. Furthermore, the method presented in the drawing figures or the specification is not to be construed as limiting the order in which the individual steps may be performed. The following detailed description is, therefore, not to be taken in a limiting sense.
  • In the embodiments described below, statistical techniques are used to separate the repeatability and stability components of estimated sensor errors. The repeatability component is then stored for use the next time the system is powered on. Hence, the embodiments described below provide an improved auto-calibration technique. For example, auto-calibration is improved for systems in which the stability component is significantly large relative to the repeatability component since the repeatability component is separated from and stored independently of the stability component.
  • FIG. 1 is a block diagram of one embodiment of a navigation system 100. Navigation system 100 is implemented in mobile vehicles such as, but not limited to, airplanes, helicopters, surface ships, automobiles, etc. Navigation system 100 includes at least one inertial sensor 102 operable to obtain inertial sensor data. For example, in one embodiment, inertial sensor 102 includes at least one linear accelerometer and at least one gyroscope. In addition, in some embodiments, inertial sensor(s) 102 are implemented as micro-electrical-mechanical system (MEMS) sensors. In other embodiments, inertial sensor(s) 102 are implemented as other sensor types, such as ring laser gyroscopes.
  • Inertial sensor(s) 102 output inertial sensor data to processing unit 104 during a trip. As used herein, the term “trip” refers to the time from when navigation system 100 is powered on until the navigation system 100 is powered off. Hence, a point during a trip refers to a point in time after navigation system 100 is powered on, but before navigation system 100 is powered off. Processing unit 104 uses the received inertial sensor data to calculate navigation data of the vehicle during the trip. In addition, processing unit 104 estimates the error in the calculated navigation data from a variety of sources including the inertial sensor. In particular, processing unit 104 is operable to estimate and store a run-to-run (repeatability) error component of the estimated error or errors in the inertial sensors, as discussed below.
  • In this embodiment, processing unit 104 implements a Kalman filter to estimate the bias and scale factor error of the inertial sensors in the calculated navigation data in a single Kalman filter state. The repeatability and stability components are together in a single state in this example. However, it is to be understood that, in other embodiments, other techniques are used to estimate the error in the calculated navigation data. Processing unit 104 uses data received from an aiding source 108 to estimate the error in the calculated navigation data. Aiding source 108 is implemented as a Global Positioning System (GPS) sensor in this embodiment. Hence, in this embodiment, the Kalman filter compares data received from GPS sensor 108 with the calculated navigation data to estimate the error. However, in other embodiments, aiding source 108 is implemented using different sensors and or techniques. For example, in other alternative embodiments, aiding source 108 is a sensor operable to independently determine when the vehicle has zero velocity (e.g. a sensor to determine when wheels on a ground vehicle are not rotating) or another radio based navigation system. Processing unit 104 is then able to determine which changes in the calculated navigation data are due to sensor errors rather than errors in the aiding source data.
  • Navigation unit 104 then adjusts subsequent inertial sensor data received from inertial sensor(s) 102 to compensate for the estimated error. In this way, navigation unit 104 periodically adjusts the received inertial sensor data with updated error estimates during the trip. One exemplary period for adjusting the received inertial sensor data is 1 Hz. In addition, navigation unit 104 calculates the covariance (i.e. uncertainty) of each estimated error and, in some embodiments, compares the covariance to a threshold value. For example, if the covariance of the estimated error exceeds the threshold value, the estimated error is discarded. If the covariance is equal to or below the threshold value, the estimated error is used in updating subsequent inertial sensor data received from inertial sensor(s) 102. For example, if the estimated error is approximately 50 part per million (ppm) and the covariance is above 400 ppm, the usefulness of the error estimate is limited. A threshold value for such a case could be set at 100 ppm to avoid using error estimates with relatively high levels of uncertainty in the estimate. The threshold level is based on the error characteristics of the inertial sensor(s).
  • Navigation unit 104 also calculates a trip error estimate. As used herein, a trip error estimate is an estimate of the error over a trip based on a plurality of error estimates taken at different points during the trip. In some embodiments, the trip error estimate is a statistically weighted average of a plurality of error estimates during the trip. For example, estimates with lower covariance are weighted more than estimates with higher covariance. Alternatively, the trip error estimate is calculated using a running average of the sensor error during the trip or using only a specified number of estimates (e.g. 10). As discussed above, in some embodiments, estimates having a covariance that exceeds the threshold value are not included in the trip average. Navigation unit 104 then stores the calculated trip error estimate (including the uncertainty of the trip error estimate) in memory 110.
  • Processing unit 104 uses the current trip error estimate together with previous trip error estimates stored in memory 110 to calculate an estimate of the repeatability component of the error estimates. In particular, in this embodiment, processing unit 104 uses a weighted least squares linear regression method to fit a curve to the current and previous trip error estimates. The fit curve is then used to estimate the repeatability component at the present time. This value is stored in memory 110 along with its associated uncertainty.
  • The repeatability component is calculated using the estimates from all previous trips in some embodiments. In other embodiments, a moving window of previous trip error estimates is used. In other words, only a specific number of the most recent trip error estimates are used. For example, only the previous 10 trip error estimates are used in some embodiments. The oldest trip error estimate is deleted when a new trip estimate is computed since the moving window only includes the 10 most recent previous trip error estimates.
  • The repeatability component is used during subsequent trips in adjusting inertial sensor data. For example, at the start of the next trip (i.e. at power on), the repeatability component is retrieved from memory 110 and used in adjusting inertial sensor data received from inertial sensor(s) 102. For example, during startup when no in-run estimates have been calculated by processing unit 104, the repeatability component is used to adjust for error in the initial sensor data from inertial sensor(s) 102. After startup, the inertial sensor data from inertial sensor(s) 102 is updated with the error estimates calculated by processing unit 104.
  • Processing unit 104 outputs the calculated navigation data to at least one of display element 112 and control unit 114, in some embodiments. Display element 112 enables a user to view the calculated navigation data while controlling the vehicle. Suitable display elements include, but are not limited to, various cathode ray tube (CRT), active and passive matrix liquid crystal display (LCD), and plasma display systems. Control unit 114 is used to perform additional control functions based on the navigation data, such as, but not limited to, changing engine throttle, changing heading of the vehicle, etc.
  • FIG. 2 is a data flow diagram depicting one embodiment of the flow of data in a navigation system such as navigation system 100 above. Sensor data flows from sensors 202 to processing unit 204. In particular, the sensor data is adjusted in sensor compensation block 216 if an error estimate is available. The compensated data is then used to calculate navigation data in navigation block 218. The navigation data is then passed to Kalman filter 220. In addition, aiding information from aiding source 208 flows into Kalman filter 220. Kalman filter 220 estimates an error in the navigation data based on the aiding information. The estimated error is combined with a current repeatability component, when available, in error estimate block 228. The updated error estimate from error estimate block 228 is passed to sensor compensation block 216 to compensate subsequent data from sensors 202. The error estimate from Kalman filter 220 is periodically passed to error estimate block 228 during a trip. For example, in one embodiment, the period is 1 Hz.
  • In addition, the error estimate from Kalman filter 220 is passed to block 222 where processing unit 204 calculates a current trip error. The trip error is an estimate of the error in the navigation data over the course of a trip. The trip error estimate is a weighted average, in some embodiments, as discussed above. In some embodiments, the error estimate from Kalman filter 220 is only passed to block 222 if the covariance of the error estimate is below a threshold as discussed above. The current trip error estimate is saved with previous trip error estimates 224 in memory 210. The current trip error estimate is passed to block 226 where processing unit 204 estimates a repeatability component. In addition, processing unit 204 retrieves previous trip error estimates from block 224 of memory 210 to be used with the current trip error estimate in estimating the current repeatability component. In particular, a repeatability component is estimated for one or more of gyroscope scale factor, gyroscope bias, linear accelerometer bias and linear accelerometer scale factor error. The repeatability component is estimated, in some embodiments, by using a weighted least squares linear regression method as discussed above. The current repeatability component estimate is stored in block 225 of memory 210. Once during each trip, such as at startup, the current estimated repeatability component is passed to error estimate block 228 to be used for compensating sensor data at startup.
  • FIG. 3 is a flow chart showing one embodiment of a method 300 of calibrating inertial sensor(s) 102 as described above. In addition, method 300 can be implemented as processor-readable instructions operable to cause a processor to calibrate inertial sensor data. Instructions are typically tangibly embodied on any appropriate medium used for storage of computer readable instructions or data structures. Computer readable media can be any available media that can be accessed by a general purpose or special purpose computer or processor, or any programmable logic device. Suitable computer readable media may include storage media or memory media such as magnetic or optical media, e.g., disk or CD-ROM, volatile or non-volatile media such as RAM (e.g. SDRAM, DDR SDRAM, RDRAM, SRAM, etc.), ROM, EEPROM, flash memory, etc. as well as transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and/or a wireless link.
  • At 302, inertial sensor data is received from at least one inertial sensor. At 304, it is determined if a repeatability error component estimate is available. For example, if no previous trips have been taken, a repeatability error component may not be available during startup of the current trip. If a repeatability error component is available, the received sensor data is updated at 306 using the repeatability error component. If no repeatability error component is available, navigation data is calculated based on the inertial sensor data at 308. At 310, the inertial sensor error, and its covariance are estimated. For example, in some embodiments, position data from an aiding device is used to estimate the error in the navigation solutions calculated position data and the contribution of this position due to the errors in the inertial sensors, as described above. In some embodiments both sensor bias and scale factor error are estimated. In addition, in some embodiments, the error is estimated for both a linear accelerometer and a gyroscope.
  • At 312, it is optionally determined if the covariance of the estimated error exceeds a threshold value. As described above, the usefulness of the estimated error can be limited when the uncertainty in the error is large compared to the expected sensor error. The expected error is based on the capability of the inertial sensors. In such situations, a threshold can be used. If the error estimate is above the threshold, the error estimate is discarded at 314. Otherwise, method 300 continues at 316, where subsequent sensor data is updated. At 318, it is optionally determined if an error estimate has been calculated within a set time frame, such as the previous 10 minutes. If an error estimate has been calculated within the set time frame, the error estimate is discarded at 314. The set time frame is used to ensure a trip error estimate is calculated based on error estimates obtained throughout the trip.
  • At 320, a current trip error estimate is calculated if no error estimate has been calculated within the set time frame at 318. In some embodiments, the current trip error estimate is a weighted average of error estimates calculated during the trip. The current trip error estimate is calculated as a running average during the trip in some embodiments. Alternatively, the trip error estimate can be calculated once at the end of the trip and/or after a set number of error estimates are obtained. At 322, it is determined if a repeatability component should be computed. For example, the repeatability component is only calculated at the end of a trip, in some embodiments. In other embodiments, the repeatability component is calculated after a set number of trips (e.g. 10 trips). If a repeatability component is not to be calculated, method 300 returns to 302. If a repeatability component is to be calculated (e.g. at the end of the trip prior to power off), previous trip error estimates are retrieved from a memory at 324.
  • At 326, the repeatability component is estimated based on the current and previous trip error estimates. In particular, in some embodiments, a moving window of previous trip error estimates is used. In other words, only the most recent previous trip error estimates are used. For example, in one embodiment, only the 10 most recent trip error estimates are included in the calculation of the repeatability component. For example, in some embodiments, a weighted least squares linear regression method is used to fit a curve to the current and previous trip error estimates. The least squares linear regression calculation is weighted based on the covariance of each trip error estimate. The curve is used to determine the repeatability component at the present time. The repeatability component of the sensor error(s) is stored for future use.
  • At 328, it is determined if a subsequent trip is beginning based on a new power on. If the vehicle is beginning a subsequent trip, the repeatability component is retrieved from the memory at 330. The repeatability component is then used at 306, in adjusting sensor data received at 302. The repeatability component is only retrieved once during the startup of the subsequent trip. Additional adjustments are then based on new error estimates taken during the trip as described above.
  • Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement, which is calculated to achieve the same purpose, may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof

Claims (20)

1. A system comprising:
at least one inertial sensor operable to provide inertial sensor data during a trip;
a processing unit coupled to the at least one inertial sensor, the processing unit operable to calculate navigation data based on the inertial sensor data and to estimate error in the inertial sensors, wherein the processing unit is further operable to adjust subsequent inertial sensor data received during the trip from the, at least one, inertial sensor to compensate for the estimated error; and
a memory coupled to the navigation unit and operable to store data between power cycles;
wherein the processing unit is further operable to calculate a current trip error estimate from a plurality of error estimates during the trip and to estimate a repeatability error component based on the current trip error estimate and previous trip error estimates stored in the memory;
wherein the repeatability error component is stored in the memory, the processing unit being further operable to update inertial sensor data during a subsequent trip based on the repeatability error component.
2. The system of claim 1, further comprising:
an aiding source coupled to the processing unit and operable to provide navigation data;
wherein the processing unit is operable to use the navigation data provided by the aiding source to estimate the error in the navigation data.
3. The system of claim 2, wherein the aiding source is a Global Positioning System (GPS) receiver.
4. The system of claim 1, wherein the processing unit is operable to estimate the error using a Kalman filter.
5. The system of claim 1, wherein the at least one inertial sensor comprises at least one linear accelerometer and at least one gyroscope.
6. The system of claim 1, wherein the at least one inertial sensor comprises a micro-electrical-mechanical system (MEMS) sensor.
7. The system of claim 1, wherein the processing unit is operable to estimate bias error and scale factor error.
8. The system of claim 1, wherein the processing unit is operable to calculate a statistically weighted trip error estimate based on the covariance of each of the plurality of error estimates during the trip.
9. The system of claim 1, wherein the processing unit is operable to compare the covariance of each error estimate with a threshold value, wherein error estimates having a covariance above the threshold value are discarded and error estimates having a covariance below the threshold are used to adjust subsequent inertial sensor data.
10. The system of claim 1, wherein the processing unit is operable to estimate a repeatability error component based on the current trip error estimate and a moving window of previous trip error estimates.
11. A method of calibrating an inertial sensor, the method comprising:
receiving inertial sensor data from the inertial sensor;
calculating navigation data based on the received inertial sensor data;
estimating error in the calculated navigation data;
adjusting subsequent received inertial sensor data to compensate for estimated errors;
calculating a trip error estimate from a plurality of error estimates during a trip;
estimating a repeatability error component based on the current trip error estimate and previous trip error estimates;
storing the repeatability error component in a memory; and
adjusting inertial sensor data during a subsequent trip based, at least in part, on the repeatability error component.
12. The method of claim 11, wherein estimating error in the calculated navigation data comprises estimating error in the calculated navigation data based on navigation data provided by an aiding source.
13. The method of claim 11, wherein estimating error in the calculated navigation data comprises estimating bias error and scale factor error.
14. The method of claim 11, wherein adjusting subsequent received inertial sensor data to compensate for estimated errors comprises:
comparing the covariance of each estimated error with a threshold value;
discarding estimated errors having a covariance above the threshold value; and
adjusting subsequent received inertial sensor data with estimated errors having a covariance equal to or below the threshold value.
15. The method of claim 11, wherein calculating a trip error estimate from a plurality of error estimates during the trip comprises calculating a weighted average of the plurality of error estimates based on the covariance of each of the plurality of error estimates.
16. The method of claim 11, wherein estimating a repeatability error component comprises estimating a repeatability error component based on the current trip error estimate and a moving window of previous trip error estimates.
17. A program product comprising program instructions embodied on a processor-readable medium for execution by a programmable processor, wherein the program instructions are operable to cause the programmable processor to:
calculate navigation data based on inertial sensor data received from at least one inertial sensor;
estimate error in the calculated navigation data based on navigation data received from an aiding source;
adjust subsequent received inertial sensor data to compensate for estimated errors;
calculate a trip error estimate from a plurality of error estimates during a trip;
retrieve a plurality of previous trip error estimates from a memory device;
estimate a repeatability error component based on the calculated trip error estimate and the plurality of previous trip error estimates;
storing the repeatability error component in the memory device; and
adjusting inertial sensor data during a subsequent trip based, at least in part, on the repeatability error component.
18. The program product of claim 17, wherein the program instructions are further operable to cause the programmable processor to retrieve only a set number of the most recent previous trip error estimates from the memory device to use in estimating the repeatability error component.
19. The program product of claim 17, wherein the program instructions are further operable to cause the programmable processor to estimate both bias error and scale factor error in the inertial sensor data.
20. The program product of claim 17, wherein the program instructions are further operable to cause the programmable processor to:
compare each estimated error's covariance with a threshold value;
discard estimated errors having a covariance above the threshold value; and
adjust subsequent received inertial sensor data with estimated errors having a covariance equal to or below the threshold value.
US12/245,351 2008-10-03 2008-10-03 System and method of auto-calibration of inertial sensors Expired - Fee Related US8255161B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/245,351 US8255161B2 (en) 2008-10-03 2008-10-03 System and method of auto-calibration of inertial sensors
EP20090171520 EP2172744B1 (en) 2008-10-03 2009-09-28 System and method of auto-calibration of inertial sensors
IL201313A IL201313A (en) 2008-10-03 2009-10-01 System and method of auto-calibration of inertial sensors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/245,351 US8255161B2 (en) 2008-10-03 2008-10-03 System and method of auto-calibration of inertial sensors

Publications (2)

Publication Number Publication Date
US20100088027A1 true US20100088027A1 (en) 2010-04-08
US8255161B2 US8255161B2 (en) 2012-08-28

Family

ID=41402060

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/245,351 Expired - Fee Related US8255161B2 (en) 2008-10-03 2008-10-03 System and method of auto-calibration of inertial sensors

Country Status (3)

Country Link
US (1) US8255161B2 (en)
EP (1) EP2172744B1 (en)
IL (1) IL201313A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013148451A1 (en) * 2012-03-27 2013-10-03 Autoliv Asp, Inc. Inertial sensor enhancement
US9678102B2 (en) 2011-11-04 2017-06-13 Google Inc. Calibrating intertial sensors using an image sensor

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10444845B2 (en) 2012-12-21 2019-10-15 Qualcomm Incorporated Display of separate computer vision based pose and inertial sensor based pose
CN105300404B (en) * 2014-07-09 2017-12-26 北京自动化控制设备研究所 A kind of naval vessel benchmark inertial navigation system Calibration Method
FR3095693B1 (en) * 2019-05-03 2021-04-09 Safran Electronics & Defense Dual filter navigation process
TWI733181B (en) * 2019-08-30 2021-07-11 致伸科技股份有限公司 Method and system for calibrating laser power
US11255672B2 (en) 2019-10-28 2022-02-22 Honeywell International Inc. System having an extended life high performance sensor

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4321678A (en) * 1977-09-14 1982-03-23 Bodenseewerk Geratetechnik Gmbh Apparatus for the automatic determination of a vehicle position
US4740085A (en) * 1986-02-18 1988-04-26 Northrop Corporation Scale factor stability control
US5050423A (en) * 1989-12-04 1991-09-24 Motorola, Inc. Multi-variable sensor calibration
US5367898A (en) * 1991-01-23 1994-11-29 Sumitomo Electric Industries, Ltd. Method of calculating scale factor of gyro
US5617317A (en) * 1995-01-24 1997-04-01 Honeywell Inc. True north heading estimator utilizing GPS output information and inertial sensor system output information
US6145378A (en) * 1997-07-22 2000-11-14 Baroid Technology, Inc. Aided inertial navigation system
US6298288B1 (en) * 1998-12-16 2001-10-02 Hughes Electronics Corp. Autonomous gyro scale factor and misalignment calibration
US6374191B1 (en) * 1998-04-20 2002-04-16 Nagano Keiki Co., Ltd. Self-calibrating sensor
US6459990B1 (en) * 1999-09-23 2002-10-01 American Gnc Corporation Self-contained positioning method and system thereof for water and land vehicles
US6480152B2 (en) * 2000-07-20 2002-11-12 American Gnc Corporation Integrated GPS/IMU method and microsystem thereof
US20020173910A1 (en) * 1999-11-29 2002-11-21 Mccall Hiram Vehicle self-carried positioning method and system thereof
US6615117B2 (en) * 2001-11-13 2003-09-02 The Boeing Company Attitude determination system and method with outer-loop gyro scale-factor non-linearity calibration
US6698281B1 (en) * 1999-04-02 2004-03-02 Thales Avionics S.A. Vane designed to get oriented in the ambient air flow axis
US20040073360A1 (en) * 2002-08-09 2004-04-15 Eric Foxlin Tracking, auto-calibration, and map-building system
US6778924B2 (en) * 2001-11-06 2004-08-17 Honeywell International Inc. Self-calibrating inertial measurement system method and apparatus
US20060025894A1 (en) * 2004-07-30 2006-02-02 Integrinautics Corporation Vehicle control system with user-guided calibration
US20070032951A1 (en) * 2005-04-19 2007-02-08 Jaymart Sensors, Llc Miniaturized Inertial Measurement Unit and Associated Methods
US20080091350A1 (en) * 2006-10-17 2008-04-17 Smith Stephen F Triply redundant integrated navigation and asset visibility system
US20080223107A1 (en) * 2007-03-15 2008-09-18 Stewart Robert E Self-calibration of scale factor for dual resonator class II coriolis vibratory gyros
US20090089001A1 (en) * 2007-08-14 2009-04-02 American Gnc Corporation Self-calibrated azimuth and attitude accuracy enhancing method and system (SAAAEMS)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008068542A1 (en) 2006-12-04 2008-06-12 Nokia Corporation Auto-calibration method for sensors and auto-calibrating sensor arrangement

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4321678A (en) * 1977-09-14 1982-03-23 Bodenseewerk Geratetechnik Gmbh Apparatus for the automatic determination of a vehicle position
US4740085A (en) * 1986-02-18 1988-04-26 Northrop Corporation Scale factor stability control
US5050423A (en) * 1989-12-04 1991-09-24 Motorola, Inc. Multi-variable sensor calibration
US5367898A (en) * 1991-01-23 1994-11-29 Sumitomo Electric Industries, Ltd. Method of calculating scale factor of gyro
US5617317A (en) * 1995-01-24 1997-04-01 Honeywell Inc. True north heading estimator utilizing GPS output information and inertial sensor system output information
US6145378A (en) * 1997-07-22 2000-11-14 Baroid Technology, Inc. Aided inertial navigation system
US6374191B1 (en) * 1998-04-20 2002-04-16 Nagano Keiki Co., Ltd. Self-calibrating sensor
US6298288B1 (en) * 1998-12-16 2001-10-02 Hughes Electronics Corp. Autonomous gyro scale factor and misalignment calibration
US6698281B1 (en) * 1999-04-02 2004-03-02 Thales Avionics S.A. Vane designed to get oriented in the ambient air flow axis
US6459990B1 (en) * 1999-09-23 2002-10-01 American Gnc Corporation Self-contained positioning method and system thereof for water and land vehicles
US20020173910A1 (en) * 1999-11-29 2002-11-21 Mccall Hiram Vehicle self-carried positioning method and system thereof
US6480152B2 (en) * 2000-07-20 2002-11-12 American Gnc Corporation Integrated GPS/IMU method and microsystem thereof
US6778924B2 (en) * 2001-11-06 2004-08-17 Honeywell International Inc. Self-calibrating inertial measurement system method and apparatus
US6615117B2 (en) * 2001-11-13 2003-09-02 The Boeing Company Attitude determination system and method with outer-loop gyro scale-factor non-linearity calibration
US20040073360A1 (en) * 2002-08-09 2004-04-15 Eric Foxlin Tracking, auto-calibration, and map-building system
US20060025894A1 (en) * 2004-07-30 2006-02-02 Integrinautics Corporation Vehicle control system with user-guided calibration
US20070032951A1 (en) * 2005-04-19 2007-02-08 Jaymart Sensors, Llc Miniaturized Inertial Measurement Unit and Associated Methods
US20080091350A1 (en) * 2006-10-17 2008-04-17 Smith Stephen F Triply redundant integrated navigation and asset visibility system
US20080223107A1 (en) * 2007-03-15 2008-09-18 Stewart Robert E Self-calibration of scale factor for dual resonator class II coriolis vibratory gyros
US20090089001A1 (en) * 2007-08-14 2009-04-02 American Gnc Corporation Self-calibrated azimuth and attitude accuracy enhancing method and system (SAAAEMS)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678102B2 (en) 2011-11-04 2017-06-13 Google Inc. Calibrating intertial sensors using an image sensor
WO2013148451A1 (en) * 2012-03-27 2013-10-03 Autoliv Asp, Inc. Inertial sensor enhancement
CN104169723A (en) * 2012-03-27 2014-11-26 奥托里夫Asp股份有限公司 Inertial sensor enhancement
US9664528B2 (en) 2012-03-27 2017-05-30 Autoliv Asp, Inc. Inertial sensor enhancement

Also Published As

Publication number Publication date
US8255161B2 (en) 2012-08-28
EP2172744A2 (en) 2010-04-07
EP2172744B1 (en) 2015-04-22
EP2172744A3 (en) 2011-03-09
IL201313A0 (en) 2010-06-16
IL201313A (en) 2014-06-30

Similar Documents

Publication Publication Date Title
US8255161B2 (en) System and method of auto-calibration of inertial sensors
US7860651B2 (en) Enhanced inertial system performance
KR102432116B1 (en) A navigation system
US11105633B2 (en) Navigation system utilizing yaw rate constraint during inertial dead reckoning
US7873472B2 (en) Methods and systems for implementing an iterated extended Kalman filter within a navigation system
US6577952B2 (en) Position and heading error-correction method and apparatus for vehicle navigation systems
US8195357B2 (en) In-vehicle sensor-based calibration algorithm for yaw rate sensor calibration
EP2634534B1 (en) Systems and methods to incorporate master navigation system resets during transfer alignment
US8024119B2 (en) Systems and methods for gyrocompass alignment using dynamically calibrated sensor data and an iterated extended kalman filter within a navigation system
US20080082266A1 (en) Multipath Modeling For Deep Integration
US7689357B2 (en) Closed loop hybridising device with monitoring of the measurement integrity
EP2400269A1 (en) Track information generating device, track information generating method, and computer-readable storage medium
CN108507568B (en) Method and device for compensating temperature drift error and integrated navigation system
US8457882B2 (en) Systems and methods for navigation in a GPS-denied environment
US20070271037A1 (en) Systems and methods for improved inertial navigation
US8912953B2 (en) GPS receiver and calculation method of navigation solution thereof
JP5074950B2 (en) Navigation equipment
US20100256906A1 (en) Hybrid inertial system with non-linear behaviour and associated method of hybridization by multi-hypothesis filtering
CN115407376A (en) Vehicle positioning calibration method and device, computer equipment and storage medium
CN113566850A (en) Method and device for calibrating installation angle of inertial measurement unit and computer equipment
US10088319B2 (en) Method for determining states of a system using an estimation filter
Wachsmuth et al. Development of an error-state Kalman Filter for Emergency Maneuvering of Trucks
RU2379702C1 (en) Method to determine security limit with compensation for computation delays
US20140343844A1 (en) Azimuth update controller for inertial systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: HONEYWELL INTERNATIONAL INC.,NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BYE, CHARLES T.;REEL/FRAME:021632/0241

Effective date: 20080929

Owner name: HONEYWELL INTERNATIONAL INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BYE, CHARLES T.;REEL/FRAME:021632/0241

Effective date: 20080929

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200828