Cordless inertial vehicle navigation with elevation data input

Information

  • Patent Application
  • 20170052261
  • Publication Number
    20170052261
  • Date Filed
    August 20, 2015
    9 years ago
  • Date Published
    February 23, 2017
    7 years ago
Abstract
Elevation data obtained from a terrain database is a measurement in an inertial navigation system for land vehicles.
Description
TECHNICAL FIELD

The disclosure is generally related to navigation systems for land vehicles.


BACKGROUND

Inertial navigation supplements satellite navigation, especially when satellite signals are weak or obstructed. A global navigational satellite system (GNSS) receiver in a car or truck may have difficulty producing accurate position and velocity estimates near tall buildings or in tunnels, for example.


Many vehicle navigation systems receive sensor inputs from the vehicle in which they are installed. A common example is wheel rotation information sensed at a vehicle wheel and transmitted over a vehicle information bus. However, in some cases it is desirable for a navigation system to be “cordless”; i.e. not to have to rely on a connection to vehicle-supplied information.


One prior art solution (“Cordless inertial vehicle navigation”, U.S. Pat. No. 8,406,996) relies on inherent motion constraints of cars and trucks, and uses self-contained barometric altimeter measurements as an input to a navigation filter. That system ignores roll rates, lateral acceleration and vertical acceleration. Despite the success of that approach, further improvements are possible and often desirable for high performance cordless inertial navigation.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram for a vehicle navigation system with elevation data input.



FIG. 2 is a flow chart for overall operation of a vehicle navigation system.



FIG. 3 is a flow chart for a Kalman filter in a vehicle navigation system.



FIG. 4 provides a rendering of elevation data from an elevation database.



FIG. 5 provides a rendering of elevation and tilt data from an elevation database.





DETAILED DESCRIPTION

Cordless inertial vehicle navigation with elevation data input is a navigation solution appropriate for land vehicles, meaning vehicles such as automobiles and trucks that travel on the surface of the earth. The solution includes an elevation database that provides a source of vertical position measurements for a Kalman filter. This and other developments reduce or eliminate small error sources that have been found in prior art solutions through extensive testing.


In particular, three unexpected sources of small errors have been discovered in navigation systems such as those described in “Cordless inertial vehicle navigation”, U.S. Pat. No. 8,406,996. First, a no-roll assumption is not always valid for cars and trucks. Second, altitude measurements made in a vehicle cabin may not be reliable. Third, longitudinal accelerometer arm, L, can vary due to sideslip.


Although small, temporary roll rates can occur in cars and trucks due to their soft suspensions. When a roll rate occurs simultaneously with yaw, some of the roll may be observed as a pitch rate. This leads to pitch error and ultimately to positioning error. As a practical example, consider backing and turning out of a parking space. The small rolling motion that occurs when this maneuver is performed in a light cargo van, for example, has been observed to cause altitude errors as large as two meters in an inertial navigation system.


Micro-electromechanical systems (MEMS) pressure altimeters are reasonably accurate sources of barometric data, but their pressure estimates are only as useful as what might be called the “fidelity of the pressure sampling environment.” Ideally pressure is sampled from a static port with an opening parallel to significant airflow. In the worst case, the opening is pointed into the airflow and is greatly affected by dynamic pressure of air caused by motion of a vehicle. Open windows or even operation of an air conditioner fan can cause pressure changes in the cabin of a vehicle that are unrelated to elevation changes. The problem is worse at high speeds and can lead to altitude errors of ten meters or more.


When only longitudinal acceleration is measured, and lateral and vertical acceleration are ignored, one must take into account the distance of a longitudinal accelerometer ahead or behind a vehicle's pivot point. This “accelerometer arm”, L, affects longitudinal acceleration measurements during turns. The prior art describes a way to compensate for non-zero accelerometer arm but assumes that L is constant. In reality, effective accelerometer arm can change when entering or leaving a turn because of sideslip. In car racing parlance, when a vehicle is “loose” (yaw rate is greater than expected given steerable wheel angle and speed; rear wheels skid; over steer), then effective L is less than actual L when entering a turn. The effect is opposite in a vehicle that is “tight” (front wheels skid; understeer). This kind of error can lead to two or three meters lateral positioning error when entering a turn at highway speeds.


