The disclosure is related to vehicle navigation systems.
Vehicle navigation systems are found in an ever increasing proportion of new cars and light trucks. The primary source of position, velocity and time data in a typical vehicle navigation system is a global navigational satellite system (GNSS) receiver. (The United States' NAVSTAR Global Positioning System (GPS) is the most widely used GNSS; however, modern GNSS receivers may use signals from GPS and other GNSSs such as the Russian GLONASS, Chinese BeiDou and European Galileo systems.)
The accuracy of GNSS receivers suffers if a clear view of several satellites is not available. GNSS receivers can have difficulty in urban canyons, parking garages, tunnels, bridge lower decks or dense forests, as examples. Dead reckoning, meaning estimating position based on heading and distance traveled since the last GNSS position fix, is a way to fill in gaps in GNSS coverage. Dead reckoning is based on data obtained from sensors such as accelerometers, gyroscopes and odometers.
Gyroscopes used in vehicle navigation systems are inexpensive micro-electromechanical systems (MEMS). In 2015 a MEMS gyroscope cost only about $1. As in many things, you get what you pay for, and low-cost MEMS gyroscopes, while being an essential component of dead reckoning systems, have severe limitations. In particular, low-cost MEMS gyroscopes are not supplied with unit-specific characterization data or precise self-calibration mechanisms. A hundred gyros, all of the same type, may all produce different readings under identical operating conditions. Left uncorrected, these variations can lead to navigation errors.
Therefore, what are needed are systems and methods to track and estimate errors in low-cost MEMS gyroscopes found in vehicle navigation systems.
Advanced car navigation modules use both GNSS and dead reckoning (DR). DR fills in the gaps when GNSS accuracy is degraded or GNSS is not available. As an example, when a car travels through a mountain tunnel its GNSS receiver is blocked from receiving satellite signals and a navigation module cannot compute GNSS-based position or velocity. Instead, inertial and other sensors supply data from which position and velocity may be estimated. For example, a yaw gyro may keep track of heading changes while an odometer records how far the car travels. In dead reckoning mode, therefore, one factor that affects navigation accuracy is the accuracy of heading estimates based on yaw gyro data.
In a typical navigation module, gyroscope 110 is a low-cost MEMS gyroscope. Such gyroscopes usually include an internal temperature sensor. External sensors 130 may include an odometer and a forward/reverse indicator. An odometer may be used by a navigation filter when GNSS data is not available to determine whether or not the navigation module is moving. (“Odometer” includes any indicator of wheel rotation such as a wheel tachometer, speedometer, system for generating wheel ticks, and the like.) Optional accelerometer 115, if included, is a MEMS device. Navigation filter 125 comprises a microprocessor, memory and associated firmware. The navigation filter combines GNSS, gyroscope, accelerometer and external sensor data to produce position and velocity estimates. As an example, a navigation filter may implement a Kalman filter to estimate a state vector that includes position, heading, and sensor biases.
A MEMS gyroscope measures rotation rate around an axis. “Gyroscope” is used throughout to mean a device that measures rate of change of angle with time. Such devices may also be referred to as “rate gyros”. Gyroscopes, i.e. rate gyros, may be rotating gyroscopes or vibrating structure gyroscopes, also called Coriolis vibratory gyros. MEMS gyroscopes are Coriolis vibratory gyros, for example.
MEMS gyroscopes are often fabricated as a set of three gyroscopes in a module. The three gyroscopes measure rotation rates around three orthogonal axes.
Rotation rate around an axis may be estimated as the product of rotation rate around the axis as measured by a gyroscope minus gyroscope bias, and a scale factor. In symbols:
{dot over (θ)}=({dot over (θ)}g−B(T))·k
Here {dot over (θ)}g is rotation rate as measured by a gyroscope. (Dot notation indicates a time derivative:
B(T) is gyroscope bias. k is a scale factor; k may be a conversion factor that translates gyroscope rotation rate units into degrees per second, for example. {dot over (θ)} is the actual rotation rate as estimated from gyroscope measurements considering bias and scale factor. Gyroscope bias B(T) is a function of temperature, T, but may also depend on power on/off events and other sources of drift.
Bias B(T) may be estimated whenever rotation rate can be measured independently of the gyroscope. When a so-called “reference rotation rate”, {dot over (θ)}ref, is available, we have:
{dot over (θ)}ref=({dot over (θ)}g−B(T))·k
B(T) may then be estimated from:
k ·B(T)=k ·{dot over (θ)}g−{dot over (θ)}ref
In words, and ignoring scale factor k for a moment, the gyroscope bias is the difference between the rotation rate as measured by the gyroscope and the reference, or actual, rotation rate.
There are several different ways of obtaining a reference rotation rate while a gyroscope is in motion. First, if GNSS velocity information is available, then rotation rates may be inferred from attitude changes. For example if GNSS-velocity-derived heading changes from heading θ1 at time t1 to heading θ2 at time t2 then reference heading rate may be estimated as:
Alternatively, heading changes (as opposed to heading rate changes) may be compared to time integrated bias and time integrated gyroscope output:
k·∫
t
t
B(T)dt=k ·∫t
Here the change in heading (θ2−θ1) from t1 to t2 inferred from GNSS is compared to integrated rotation rate, k ·∫{dot over (θ)}g dt, as measured by a gyroscope. The difference is gyroscope bias, integrated over time. Note that it is possible that θ2=θ1 even if heading is not constant between t1 and t2. Heading might change from north to east and then back to north, for example. Non-zero bias would be revealed by a non-zero value of k ·˜{dot over (θ)}g dt in that case. Of course whenever an equation involves a heading change (θ2−θ1) one must keep track of zero crossings. A heading change from northeast, through north, to northwest is −π/2, not +3π/2, for example.
As a second example,
The time integrated form discussed above applies in the same way.
A third way to obtain a reference rotation rate is via video navigation. Video of pavement taken from a moving vehicle can be used for dead reckoning navigation and can provide estimates of attitude rate, for example. Most new cars have rearward facing video cameras that could be adapted to obtain video images for this purpose. Determining translational and rotational motion of a video camera from apparent motion of objects in successive video images is often referred to as an “optical flow” technique. Given a heading rate determined from video images, gyro bias may be estimated as described above.
Thus, a reference rotation rate may be obtained from one or more of several sources. When a reference rotation rate is available, gyroscope bias may be estimated in motion. If a gyroscope is not moving, on the other hand, then {dot over (θ)}ref=0 and B(T)={dot over (θ)}g. Bias estimates made at a standstill are simple and convenient, but it is not necessarily a good assumption that a vehicle will stop often during a driving trip. Many vehicles are used in nearly the same way every day. A commuter may start driving to work the say way every time he starts his car in the morning, for example. A bus may start from an overnight yard and proceed to its first passenger stop in the same way every day. After engine start, a gyroscope in the car or bus typically warms up (as the engine warms up) until a stable temperature is reached several minutes later. If the vehicle seldom or never stops during the first few minutes of its daily routine, then there may be few opportunities to calibrate B(T) at a standstill for temperatures encountered during the warmup period.
In normal operation, a navigation module in a vehicle updates its estimates for gyroscope bias whenever a reference rotation rate is available. This may include times when the vehicle is turned off and no one is in it. A navigation module may be programmed to wake up periodically, even when a vehicle is not operating, to obtain stationary gyro bias estimates and temperature data.
A vehicle may sustain significant periods of time when an accurate reference rotation rate is not available. Driving in an urban canyon formed by tall buildings or driving through a tunnel are common examples. During these periods bias cannot be estimated from GNSS measurements. Absent map matching, video or other another source of reference rotation rate, if gyroscope temperature changes during one of these periods, then navigation accuracy suffers.
Although it is well known that gyroscope bias is affected by temperature, low-cost MEMS gyroscopes are not usually shipped with detailed information on the shape of B(T) curves. As examples,
The graphs of
Laboratory measurements of several low-cost MEMS gyroscopes show that a set of gyroscopes, all of the same make and model, each have different bias characteristics. In other words, there is no set of three curves that applies to every three-axis, low-cost, MEMS gyroscope module having a certain part number from a given manufacturer. Each gyroscope module has unique bias characteristics. The bias characteristics of any gyroscope module also tend to differ by a random, constant offset each time the module is turned on.
Given that gyroscope bias is relatively stable over short time periods, but can vary significantly over long time periods or across power cycles, a simple look up table of bias versus temperature is not sufficient for estimating gyroscope bias at any particular time.
A graph of average B versus T is useful because it may be used to compute the rate of change of bias versus temperature,
And it turns out that
versus T is approximately the same for each of the curves that was averaged together (for example the curves of
The following method, performed by a navigation filter such as 125, is useful for estimating bias in low-cost MEMS gyroscopes used in car navigation modules:
Bias data may be stored in the memory of a navigation filter. Table 1 provides a conceptual example of a bias table:
In Table 1, the T column contains temperatures in units of [° C.]; the Average Bias B(T) column contains gyroscope biases in units of [deg/s]; the Bias Variance column contains the variance (in units of [(deg/s)2]) of the data used to compute the average bias; the Number of Points column contains the number of bias measurements used to compute the average bias; and the
column contains gyroscope bias rates in units of
(Of course other temperature, time and angle units may be used.)
Alternatively,
may be computed from B(T) on an as-needed basis rather than stored in a table. Furthermore,
may be approximated from discrete data points as, for example:
Here, subscript n enumerates discrete temperatures at which average B(T) data exists. Clearly, other discrete approximations for
suffice, such as those involving temperatures a few points farther removed from Tn. An approximation for
may be derived from B(T) at Tn−2, Tn−1, Tn, Tn+1, Tn+2, for example.
The variance of a set of bias measurements may be used as a criterion to decide whether or not to use the average of the measurements when computing
For example, if the variance of a set of bias measurements made at 21° C. is too large, then the utility of an average bias computed at 21° C. is suspect. A maximum variance may be specified such that if the maximum variance is exceeded for a set of bias measurements at a given temperature, then average bias at that temperature is considered inadequate for use in
computations.
The number of points, i.e. number of bias measurements, used to compute the average bias may be another criterion to decide whether or not to use the average of the measurements when computing
A minimum number of points may be specified such that average bias is considered inadequate for use in
computations unless at least that number of data points is available. As mentioned above in connection with
It is apparent from
Any particular MEMS gyro tends to have a B(T) curve that has an unknown, but repeatable shape, and an unknown offset that changes over long periods or power cycles. Given this behavior, the method described above provides a way to estimate B(T) when a vehicle is moving and accurate GNSS velocity data or other sources of reference rotation rate are not available. The method may be called “adaptive gyroscope bias compensation” since dB/dT versus T may be updated whenever new B(T) data is available. Adaptive gyroscope bias compensation allows a car navigation module to estimate position and velocity reliably during periods of GNSS unavailability even in the presence of temperature changes.
Adaptive gyroscope bias compensation may be extended in various ways. For example, B(T) data may exhibit hysteresis. The bias at a given temperature may depend upon whether that temperature was reached after a period of cooling or after a period of warming. Said another way, bias may depend not just on temperature, but on whether temperature is decreasing or increasing. Hysteresis may be taken into account by computing average biases for both decreasing and increasing temperatures.
Although most of the examples discussed so far involve yaw and reference yaw rates, pitch and roll rates are also valuable for vehicle navigation. Thus reference rotation rate may be estimated from attitude (i.e. pitch, roll and yaw) rates or attitude changes determined from GNSS, map-matching or video, as examples. When attitude change (as opposed to rate) is available, it is compared to integrated gyroscope output and integrated bias as discussed above.
Video and map-matching techniques may be preferred over GNSS as sources for pitch and roll reference rotation rates in some cases. In particular, maps are continually improving and map data with enough accuracy and precision to report road slopes that are useful for gyroscope calibration are now available. When a car starts up a hilly road, for example, map-matching may be used to estimate pitch rate as the slope of road changes. Video may be a useful source of roll rotation rate depending on the field of view of the video source.
When pitch and/or roll are used in navigation, the techniques for estimating B(T) described above may be repeated for each axis of interest. For example, tables like Table 1 may be created for the pitch, roll and yaw axes.
The techniques for estimating gyroscope bias, B(T), described above are useful in vehicle inertial navigation systems. In particular, gyroscope bias estimates may inform a gyroscope bias model when gyroscope bias is an element of a state vector in a Kalman filter.
The above description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Thus, the disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.