The three error sources just described are eliminated when elevation data input is used with cordless inertial navigation. Inertial navigation depends on accurate rotation rate and acceleration measurements. In particular, rate gyroscopes are used to keep track of the orientation of vertical; i.e. the direction of gravity or the direction to the center of the earth. Since gravitational acceleration (1 g at the surface of the earth, by definition) is usually the largest magnitude sustained acceleration of a land vehicle, small errors in an estimate of vertical become significant when accelerations are integrated once to estimate velocity and again to estimate position. Vehicle attitude errors lead to acceleration (and consequently position) errors, but an independent source of elevation data can be used to limit them.


An elevation database provides terrain height U (above sea level or some other suitable datum) as a function of position (E, N) on the earth's surface; one may write U=h(E, N) where E, N, U are east, north, up dimensions of a local coordinate system. As explained below, for purposes of a Kalman filter, obtaining U from an elevation database is considered to be a measurement on the database.


The structure and operation of a cordless inertial vehicle navigation system with elevation data input are now described in conjunction with the figures. FIG. 1 is a block diagram for such a system.


In FIG. 1, navigation filter 105 produces position, heading and speed estimates 110. These estimates may be rendered on a display 115 or sent to other devices, not shown. Estimates may be transmitted wirelessly to personal mobile devices of occupants of a vehicle, for example. Navigation filter 105 receives inputs from GNSS receiver 120, rate gyroscopes 125, accelerometers 130 and elevation database 135. The database may contain elevation data for a wide area of potential vehicle travel or it may receive pertinent elevation data wirelessly from a larger, stationary elevation database via data receiver 140.


Navigation filter 105 includes a microprocessor and associated memory and input/output facilities. The navigation filter implements a Kalman filter in firmware to synthesize an optimal estimate of vehicle state based on available measurements and a state dynamics model. GNSS receiver 120 may receive signals from satellites of the NAVSTAR global positioning system (GPS), Galileo, Glonass, Beidou and/or other global or regional navigational satellite systems. Rate gyroscopes 125 and accelerometers 130 are preferably MEMS devices having three orthogonal sensing axes each.


Elevation database 135 is an electronic store of elevation information; i.e. height tabulated versus lateral position. As an example, an elevation database may contain road surface height above sea level for a range of east and north coordinates. When an elevation database is queried with a lateral position (E, N), it returns elevation U at that position. A road database returns road height, for example. Only in the last few years have elevation databases become available that have sufficient accuracy and precision to be useful for providing U measurements to a Kalman filter for land vehicle navigation. An example of state-of-the-art elevation data, with accuracy better than about one meter, is HERE HD Map data which provides lane-level precision on roads and highways. (“HERE” is the name of a mapping company.) As discussed further below, an elevation database may also provide tilt (θ, φ)) in addition to height (U) data.


In a system such as that of FIG. 1, an elevation database may be stored in memory such as NAND flash memory, or static RAM or ROM, or other memory device. Such a device may have capacity to store global elevation data, or data for only a limited area, a few square miles to hundreds of square miles, for example. If a vehicle equipped with the system of FIG. 1 travels outside an area for which elevation data is stored in database 135, new data may be obtained. Data receiver 135 downloads elevation data on an as-needed basis from an elevation server (not shown). The data receiver may use WiFi, cellular or other wireless data networks to obtain elevation data from an elevation server. Alternatively a data memory card containing elevation data for a certain area (one or more cities or states, as an example) may be plugged into the system of FIG. 1.



FIG. 2 is a flow chart for overall operation of a vehicle navigation system. The system calibrates its inertial sensors in step 205. If GNSS signals are available (step 210), then vehicle position, heading and speed are estimated based on GNSS data (step 215) and sensor biases are calibrated in step 220. If GNSS signals are not available, such as when travelling through a tunnel, then the system relies on stored sensor biases (step 225) previously determined in step 220. Accelerometer, rate gyroscope and elevation database measurements are combined by a Kalman filter to estimate position, heading and speed without GNSS data in step 230. Further details on estimating sensor biases during changing temperature conditions may be found in “Vehicle navigation system with adaptive gyroscope bias compensation”, U.S. Ser. No. 14/676,595, filed on Apr. 1, 2015 and incorporated herein by reference.



FIG. 3 is a flow chart for a Kalman filter in a vehicle navigation system. The Kalman filter is a loop that includes a prediction step and a correction step. In the prediction step, state variables and their error covariances are projected ahead according to state dynamics equations. In the correction step, measurements are used to update estimates of the state variables. The Kalman gain is also computed and state variable error covariances are updated. At the level of detail shown in FIG. 3, the loop presented in the figure is generic to all Kalman filters, with the exception of the measurement on elevation database h(e, n), discussed below.


The details of a Kalman filter appropriate to cordless inertial vehicle navigation with elevation data input are now described in conjunction with Tables 1-6:









TABLE 1







List of symbols and their meanings.










Symbol
Meaning







L
Local ENU frame



B
Body frame



B2L
Body frame to local ENU frame



L2B
Local ENU frame to body frame



{right arrow over (A)}B*
Accelerometer measurement vector



ΩB*
Tait-Bryan rotation matrix containing rate




gyro measurements, biases and noise



ψ
Denotes yaw axis



θ
Denotes pitch axis



φ
Denotes roll axis



ωX
Angular rotation rate around the X axis as




measured by a rate gyroscope



h
Elevation database



g
Acceleration due to gravity near the surface




of the earth



D
Antenna height on a vehicle.



X*
Sensor measurement of variable X







{dot over (X)}




dX
dt











βX
Bias associated with variable X



υX
Sensor noise associated with variable X



{circumflex over (X)}
Kalman filter estimate of variable X

















TABLE 2







Kalman filter state variables and dynamics equations.









State Description
State Variables
State Dynamics Equations





Position in a local

custom-character  = (e, n, u)


custom-character  = custom-character



ENU frame




Velocity in a local

custom-character

{dot over (ν)}L = TB2Lcustom-character  +


ENU frame

(0, 0, g)


Direction cosine
TB2L = TL2BT
{dot over (T)}B2L = TB2LΩB*


matrix from body




to local frame




Accelerometer bias

custom-character


custom-character  = 0 + custom-character



Elevation database
βh
{dot over (β)}h = 0 + νh


bias




Yaw rate gyro bias
βψ
{dot over (β)}ψ = 0 + νψ


Pitch rate gyro bias
βθ
{dot over (β)}θ = 0 + νθ


Roll rate gyro bias
βφ
{dot over (β)}φ = 0 + νφ


Yaw rate scale
γψ
{dot over (γ)}ψ = 0 + νψ


factor bias
















TABLE 3







Kalman filter control variables.








Control Description
Control Variables












Rate gyro measurement
ΩB*
Control Variables


matrix

appear in


Accelerometer

custom-character

State Dynamics Equations


measurement vector
















TABLE 4







Kalman filter measurement variable and measurement equation.









Measurement
Measurement
Measurement


Description
Variable
Equation





Measurement on elevation
zh* = D = const.
zh* = u − h(e, n)


database, h.
















TABLE 5







Kalman filter GNSS measurement variables


and measurement equations.









GNSS Measurement
GNSS Measurement
GNSS Measurement


Description
Variables
Equations





East
e(GNSS)
e(GNSS) = EGNSS + νEGNSS


North
n(GNSS)
n(GNSS) = NGNSS + νNGNSS


Up
u(GNSS)
u(GNSS) = UGNSS + νUGNSS
















TABLE 6







Kalman filter GNSS state variables and dynamics equations.









State Description
State Variables
State Dynamics Equations





GNSS clock bias
B
{dot over (B)} = f


GNSS clock frequency
f
{dot over (f)} = 0 + νf









The state variables for inertial navigation in the Kalman filter presented in Tables 1-6 include position, velocity and attitude of a GNSS antenna on a vehicle, and sensor biases. Vehicle attitude (i.e. yaw, pitch, roll) is represented by a direction cosine matrix, TB2L, that represents the orientation of a vehicle body reference frame with respect to a local (east, north, up) coordinate system. Other representations such as Euler angles, Tait-Bryan angles or quaternions are suitable alternatives to the direction cosine matrix. The time rate of change of the direction cosine matrix is proportional to a Tait-Bryan rotation matrix, ΩB*, that includes rate gyroscope measurements, biases and noise:







Ω
B
*

=


[



0





γ
ψ



ω
ψ


-

β
ψ

+

v
ψ





-

(


ω
θ

-

β
θ

+

v
θ


)







-

(



γ
ψ



ω
ψ


-

β
ψ

+

v
ψ


)




0




ω
φ

-

β
φ

+

v
φ








ω
θ

-

β
θ

+

v
θ





-

(


ω
φ

-

β
φ

+

v
φ


)




0



]

.





The measurement in the Kalman filter presented above is a measurement of vehicle GNSS antenna height. The measurement equation, zh*=u−h(e,n), expresses the idea that the height of the antenna above ground is the antenna's u coordinate minus the ground elevation. For example, if the antenna u coordinate is 10 meters and the ground elevation is 8 meters, then the antenna height above the ground is 2 meters. Ground elevation is provided by an elevation database, h(e,n), that returns u given lateral position (e, n).


The measured GNSS antenna height zh* is a constant because a land vehicle is assumed not to leave the ground. Intuitively one may appreciate that the database input places a bound on the Kalman filter's estimate for u. This in turn limits the effects of errors in estimates of the orientation of vertical that come from rate gyroscope drift.


The model presented above doesn't include second order effects due to east and north coordinates of a land vehicle antenna being slightly different from (e, n) “under” the antenna when the ground is not level; however, these effects may be accounted for by considering direction cosines between a vehicle's yaw axis and the up unit vector in the local (e, n, u) reference frame. The rotation of the earth, which is less than 0.1 mrad/s, is also not included in the model.


The estimate of the measurement, f, is defined by:






f=û−h(ê,{circumflex over (n)})


The Kalman filter innovation, or measurement minus estimate of the measurement, is:











z
h
*

-

z
^


=



D
-

f


(





e
^

,





n
^

,




u
^




)









=




f


(

x


)


+

v
h

-

f


(

x
^

)

















f




x






(


x


-

x
^


)


+

v
h













H


(


x


-

x
^


)


+

v
h









D, a constant, is the design antenna height on a vehicle, typically 1 to 2 meters. In the equations above, {circumflex over (x)} is the estimated position vector (ê, {circumflex over (n)}, û) and H is the Kalman observation matrix (a vector in this case),









f




x




=


(





-




h


(

e
,
n

)





e



,





-




h


(

e
,
n

)





n



,



1



)

.





vh is the noise associated with measurements on the elevation database. If pitch and bank information can't be determined from a database, then one may assume






H
=




f




x




=


(




0
,




0
,



1



)

.






When GNSS data is available, state variables for position become e(GNSS), n(GNSS) and u(GNSS) where the (e, n, u) coordinate system (a linearized approximation around a latitude, longitude, altitude) is useful, but not an essential choice. If GNSS pseudorange and Doppler measurements are used instead of computed GNSS fixes, then GNSS clock bias and frequency are included in Kalman filter state equations as presented in Table 6.



FIG. 4 provides a rendering of elevation data from an elevation database. The figure shows a road 405 in an east, north, up coordinate system 410. The small triangles in the figure represent measurements of U given (E, N), expressed as U=h(E, N) where function h represents the operation of a database. In the Kalman filter presented above, the database may be affected by bias and noise. Bias represents constant (or nearly so) errors in the database, while noise represents random errors. Both types of errors are expected to be less than about one meter for state-of-the-art elevation data.


Some elevation databases may provide additional information beyond basic elevation data. FIG. 5 provides a rendering of elevation and tilt data from an elevation database, for example. FIG. 5 shows a small patches 505, 525 of road 520 in an east, north, up coordinate system 510. The small patches represent measurements on the database: given position (E, N) the database returns not only the elevation, U, of the patch of ground, but also its tilt, (θ, φ). In this example, θ is the angle between the U axis and a projection of a normal 515 to the patch of ground on the U−N plane. φ is the angle between the U axis and a projection of the normal on the U−E plane. (Clearly, other definitions for tilt angles may be used. Euler angles and quaternions are examples of other systems that may be used to represent the relative orientation of a small patch of ground and a local coordinate system.)


Tilt angles supplied by an elevation database (or computed from elevation data) reveal the sensitivity of elevation measurements to horizontal displacement. If a section of terrain is level, or nearly so, then h(e, n)≅h(e+δ, n+ε) where δ and δ are small displacements. On the other hand if the section of terrain is tilted, then tilt angles








θ
~



h



n








and






φ
~



h



e




,




may be included in a Kalman filter to more accurately compute state variable covariances.


A common situation is a database from which pitch information in the direction of travel along a road (“along track”) is provided (or can be computed), but no road bank information is available. In the absence of road bank information, vehicle roll may be averaged over a minute or two to find roll rate gyroscope bias. This procedure is based on the assumption that over long periods of time, the average roll angle of a land vehicle is zero; i.e. on average, it is not rotated away from level about the roll axis.


Map matching, e.g. “snapping” GPS position to the nearest plausible roadway in a database, may be used in conjunction with the techniques described above to further bound lateral position estimates.


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.

Claims
  • 1. A system for estimating the position of a land vehicle, the system comprising: a navigation filter that receives input from a GNSS receiver, a three-axis rate gyroscope, a three-axis accelerometer, and an elevation database; wherein,the elevation database stores elevation data and sends an elevation estimate to the navigation filter in response to a query from the filter, the query containing a lateral position for which an elevation estimate is sought; and,the navigation filter implements a Kalman filter to estimate position of the land vehicle based on GNSS data when GNSS signals are available and based on gyroscope, accelerometer and elevation database input when GNSS signals are not available.
  • 2. The system of claim 1, the database further storing road tilt data and sending a road tilt estimate to the navigation filter.
  • 3. The system of claim 2, the tilt data comprising along-track road pitch information.
  • 4. The system of claim 3, the tilt data further comprising road bank information.
  • 5. The system of claim 1, the query implemented in a measurement in the Kalman filter.
  • 6. The system of claim 5, the measurement being a measurement of a constant antenna height of the land vehicle.
  • 7. The system of claim 1 further comprising a data receiver that updates the elevation database with elevation data from an elevation server.
  • 8. The system of claim 1, the navigation filter calibrating sensor biases when GNSS signals are available and the navigation filter using stored sensor biases when GNSS signals are not available.
  • 9. The system of claim 1 wherein the gyroscope and the accelerometer are MEMS devices.
  • 10. The system of claim 1 wherein the navigation filter sends position estimates to a display.
  • 11. A method for estimating the position of a land vehicle, the method comprising: a navigation filter receiving input from a GNSS receiver, a three-axis rate gyroscope, a three-axis accelerometer, and an elevation database; wherein,the elevation database stores elevation data and sends an elevation estimate to the navigation filter in response to a query from the filter, the query containing a lateral position for which an elevation estimate is sought; and,the navigation filter implements a Kalman filter to estimate position of the land vehicle based on GNSS data when GNSS signals are available and based on gyroscope,accelerometer and elevation database input when GNSS signals are not available.
  • 12. The method of claim 11, the database further storing road tilt data and sending a road tilt estimate to the navigation filter.
  • 13. The method of claim 12, the tilt data comprising along-track road pitch information.
  • 14. The method of claim 13, the tilt data further comprising road bank information.
  • 15. The method of claim 11, the query implemented in a measurement in the Kalman filter.
  • 16. The method of claim 15, the measurement being a measurement of a constant antenna height of the land vehicle.
  • 17. The method of claim 11, further comprising a data receiver updating the elevation database with elevation data from an elevation server.
  • 18. The method of claim 11, the navigation filter calibrating sensor biases when GNSS signals are available and the navigation filter using stored sensor biases when GNSS signals are not available.
  • 19. The method of claim 11 wherein the gyroscope and the accelerometer are MEMS devices.
  • 20. The method of claim 11 wherein the navigation filter sends position estimates to a display.