Braasch M Fundamentals of Inertial Navigation Systems and Aiding 2022
Braasch M Fundamentals of Inertial Navigation Systems and Aiding 2022
The Institution of Engineering and Technology is registered as a Charity in England & Wales
(no. 211014) and Scotland (no. SC038698).
This publication is copyright under the Berne Convention and the Universal Copyright
Convention. All rights reserved. Apart from any fair dealing for the purposes of research
or private study, or criticism or review, as permitted under the Copyright, Designs and
Patents Act 1988, this publication may be reproduced, stored or transmitted, in any
form or by any means, only with the prior permission in writing of the publishers, or in
the case of reprographic reproduction in accordance with the terms of licences issued
by the Copyright Licensing Agency. Enquiries concerning reproduction outside those
terms should be sent to the publisher at the undermentioned address:
www.theiet.org
While the author and publisher believe that the information and guidance given in this
work are correct, all parties must rely upon their own skill and judgement when making
use of them. Neither the author nor publisher assumes any liability to anyone for any
loss or damage caused by any error or omission in the work, whether such an error or
omission is the result of negligence or any other cause. Any and all such liability
is disclaimed.
The moral rights of the author to be identified as author of this work have been
asserted by him in accordance with the Copyright, Designs and Patents Act 1988.
Cover Image: Flight paths illustration: Sean Gladwell/Creative via Getty Images
Contents
Index 383
This page intentionally left blank
About the author
Michael Braasch holds the Thomas Professorship in the Ohio University School
of Electrical Engineering and Computer Science and is a principal investigator with
the Ohio University Avionics Engineering Center, USA. He has been performing
navigation system research for over 35 years and has taught inertial navigation on-site
for numerous manufacturers of navigation-grade inertial systems. He is an instrument-
rated commercial pilot and is a fellow of IEEE and the US Institute of Navigation.
This page intentionally left blank
Preface
The subject of inertial navigation systems and how to aid them (i.e., reduce their
inherent error drift) is complex and multi-disciplinary. Mathematics and physics along
with electrical, mechanical, and software engineering all are involved. I have had the
privilege of teaching the subject for over 25 years and have long noted that if I placed
all the necessary foundational courses as pre-requisites, the class would have few, if
any, students.
This book has been written to serve as an introduction for students and those new
to the field. Although I personally teach the subject strictly at the graduate level (a
one-semester course on inertial systems and a one-semester course on aiding), the
material is accessible to most seniors in engineering as well. Specialized topics such
as rotation matrices, quaternions, and relevant stochastic processes are covered in
the book. The reader is expected to have a basic understanding of vectors, matrices,
matrix multiplication and Laplace transforms as well as freshman-level differential
and integral calculus.
The reader will find the book has a distinctly conversational tone and style. This
was done intentionally with the hope that it will prove to be more accessible than the
average graduate-level textbook. When the depths of a particular topic are beyond the
scope of the book, the reader is referred to select relevant references.
I have a “build a little, test a little” approach to the subject. Inertial navigation in a
(conceptually) simple inertial reference frame is introduced before all the complexities
associated with a spheroidal, rotating earth are covered. The key concepts of the
Kalman filter are described in the context of a simple, scalar example before the reader
is overwhelmed with all the matrices of the full multi-variate filter. The concept of
inertial system aiding is first described in the context of a one-dimensional example
(a rocket sled!). Again, it is my sincere hope that this approach will allow those new to
the subject to ease into it and, along the way, gain a better conceptual understanding.
Although my name is on the title page, it should come as no surprise that there are
a great many individuals who have contributed to this effort. Since 1985, I have had
the distinct privilege of working in the Ohio University Avionics Engineering Center.
My friends, colleagues, mentors, and supervisors are too numerous to list but it was
in this research lab that I became a navigation engineer and learned the fundamentals
of inertial navigation, satellite-based navigation, and navigation system integration.
In 1994, I was appointed to the faculty of the School of Electrical Engineering and
Computer Science at Ohio University and within a few years started to teach graduate
courses in these subjects.
xvi Fundamentals of inertial navigation systems and aiding
In the late 1990s, Dr Mikel Miller (then on the faculty of the US Air Force Institute
of Technology) took my barely legible handwritten notes and converted them into a
beautiful set of illustrated PowerPoint slides. That slide deck, although modified by
me over the years, served as the basis for my lectures which, in turn, served as the
basis for this book. I have had the privilege of teaching this material at all three
US manufacturers of navigation-grade (i.e., “high end”) inertial navigation systems:
Honeywell, Kearfott, and Northrop Grumman. The feedback I have received when
teaching at these companies has been very valuable. I must single out Mr Phil Bruner
(Northrop Grumman) for the numerous occasions in which he patiently explained
fundamental concepts to me. I also gratefully acknowledge the most excellent short
course on the Integration of GPS with Inertial Navigation Systems presented by Dr
Alan Pue (Johns Hopkins University). Of course, my most regular feedback comes
from the many students who have been taking my courses in this subject area since
1997. Their feedback on early drafts of the manuscript has been very helpful indeed.
Although I had a couple of false starts (both of my sabbaticals were overcome by
events, etc.), when I was approached by the Institution of Engineering and Technology
(IET) in 2020 to write a book on this subject, all the pieces were finally in place to
make it happen. I especially want to thank Nicki Dennis, Books Commissioning
Editor, for her steadfast encouragement and support. Aside from the multiplicity of
MATLAB® plots, nearly all the remaining graphics were created by Mindy Yong
(mindyyongart.com). Since my own graphics skills do not even rise to the level of
being called primitive, her contributions are beyond my words to express gratitude.
Over the decades, my wife and two daughters (now both grown and married)
lovingly and patiently dealt with many evenings when I was at the office instead of
being at home. I dedicate this book to them.
Chapter 1
Introduction and overview of inertial
navigation systems
The kidnapping example captured all of these elements. You knew where you
started from (remember, you were kidnapped from your home). Thus the initialization
problem was not an issue because you knew where you were to begin with. You
inertially sensed your angular rotations and your linear accelerations through the
swaying of your body. You had a frame of reference since, presumably, you have
some mental model of the layout of your hometown (e.g., your own mental version
of a street map).
But of course, if you are the least bit honest with yourself, you will also recognize
that as time goes on you will become more and more uncertain of your position. In all
dead reckoning systems, errors accumulate over time. This is particularly true if you
are going over long stretches without much change in the acceleration or angle. It will
be difficult to keep track of time, and again, whatever errors you had to begin with
will just continue to grow. All inertial navigation systems, as with all dead reckoning
type systems, exhibit this error-growth behavior.
Introduction and overview of inertial navigation systems 3
So, the background stars are one example of an inertial reference frame. Are there
any others? Yes indeed. Any frame moving at constant velocity with respect to any
other inertial reference frame is also an inertial reference frame. Note that when we
are talking about reference frames it is quite acceptable simply to think of a Cartesian
coordinate system. For our purposes, they are essentially the same. So imagine a 3D
coordinate system that is fixed out in space or is moving with constant velocity with
respect to the stars. These are inertial reference frames.
x(t) = x0 + V (t − t0 ) sin ψ
y(t) = y0 + V (t − t0 ) cos ψ
Thus, for linear motion with constant velocity and a 2D coordinate system, the
positioning problem is solved. However, the solution is only valid under these very
restrictive assumptions.
How do we go beyond that? How do we handle more realistic scenarios? We
need to be able to accommodate accelerations, turns, and all sorts of more complex
motions that a vehicle may go through. How do we do it?
Introduction and overview of inertial navigation systems 5
A related topic is guidance. Frequently you will see the phrase “guidance, navi-
gation and control” or GNC or GN&C. Within the context of aviation, navigation is
the determination of position, velocity, attitude, and perhaps time as well. Guidance
has to do with determining the desired course and providing the necessary indications
to stay on course. For example, if the vehicle is half a mile east of some desired route,
then the guidance system needs to determine that and provide a course correction.
The guidance system thus needs to know both the desired path as well as the current
vehicle position.
The guidance task is thus the process of using the navigation information (e.g.,
position) in order to provide steering or maneuvering commands to maneuver the
vehicle onto the desired path or desired route. The third part of guidance, navigation,
and control is the control system itself. The navigation system determines where the
vehicle is, the guidance system determines what changes are needed to the current
trajectory, and the control system physically maneuvers the vehicle onto the desired
path. The control system can be either manual (i.e., a human pilot) or automatic.
Either way, navigation and guidance tasks still play vital roles.∗
∗
The launch and space community have alternate definitions of GN&C which shall not be addressed here.
Introduction and overview of inertial navigation systems 7
gimbal set. Although not fully illustrated in the figure, multiple mechanical gyros
can be used to hold the center platform (stable element) in a fixed orientation and the
gimbals allow the vehicle to rotate around it.
Thus, it is possible to mechanically isolate the sensors such that one accelerometer
always points north and one accelerometer always points east. From their measure-
ments, you can determine north and east velocity and then, hence, changes in latitude
and longitude. An INS using this mechanical isolation technique is referred to as a
“gimballed INS” or a “platform INS” since the “platform” is the rotationally isolated
fixture inside the gimbals on which the accelerometers are mounted.
The second way to instrument a reference frame is to hard mount the accelerom-
eters to the vehicle itself (or, rather, hard mount the accelerometers inside the case of
the INS that is itself hard-mounted to the vehicle). Since the accelerometers will, in
general, not be pointing in reference directions (e.g., north, east), it is necessary then
to keep track of the changes in the angular orientation of the vehicle and resolve the
accelerometer measurements into the directions of interest. This type of architecture
is referred to as a “strapdown INS” since the sensors are physically strapped to the
INS case/shell which is strapped to the vehicle. As a result, the sensors are not free
to rotate independently of the vehicle.
†
As much as I would like to claim credit for this bit of humor, I must acknowledge hearing it from my former
supervisor, Robert W. Lilley, Emeritus Director of the Avionics Engineering Center at Ohio University.
10 Fundamentals of inertial navigation systems and aiding
Then there is the need to determine heading. Historically that has been performed
with a magnetic compass. In the early 1900s, the gyrocompass was developed. And
finally, one also has to be able to keep track of time. Prior to modern systems, dead
reckoning had fairly crude accuracy.
Heading could be estimated to within a few degrees based on a magnetic com-
pass or early gyrocompasses. Then, the ability to measure speed was limited. In
centuries past, mariners had a log. That is, a literal piece of wood. A weighted wedge-
shaped piece of wood (with a knotted rope attached) was thrown over the side of
the ship. That is where we get speed in terms of “knots,” because the rope that was
attached to the log had knots at regular intervals. The log was thrown overboard
and a count was taken of the number of knots that passed in the paid out line over
some interval of time. The count provided an indication of speed [3]. The accuracy
was not perfect nor was the measurement of time. Thus, the computation of dis-
tance traveled (given by the product of speed and elapsed time) was approximate
at best.
Thus a mechanical-type compass that was not based on magnetic properties was
needed. The gyrocompass filled that role. This is not merely a historical note. We are
still making gyrocompasses today. Additionally, they were crucial in the development
of inertial navigation due to an investigation of their errors.
Specifically, when a boat would undergo lateral acceleration, that force would
cause errors in the gyrocompass’ output. This was a significant problem. One of the
principal manufacturers of gyrocompasses was Anschütz-Kaempfe in Germany and
the problem was solved by Maximillian Schuler.
We will cover this in more detail in a later chapter but Schuler discovered that the
gyrocompass problem could be solved by mechanically tuning it such that it had an
undamped, natural period identical to a theoretical pendulum with a length equal to the
radius of the earth. Such a gyrocompass would then be insensitive to accelerations
in the horizontal direction. Do not worry about understanding this completely at
the moment. We will get into the details later. The important thing is that Schuler’s
work with regard to gyrocompasses turned out to be a very fundamental analysis
used in the development and characterization of modern inertial navigation systems
(recall that an inertial system needs to determine the local vertical and horizontal
directions).
In parallel with Anschütz-Kaempfe, the Sperry Company developed the gyro-
compass as well. There were patent disputes between the two companies and it turns
out that Einstein himself was actually involved with some of those disputes since he
was a patent examiner early in his career. Sperry also produced autopilot equipment
for early aircraft. Gyroscopes provided the ability to measure short-term angular dis-
turbances. Imagine you are in an aircraft and you want to fly straight and level. If
the wind causes a disturbance, Sperry’s gyroscopes could measure the perturbation
and provide feedback through an automatic control system in order to maintain sta-
bility in the flight. This was one of the earliest uses of inertial sensing technology in
aviation.
Throughout the 1920s aircraft development continued. One of the main uses
of aircraft after World War I was for carrying mail. Passenger service also slowly
grew. There was soon a need for instrumentation so that pilots would not have to
navigate solely by visual reference to the ground. Gradually, more instrumentation
was developed to make the pilot’s job easier, and to enable them to be able to fly even if
the weather conditions were not all that good. Rate of turn indicators were developed
along with artificial horizons and directional gyroscopes. All were developed for
aircraft in the 1920s and all were based on inertial sensing principles.
Open-loop accelerometers were developed at this time and north-seeking devices
were used in terrestrial applications. Boykow, in Austria, conceived the use of
accelerometers and gyroscopes in order to produce a full inertial navigation sys-
tem but in the 1920s and early 1930s the sensor technology was not sufficiently
mature [5]. Prior to and during World War II, there were tremendous technological
developments. One item of note was the development of the V2 rocket by Germany.
The V2 demonstrated some principles of inertial guidance but not inertial navigation.
The late 1940s and early 1950s are considered by most to be the time of the origin
of modern inertial navigation. It was during this time that gyroscope technology was
12 Fundamentals of inertial navigation systems and aiding
advanced dramatically. Prior to this time, the best gyroscopes would drift approxi-
mately 10 degrees per hour. This is perfectly acceptable if the purpose is to measure
turn rate over a few seconds for stabilization applications. However, this is not nearly
sufficient for navigation. It was in the early 1950s that the technology was advanced
to reduce the gyro drift rate to the order of 0.01 degree per hour. Note that this is three
orders of magnitude improvement! This enabled the production of inertial navigation
systems capable of determining position and velocity over long periods of time (e.g.,
hours) and not incur hundreds of miles of error in the process.
Charles Stark Draper, affectionately known as “Doc Draper” at MIT, led the
group (known as the Instrumentation Lab) that did much of the early development
in inertial navigation. It was his group that eventually designed and developed the
floated rate-integrating gyro. It was a particular type of mechanical gyro considered by
many to be near the pinnacle of spinning mass mechanical gyro designs. At the same
time, there were important developments in the accelerometer. The principle of force
feedback was applied to improve the accuracy and dynamic range of accelerometers.
Both the gyro and accelerometer technology were thus advanced significantly in this
period of the early 1950s culminating in the first demonstration of a cross-country
flight from Massachusetts to California nonstop with the aircraft being guided solely
by inertial navigation [6].
After that occurred, research was aimed at making the system smaller. That first
transcontinental crossing had an inertial system that was the size of a small room. In
fact, they had to install it in a United States Air Force bomber because that was the
only airplane big enough to be able to house it. Initially INSs were only feasible for
submarines, ships, ballistic missiles, and the like. Not until the late 1950s and early
1960s did the systems become small enough for installation on small aircraft such as
fighter jets.
Also in the 1960s, non-mechanical gyroscopes (now referred to as “optical
gyroscopes”) were under development. Research and development of the ring laser
gyroscope (RLG), for example, was started in the 1960s, matured in the 1970s, and
went into production in the 1980s. Work on the fiber optic gyro (FOG) also started
in the 1960s, but high-precision versions (capable of supporting long-range unaided
navigation) did not mature until the 1990s. In the 1970s, computational capabilities
increased such that strapdown INS was feasible (strapdown processing requires much
more intensive computational capability than a gimballed INS). Since strapdown INS
do not have rotating mechanical components, they have significantly higher reliability
and thus have largely replaced gimbal systems.
Most recently, microelectromechanical systems (MEMS) technology has been
applied to the miniaturization of gyroscopes and accelerometers. These chip-scale
devices are used widely in smartphones and, for example, in automobile airbag
deployment systems. In the navigation area, these devices were developed for use
in artillery shells (they can withstand the tens of thousands of Gs experienced when
the shell is fired) but more recently have been utilized in a wider variety of appli-
cations. As of the early 2020s, the development of navigation-grade MEMS sensors
was well underway.
Introduction and overview of inertial navigation systems 13
signals. Thus, inertial navigation is very robust due to its ability to operate in a self-
contained manner. For most practical purposes it cannot be jammed. Inertial systems
have limitations but they are completely independent of the error sources that affect
radio navigation systems.
A typical air transport grade (nav grade) inertial navigator will drift on the order
of one nautical mile per hour. Thus, if an aircraft departs Los Angeles and takes 10–12
hours to get to Tokyo, the on-board inertial system will be off by approximately 10–
12 miles upon arrival. There are inertial systems with worse performance. So-called
“tactical grade” systems are one to two orders of magnitude worse in performance
than nav grade systems and thus can only be used over relatively short periods of
time (e.g., minutes) unless aided by an external source. “Consumer grade” systems
are typically a few or several orders of magnitude worse than tactical grade systems.
Such systems typically are used to provide attitude and heading or are used to “coast”
for a few seconds in between position/velocity fixes provided by other systems such
as GNSS.
There are also inertial systems that are much better than nav grade systems. The
systems installed on submarines and intercontinental ballistic missiles (referred to
as “strategic grade”) perform significantly better than one nautical mile per hour
(although the specific performance is typically classified). In the case of the missiles,
of course, the vehicle has a short flight time. In the case of submarines, the vehicle
has the luxury of having sufficient space such that it can house larger instruments that
have better accuracy.
of a second). However, the advantage that GNSS has is that its errors are stable. If we
set up a GNSS receiver at a surveyed location, we would find that it provides position
with an accuracy on the order of five meters. If we left and came back an hour later,
the accuracy would still be on the order of five meters. If we left and came back a
week later, the accuracy would be about the same. The GNSS error does not drift
significantly over time.
We want to be able to take advantage of the benefits of the inertial and the GPS.
We want the low noise, high dynamic capability of the INS along with the high data
rate and low data latency. On the other hand, we want to keep the long-term stability
of the GNSS error (no drift!).
Historically, the optimum approach has been to perform the integration (fusion)
of the data within a Kalman filter. INS and GNSS have certain error characteristics and
they are modeled in the Kalman filter in an algorithm that is able to integrate/blend the
measurements both from the INS and the GNSS to provide the optimum determination
of position, velocity, and attitude.
References
[1] Thomas S. The Last Navigator: A Young Man, An Ancient Mariner, The Secrets
of the Sea. Camden (ME): International Marine/McGraw-Hill; 1987.
[2] ION Virtual Museum [homepage on the Internet]. Manassas, VA: U.S. Institute
of Navigation; c2004. [cited 2021 Aug 17]. Available from: https://www.ion.
org/museum/.
16 Fundamentals of inertial navigation systems and aiding
zi
xi yi
Equatorial plane
Figure 2.1 The earth-centered inertial frame (ECI or i-frame). The frame is
centered in the earth but does not rotate
The next frame of interest is the so-called ‘earth-centered, earth fixed’ (ECEF) frame,
also known as the earth frame or the e-frame. In Figure 2.2, the e-frame axes are
labeled xe , ye and z e . The e-frame is centered in the Earth and it is also fixed to the
Earth. It does rotate with the Earth. Clearly the e-frame is not an inertial frame in any
way. The x and y axes of the e-frame are in the equatorial plane and the positive xe axis
is defined as having its origin at the center of the Earth and it intersects the equator at
the prime meridian (i.e., the line of zero degrees longitude). As with the i-frame, the
e-frame z-axis is aligned approximately with the Earth’s polar axis. The e-frame y-axis
is simply orthogonal to xe and z e in order to form a right-hand coordinate system.
ze
xe ye
xn
yn
Sun Sun
Gimbal
North
North Pole
Pole
6 pm
Noon Gimbal
Figure 2.4 Illustration of the effect of ignoring earth rate on a gimbaled platform
mounted in a stationary vehicle on the equator. At noon, the platform is
locally level just as the host vehicle is. However after six hours, the
Earth (and vehicle) have rotated by 90 degrees whereas the gimbaled
platform has maintained its original orientation (due to the gyros and
gimbals). It is thus no longer locally level
Anchorage
s
Lo geles
An
The second rotational rate that must be applied is transport rate (or craft rate). It
is the rotation due to the movement of a vehicle over the curved surface of the Earth.
Thus, in a gimbaled inertial system the platform must be physically rotated (‘torqued’)
to account for the motion of the vehicle over the Earth. Figure 2.5 illustrates what
happens if transport rate is ignored.
Thus, we see that in order to keep the frame locally level, we have to rotate it with
earth rate and with transport rate. The discussion so far has been focused on keeping
the frame locally level but one of the axes also must be kept pointed at north (for NED
or ENU frames). As the Earth rotates, the local level frame has to be rotated around
the local vertical in order to keep one of the axes north pointing. The same is needed
as the vehicle traverses over the surface of the Earth.
For vehicles operating in the vicinity of the Earth’s poles, a different locally level frame
is needed. To understand why, consider a vehicle that just barely skims past, say, the
North pole. If it has a mechanical gimbaled inertial system onboard, a motor must
rotate the accelerometer platform to keep the north accelerometer pointed towards
north. This will not be possible because even for a reasonable finite vehicle velocity,
as the vehicle just skims past the North pole, the rate at which the platform must be
torqued (about the vertical) to keep the north accelerometer pointed north approaches
infinity. In actual practice the rate will easily exceed the motor limits. Even in a
strapdown inertial system, double-precision arithmetic in the processor will not be
able to accommodate the enormous vertical rotational rate needed to mechanize,
virtually, the locally level (and north-pointed) frame.
The solution is conceptually simple. If the problem is that one cannot keep a given
axis pointed north, then do not even bother to try. The so-called “Wander frame” or
“Wander Azimuth” frame (or w-frame) is a frame that is very similar to the n-frame.
The only difference is that its x-axis is not necessarily pointed toward north. It is
allowed to ‘wander away’ from north as the vehicle operates. More details will be
provided in a later chapter.
Yb Xb
Zb
nose right-wing down frame correspond to positive Euler angles of roll, pitch, and
yaw.
The last set of frames that need to be considered are the sensor frames. Ideally, the
accelerometer and gyro triads would be co-located at the origin of the body frame.
That would be very convenient if it were possible. In our subsequent processing,
we will assume so just for the sake of convenience. However, this is unrealistic for
two reasons. First, the origin of the body frame is close to the center of gravity of
the vehicle itself and typically it is loaded with fuel or payload. It is not practical
to mount an inertial system at the vehicle origin. The second reason is, even if the
space were available, it is not possible to mount all of the sensors in precisely the
same spot. They physically cannot occupy the same location. We need three gyros
and three accelerometers and they cannot all be mounted in one specific point on the
vehicle itself.
As a result, we need to have separate coordinate frames: one for the three
accelerometers and one for the three gyros. We can refer to the accelerometer frame as
the a-frame and we can refer to the gyro frame as the g-frame. Ideally, we would have
a simple relationship between the sensor frames and the body frame. This is similarly
unrealistic since it is impossible to mount the three sensors such that they are perfectly
orthogonal to each other. Manufacturing imperfections prevent a given sensor triad
from being mounted perfectly 90 degrees apart. As a result, the non-orthogonality
between the sensors of a given triad is an error source that can partially be compen-
sated through calibration and external aiding. For the remainder of this book, we will
assume the calibration process has already been done. Details on calibration may be
found in [1]. We will also assume that the gyro and accelerometer measurements have
already been converted from the sensor frames into the vehicle body frame.
angular relationships between different kinds of frames. Along the way, we will see
that in the process of doing so, we will be describing the orientation of the vehicle.
This topic is rooted in the physics of rigid body kinematics. We will boil it down to
the essentials that we need for the topic at hand.
It can be derived formally, but for our purposes suffice it to say that any general
motion of a rigid body can be viewed as simply a combination of translation and
rotation. Figure 2.7 is an illustration of a vehicle at a particular time, tk , and also at
sometime later time, tk+m . The differences in the position and orientation at the two
times can be viewed simply as a translation (a change of position) and a rotation (the
angular difference between the orientations at the first and second times).
It is important to understand that the translation and rotation do not necessarily
represent the actual path or trajectory that the vehicle maneuvered through. We are
not making any statements, yet, about how the vehicle got from point A to point B.
We are simply describing the difference in the position and orientation at the second
time with respect to the position and orientation at the first time. Translation, at least
in two dimensions, is simple. It is given by the difference in the x and y coordinates:
x = xk+m − xk (2.1)
y = yk+m − yk (2.2)
However, rotation is another matter. How do we actually quantify a rotation?
For example, if an airplane executes a pitch-up maneuver, how do we describe that
mathematically? What is the framework for doing that? First, we need some kind
of reference. We need to know what zero degrees of pitch is. What constitutes zero
degrees of pitch? The answer is intuitive. A level attitude (level orientation) represents
zero degrees of pitch (level also implies zero degrees of roll).
Considering Figures 2.3 and 2.6, if a vehicle is level, and pointed due North,
then the body frame is coincident with the navigation frame. We can then consider
the angular differences between the vehicle (in some arbitrary orientation) and the
reference, which is the navigation frame. If the vehicle is rolled over and/or pitched
up (or down) and/or yawed, there is an angular difference between the body frame and
the navigation frame. In the course of quantifying the angular differences between
the body frame and the navigation frame, we are describing the orientation of the
yk+ m t = tk+m
yk
t = tk
xk xk +m
Figure 2.7 Any general motion of a rigid body can be described simply by a
translation and a rotation
24 Fundamentals of inertial navigation systems and aiding
Xn
Xb
Yb
Yn Zb
Zn
body. The navigation frame serves as our reference. Whatever angular differences
exist between the body frame and the navigation frame, then, describe the orientation
of the vehicle.
Our next task is to quantify those rotational differences in a precise manner.
The orientation of a vehicle is sometimes also referred to as the vehicle ‘attitude.’
Sometimes the phrase "attitude and heading" is used. In that case, the term attitude is
referring to pitch and roll of the vehicle. In general, the term ‘attitude’ can comprise
not only pitch and roll, but yaw as well. Again, the orientation is defined by the
rotational differences between the navigation frame and the body frame.
Consider an arbitrary navigation frame and body frame illustrated in Figure 2.8.
There is some arbitrary amount of rotational difference between the two frames. It can
be shown [2] that three rotations, about the principle axes, are needed to describe the
rotational difference in the general case (for now, consider the ‘principle’ axes to be
the axes of the body frame of the given object). Furthermore, each successive rotation
(of the three) cannot be about the same axis. In other words, you cannot rotate around
X and then rotate around X again and call that two different rotations. You can rotate
about X , and then Y , and then Z. Or, you can rotate about X , then Z, and then X (in
the new orientation of the x-axis). There are various ways to do it. In the aerospace
community there is a particular convention that we will describe later.
Z n, Z b V xn
Xn
V xb
Ψ
V yb Xb
V yn
V
Yb
Yn
Figure 2.9 Rotation by ψ around the z-axis of the b-frame. The vector V is defined
in terms of its components in the n-frame. The projection of V onto the
b-frame axes is shown
Z n, Z b V xn
Xn
Ψ
Xb
V yn V
Yb
Yn
Figure 2.10 Deriving Vxb by projection of Vxn and Vyn onto the b-frame x-axis
frame components, Vxn and Vyn , are projected onto the body-frame x-axis. The two
components are then summed to get the final result:
π
Vxb = Vxn cos ψ + Vyn cos −ψ (2.3)
2
= Vxn cos ψ + Vyn sin ψ (2.4)
the six faces). Imagine a three-axis coordinate system affixed to the box. Rotate the
box 90 degrees around the z-axis, then rotate it 90 degrees around the y-axis and then
note the final orientation of the box. Now start all over with the box in its original
orientation. This time, however, rotate around the y-axis first and then rotate around
the z-axis. You will find that the box is in a completely different orientation. Thus we
see that finite rotations do not commute (we will discuss infinitesimal rotations later).
In fact, this is a physical proof of something you already knew: matrix multiplication
does not commute. In equation form:
Cy (θ )Cz (ψ)V n = Cz (ψ)V n Cy (θ ) (2.13)
The fact that finite rotations do not commute implies that an order (a conven-
tion) must be specified for the aforementioned three-rotations needed to describe the
orientation of one frame relative to another. We have not derived it formally, but it
can be shown that these rotation matrices represent what are called ‘orthogonal trans-
formations’ and the matrices are orthogonal matrices [2,3]. An orthogonal matrix is
a square matrix with orthonormal columns [4]. This means that each column of the
matrix (think of each column as a vector) has a magnitude of unity and is orthogonal
to the other columns (i.e., their dot products are zero). This is important because of
the following property of orthogonal matrices [2,3]:
C −1 = C T (2.14)
As we will see, rotation matrix inversions are utilized extensively in inertial navigation
processing. This property, though, means that we only need to compute a transpose
when we need an inverse. This is a big deal since matrix transposition is a compu-
tationally simple operation whereas matrix inversion is much more computationally
intensive.
And therefore:
V n = C −1 V b = C T V b (2.19)
Thus, if a given rotation matrix transforms vectors from one frame to another. The
opposite transformation is simply given by the transpose of the matrix.
This is the direction cosine matrix that transforms a vector from the navigation frame
to the body frame. It is sometimes referred to as the “nav-to-body direction cosine
matrix” or simply the “nav-to-body DCM.”
Reference frames and the mathematics of rotations 29
Yaw:
Four-quadrant arctangent functions are needed to extract roll and yaw since these
angles span from −180 deg to +180 deg (pitch, by contrast, only spans −90 deg to
+90 deg).
2.12 Quaternions
At this point, we have described two different attitude representations: direction cosine
matrices and Euler angles. We can think of these as two different parameter sets used
to describe attitude. There is another representation that is also utilized extensively
in inertial navigation. The parameter set is known as quaternions. Before we dip our
toes into the messy quaternion mathematics, let us understand the big picture.
Although any arbitrary attitude can be described by three rotations around the
principle axes, it can also be shown that there exists a single-axis-of-rotation, and a
corresponding rotation angle about that axis, that also completely describes a given
attitude [2,3] (also known as the “axis-angle” representation). The catch, of course, is
finding that special axis (since it will not, in general, correspond to a principle axis)
and then also finding the amount of rotation. As an example, take a Rubik’s cube,
imagine a body-frame affixed to it, and start with an initial orientation. Then rotate
the cube 90 degrees around the body z-axis and then rotate it 90 degrees around the
body x-axis. It can be shown that the equivalent single-axis-of-rotation lies along the
main ‘body diagonal.’ That is, it is an axis that passes through the origin of the body
frame and is positive in the direction of (1,1,1) in the body frame. Also, the amount
of rotation about this axis can be shown to be 120 degrees (go get a box and try it!).
So, given the fact that attitude can be described by a single-axis-of-rotation and
a corresponding angle of rotation, how do quaternions fit in? First, three parameters
are needed to describe the orientation of the axis-of-rotation. Then a fourth parameter
is needed to describe the amount of rotation. We can define a single-axis-of-rotation
vector with four parameters:
μ = single-axis-of-rotation vector
| μ |= μ = angle of rotation
μ
μ̂ = μ
= (μ̂x , μ̂y , μ̂z ) = unit vector in the direction of μ
Thus, the four parameters are the magnitude of the vector and the three components
of the unit vector. This representation of the single-axis-of-rotation vector is accurate
and complete, but it does not lend itself to cascading. That is, it is not sufficient for
the purpose of representing multiple rotations about non-common axes. To do so, we
need quaternions.
Reference frames and the mathematics of rotations 31
i · i = −1 j · j = −1 k · k = −1
i·j =k j·k =i k ·i =j
j · i = −k k · j = −i i · k = −j
Each of the imaginary numbers (i, j, k) behave as you would expect. The square
of each is negative one. When two of them are multiplied against each other, however,
the result is the third one (or its negative). This gives a hint about how quaternions
are used to represent rotations in 3D space. In (2.28), q0 is referred to as the “scalar
part” of the quaternion and the remainder is referred to as the “vector part.”
The coefficients in (2.28) (q0 , q1 , q2 , q3 ) are all real numbers. The easiest way
to understand this four-element ‘number’ is first to review the conventional complex
number: c = a + bi (where i is the square-root of −1). “a” is the real part of “c”
and “b” is the imaginary part. We can plot out c by in a two-dimensional coordinate
system with the x-axis being the real axis and the y-axis being the imaginary axis
(this is referred to as the ‘complex plane’). A conventional complex number thus has
two dimensions. A quaternion is an extension of this. It is a four-dimensional number
with one real axis and three orthogonal imaginary axes. Although an entire set of
rules exist for quaternion mathematics, we will only need one for our use of them in
inertial navigation. The product of two quaternions can be expressed in matrix form
as follows [3]:
⎡ ⎤⎡ ⎤
q0 −q1 −q2 −q3 p0
⎢q1 q0 −q3 q2 ⎥ ⎢ p1 ⎥
q∗p=⎢ ⎣q2 q3 q0 −q1 ⎦ ⎣ p2 ⎦
⎥⎢ ⎥ (2.29)
q3 −q2 q1 q0 p3
where * indicates quaternion multiplication. It can be shown that the single-axis-
of-rotation vector described earlier can be represented with a quaternion as follows
[5]:
⎡ ⎤ ⎡ cos μ ⎤
q0 2
⎢q1 ⎥ ⎢ ⎢ μ̂x sin μ2 ⎥
⎥
q=⎢ ⎥
⎣q2 ⎦ = ⎢ μ⎥ (2.30)
⎣ μ̂y sin 2 ⎦
q3 μ̂ sin μ
z 2
Note that, by convention, the coefficients are shown but not the imaginary numbers
(i, j, and k). Note (2.30) illustrates that q0 is the scalar part and (q1 , q2 , q3 ) is the vector
part.
At this point you may be thinking, “Okay, fine. There is a single-axis-of-rotation
and it can be represented by a quaternion. It’s another way to represent orientation.
32 Fundamentals of inertial navigation systems and aiding
So what? Why do I care?” The motivation for the use of quaternions lies in both their
stability and their numerical efficiency. Euler angles are a three-parameter set for ori-
entation. Direction cosine matrices appear to be a nine-parameter set for orientation.
In fact, it can be shown that only six of the elements are independent and the other
three can be derived from the six. Thus, a direction cosine matrix is a six-parameter set
for describing orientation. Therefore you need three Euler angles or four quaternion
parameters or six direction cosine matrix elements to represent attitude.
From an efficiency point of view, one is tempted to think, “Well, why do not you
use Euler angles because you only have three parameters to deal with instead of four
or six?” The reason that you cannot, in general, use Euler angles is because they are
not always stable. One way to think about this is to notice what happens when pitch
goes up to 90 degrees. If we take our airplane and we pitch it up to 90 degrees, then
what happens to yaw and roll? They are meaningless. What is yaw in this orientation?
Yaw, by definition, is an angle about the vertical but if you are pointing straight up
then a rotation about the vertical also corresponds to roll. We thus have a singularity
when pitch is equal to 90 degrees (or −90 degrees).
We can see this mathematically by considering either (2.25) or (2.27) for the
case of pitch equal to 90 degrees. Let us consider the equation for roll and make the
appropriate substitution from (2.24). What happens at pitch equal 90 degrees? The
cosine of 90 degrees is zero and thus we are attempting to find the arctangent of 0 over
0. This, of course, is indeterminate. Note that you would get the same result with the
yaw equation. In actual practice, if one represented attitude solely with Euler angles,
the attitude updating algorithm in the inertial system would ‘blow up’ (i.e., produce
erroneous results) if the vehicle pitch approached 90 degrees.
Thus, although Euler angles are efficient in terms of only needing three parame-
ters to describe orientation, they are not stable. Although we have not yet discussed the
updating algorithms, it turns out that both quaternions and direction cosine matrices
can be updated throughout all attitude maneuvers without blowing up.
Of the two representations that are stable at all attitudes, quaternions are more
efficient numerically. You might be thinking, “Four parameters, six parameters. Who
cares? What difference does it make?” In modern times, it is certainly less of a
concern, but throughout the initial development of strapdown navigation in the 1970s
the computational power was limited at best so there was great motivation to be
as numerically efficient as possible. Reducing the number of parameters to update
from six to four is an improvement of one-third in efficiency and that is not trivial.
Another point to keep in mind is that the attitude update algorithm in inertial systems,
particularly in high dynamic vehicles, is performed hundreds of times per second.
Even in modern processors that can be a taxing load and the use of quaternions instead
of direction cosine parameters can be helpful.
Quaternions that are used to represent attitude have another nice property and that
is their magnitude is unity [5]. This is convenient when the time comes to deal with
things like truncation and round off errors (a non-trivial issue when the quaternion
update algorithm is being run at, say, 500 times per second for hours upon hours).
This property of quaternions can be used to renormalize and keep them in their proper
form.
Reference frames and the mathematics of rotations 33
References
[1] Rogers RM. Applied Mathematics in Integrated Navigation Systems. 3rd ed.
Reston, VA: American Institute of Aeronautics and Astronautics; 2007.
[2] Goldstein H. Classical Mechanics. 2nd ed. Reading, MA: Addison Wesley;
1980.
[3] Kuipers JB. Quaternions and Rotation Sequences. Princeton, NJ: Princeton
University Press; 2002.
[4] Stewart GW. Introduction to Matrix Computations. Orlando, FL: Academic
Press; 1973.
[5] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
This page intentionally left blank
Chapter 3
Inertial processing in a fixed reference frame
3.1 Introduction
In the last chapter, we established a set of reference frames and studied the mathematics
of rotations. We have laid the necessary groundwork for the development of inertial
navigation: the method by which we take the accelerometer and gyro measurements
to update position, velocity, and attitude.
As described previously, if we have a triad of orthogonal accelerometers and we
can keep them in, say, a locally level orientation, one pointed north, one pointed
east, one pointed vertically, then the integral of their outputs produces north, east and
vertical velocity. If we integrate again, we get: (1) north–south displacement (latitude),
(2) east–west displacement (longitude), and (3) vertical displacement. Recall there
are two different techniques for keeping a triad of accelerometers pointed in reference
directions. We can have mechanical isolation of the accelerometer platform from the
vehicle itself so that, regardless of the orientation of the vehicle, the accelerometers
are always pointed in the reference directions (e.g., north, east, and vertical). That
is referred to as a gimbaled system or a platform system. The alternative is to have
the accelerometers hard mounted (“fixed”) to the vehicle itself. In so doing, the
accelerometers will be outputting their values in the body frame and thus we will
need to know the orientation of the vehicle so that those accelerometer values can be
converted from the body frame to the reference frame of interest (e.g., the navigation
frame). That is referred to as a strapdown system. Recall that either direction cosine
matrices or quaternions can be used to represent all orientations (as opposed to Euler
angles which have singularities).
Zi
Yi
P
r
Xi
navigation frame (or some locally level frame) and then use that in order to perform
inertial navigation within what we call a fixed frame of reference. You could imagine
the vehicle is in outer space some place and is navigating with respect to an inertial
reference frame.
If that seems a little bit too hard to grasp, then imagine a flat Earth that does not
rotate. If the Earth is flat, we do not have to worry about curvature and if it does not
rotate, then a coordinate frame fixed to the Earth will be an inertial frame. However
you want to look at it, the point is that we will start by taking the simple case of
navigating with respect to a so-called inertially fixed frame or simply a ‘fixed frame.’
First of all, we have to deal with the effect gravity will have on our accelerometer
measurements. The output of an accelerometer is a measure of specific force but, as
we will show now, gravity affects this measurement. Consider Figure 3.1 depicting
a point P defined by position vector r. From our study of physics, the acceleration
in the inertial frame is given by the second derivative of the position vector r with
respect to time:
d 2
ai = 2 r (3.1)
dt i
where the vertical bar with the subscript ‘i’ indicates the derivative is being evaluated
in the inertial frame.
and forth because the springs are partially in tension. Assume this accelerometer is
laying on a level surface (e.g., a table). Let us also assume the springs are perfectly
balanced so that the proof mass is sitting/suspended right in the middle and the arrow
and gradations indicate there are no net forces acting on it.
If we push hard on the accelerometer case in the direction of the sensitive axis
(i.e., the line connecting the mass and springs to the case), the mass would displace in
the opposite direction, relative to the case. If the accelerometer is laying on the table
and does not have any forces acting upon it, the proof mass is located in the middle
(thus indicating a zero reading). If we push on it, the mass displaces in proportion to
the amount of force. This sounds like exactly what we want. We have a device that can
actually measure the force acting upon it. Since force is proportional to acceleration
(recall F = ma), we thus have an accelerometer.
However, before we think our job is done, we need to consider some other cases.
For example, what happens if this accelerometer was in free fall? If we took it to the
top of a building and dropped it (presume that somehow it manages to fall straight
down in the orientation shown in the figure), what will happen? If you remember
your physics, you know that we would actually measure no force. The proof mass
would be in the center of the case and the reading (output) would be zero. That is
because gravity is pulling equally on the proof mass and the case so the entire device
will simply fall down at the same rate. If you were able to read it while it was falling
down what you would see is that the proof mass would be in the neutral position. You
38 Fundamentals of inertial navigation systems and aiding
would measure nothing even though, relative to the earth, you would be accelerating
with the force of gravity (about 9.8 m per second squared).
Let us consider a couple of other scenarios. If we had this accelerometer way out
in deep space, say, and there is no gravity. Let’s say it is oriented vertically (whatever
that means in deep space) and we push up. The force causes the case to accelerate
vertically, the proof mass displaces and the accelerometer thus acts as we want it to.
However, what would happen if we set the accelerometer on its end on the surface of
a table on Earth, and then walked away from it? The proof mass will displace relative
to the case even though the case is not accelerating. Gravity is going to pull on the
proof mass and cause it to displace. The accelerometer will give us a reading as if it
was out in deep space and was being pushed up and accelerated vertically.∗
The point is that the accelerometer actually measures a combination of the effects
of true Newtonian acceleration and the effects of gravity. We can combine these effects
in what is referred to as the “accelerometer sensing equation”:
d 2
f = 2 r − g (3.2)
dt i
where “f ” is the measured specific force.† The specific force is equal to the Newto-
nian acceleration (the second derivative of the position vector with respect to time,
evaluated in the inertial frame), minus gravity. Essentially the specific force is equal
to the acceleration minus gravity (hold in mind the previous footnote). So how did
we get this equation? The justification is as follows:
Consider the scenario where the accelerometer is lying flat on a table. In that
case, the sensitive axis of the accelerometer is perpendicular to gravity so it will not
be affected by gravity. Since the accelerometer is stationary, there is no applied force
and thus no acceleration and therefore the measured specific force would be zero
(since the acceleration is zero and the component of gravity along the sensitive axis
is zero).
Now, if the accelerometer is placed on its end on the table, it is still not accelerating
and thus the first term in (3.2) is zero. However, we know the proof mass will displace
and the accelerometer will give a non-zero measurement. But notice the minus sign in
(3.2): in this scenario where the accelerometer is sitting on the table, it measures the
negative of gravity. Since gravity points in the down direction, the negative of gravity
clearly is in the up direction. The proof mass is displaced downward just as it would
if it had been pushed/accelerated upward. Thus, the accelerometer sensing equation
covers this scenario. It handles the case where the accelerometer is laying on its side
on the table and it handles the case where the accelerometer is sitting vertically on
the table.
What happens in free fall? The case is accelerating downward, at +g, but this
is canceled by the negative g in the equation and the total measured specific force
∗
Note that for the moment we are considering the classical view of gravity and are not looking at the
situation relativistically.
†
The measurement is specific force and not force since the measurement is independent of, or normalized
by, mass (e.g., if F = ma, then dividing by m yields: F/m = f = a).
Inertial processing in a fixed reference frame 39
is zero. As we described earlier, in free fall the accelerometer will measure zero. At
this point we must make clear that the negative g in (3.2) is actually the “reaction to
gravity” and not the negative of gravity. What is the difference? If the accelerometer
is sitting on its end on a table, it is actually measuring the force of the table holding
the accelerometer in place. It is not measuring the force of gravity pulling the proof
mass down. If the relativistic physics here are confusing, just try to remember that
accelerometers measure specific force and that specific force is the sum of Newtonian
acceleration and the reaction to gravity (Groves [1] notes, for example, that for an
aircraft in flight, the reaction to gravity is known as lift).
In the most general scenario, of course, the accelerometer will experience both
true Newtonian acceleration and the “reaction to gravity” (i.e., −g) and will thus
measure a combination of the two. Notice in (3.2) that f and r and g are all underlined
to indicate that all three are vector quantities. Thus, the vector sum will give the
effective/measured specific force.
We now understand the fundamentals of accelerometer operation. However, we
are not quite so interested in the specific force that we measure as we are in determining
the Newtonian acceleration. We can take the accelerometer sensing equation and we
can rearrange it to solve for the Newtonian acceleration:
d 2
r = ai = f + g (3.3)
dt 2 i
Thus, the desired acceleration is given by the sum of the measured specific force
and gravity. The 3D-specific force vector is measured by the accelerometers. The
gravity vector, however, is something that has to be modeled. Some kind of algorithm
is needed to approximate the value of gravity at any particular location on or over the
surface of the earth. Although closed-form algorithms that approximate gravity are
widely utilized, ultra-high precision gravity models typically involve extensive look-
up tables. This is due to the fact that the Earth is not homogeneous in its mass density.
Mountains and ocean trenches, for example, induce minor variations in magnitude
and direction of the gravity vector.
Gyros Accels
ω bib fb
fi
Initial attitude estimate
Compute gi
∑ Initial position &
gravity vector
velocity estimates
i
a
Update position
Position & velocity estimates and velocity
Figure 3.3 Flow diagram for inertial navigation in an inertially fixed frame
(shortly we will develop the discrete time update algorithms). The body-mounted
accelerometers output a measurement of specific force and the superscript “b” indi-
cates the measurement is expressed in the body frame. This can be a significant point
of confusion and it bears further explanation. The accelerometer triad measures spe-
cific force with respect to the inertial frame but the measurements themselves are
expressed in the body-frame. Think about it this way: any triad of accelerometers
will measure the specific force vector. However, depending upon the orientation of
the triad, the three particular components will differ. For example, say a triad of
accelerometers is stationary with the x accel pointed up. In this case, the measured
specific force vector would be:
⎡ ⎤
g
f = ⎣0⎦ (3.4)
0
where “g” is the magnitude of gravity. However, if we rotate the triad such that the z
accel is pointed upward:
⎡ ⎤
0
f = ⎣0⎦ (3.5)
g
The specific force vector has not changed but the measurement vector differs
depending upon the orientation. Thus, when we say a particular vector is expressed
in a particular frame, it refers to the coordinate frame in which the vector is resolved.
The body-mounted gyroscopes measure the rotation rate of the body (vehicle).
The subscript “ib” means the angular rate (ωibb ) is the rate of the body-frame relative
to the inertial-frame. Again, the superscript “b” refers to the frame in which the
measurements are expressed. Soon we will learn how to take the measurements from
Inertial processing in a fixed reference frame 41
the gyros and update our representation of attitude. Our current challenge is to navigate
with respect to the inertial frame and so ultimately we want the body-to-inertial
direction cosine matrix (or quaternion, but we will address that later).
Assuming the direction cosine matrix (DCM) has been updated, resolving the
specific force into the inertial frame is simply:
f i = Cbi f b (3.6)
With the specific force vector resolved into the frame of interest (the inertial frame
in our current case), it then needs to be compensated for gravity in order to produce the
desired acceleration vector. Notice in Figure 3.3 that gravity is a computed (modeled)
quantity, not a measured quantity. Notice also that gravity is actually a function of
position. Even with a first order approximation, gravity is a function of both latitude
and height. Gravity decreases with height but it is also influenced by the fact that
the Earth is an oblate spheroid (think of a beach ball that you’ve squashed on the
top and bottom and it bulges out on the sides). The point is that the Earth is not
perfectly spherical and that fact is one of the dominant effects on the variation of
gravity with position. Thus, we have to know (or have an estimate of) our position
in order to compute what the value of gravity is, which then gets fed back into the
position updating process.
The sum of specific force and gravity provides the acceleration that gets integrated
once to determine velocity and once again to determine position. Note that initial
estimates of velocity and position are needed in the integration process. Theoretically
these are the constants of integration. As a practical matter, the accelerometers allow
us to determine acceleration but they do not provide initial velocity or position. As
we will see later, the attitude update process also needs to be initialized.
the vehicle maneuvers. Initialization will be treated later and for now we will assume
that the initial attitude is provided to us. Having that, we want to update the attitude
using the measurements obtained from the gyros.
As we have discussed in the previous chapter, the two most robust attitude repre-
sentations are direction cosine matrices and quaternions. We will start with direction
cosine matrices and will consider quaternions later. The first step is to determine
the derivative of the direction cosine matrix. From this, we will be able to derive a
discrete-time update. Starting with the definition of the derivative:
δCbi C i (t + δt) − Cbi (t)
Ċbi = lim = lim b (3.7)
δt→0 δt δt→0 δt
It can be shown that:
b(t)
Cbi (t + δt) = Cbi (t)Cb(t+δt) (3.8)
where the second matrix is a rotation matrix relating the body-frame at time “t” to
the body-frame at time “t + δt.” Although this is stated without proof, it clearly is
similar to the cascading of rotation matrices discussed in the previous chapter.
For very small angular changes (a reasonable assumption since the time interval
is δt), the second term in (3.8) can be expressed as:
b(t)
Cb(t+δt) = [I + δ] (3.9)
where:
⎡ ⎤
1 0 0
I = ⎣0 1 0⎦ (3.10)
0 0 1
and
⎡ ⎤
0 −δψ δθ
δ = ⎣ δψ 0 −δφ ⎦ (3.11)
−δθ δφ 0
and
δφ is the rotation around the body x-axis over time δt
δθ is the rotation around the body y-axis over time δt
δψ is the rotation around the body z-axis over time δt
Recall the fact that finite rotations do not commute. However, (3.11) does not
indicate any order of the rotations. It can be shown that infinitesimal rotations actually
do commute and thus if the angles are very small, then the order does not matter. That
is the situation here. Over very small amounts of time the body rotates only a very
small amount (in any axis). The angles in (3.11) are thus going to be very small and
the order of rotation is irrelevant.
Substitution of (3.9) into (3.8) yields:
where:
⎡ ⎤ ⎡ ⎤
0 − δψ δt
δθ
δt 0 −ωz ωy
δ ⎢ ⎥ ⎢ ⎥
ib = lim
b
= lim ⎣ δψ δt
0 − δφ δt ⎦
= ⎣ ωz 0 −ωx ⎦ (3.15)
δt→0 δt δt→0
δθ δφ
− δt δt 0 −ωy ωx 0
The final term in (3.15) is called the skew-symmetric‡ matrix form of the angular rate
vector:
T
ωbib = ωx ωy ωz (3.16)
As described earlier, this angular rate vector is measured by the gyros and provides
the rotation rate of the body-frame relative to the inertial-frame, expressed in body
coordinates. Since the skew-symmetric matrix form of a vector is also a cross-product
operator, the final term in (3.15) is sometimes expressed as:
b
ib = [ωbib ×] (3.17)
To see the cross-product operation, consider the cross-product of generic vectors a
and b:
⎡ ⎤
a y bz − a z by
a × b = ⎣ az b x − a x b z ⎦ (3.18)
ax by − a y bx
and then note that the same result is achieved by:
⎡ ⎤⎡ ⎤
0 −az ay bx
[a×]b = ⎣ az 0 −ax ⎦ ⎣by ⎦ (3.19)
−ay ax 0 bz
Returning now to our main goal, substitution of (3.17) into (3.14) yields:
Ċbi = Cbi (t) b
ib = Cbi (t)[ωbib ×] (3.20)
Although we derived it in the specific context of the inertial and body frames, the
result is generic: the derivative of the direction cosine matrix is equal to product of
the direction cosine matrix itself and the skew-symmetric matrix form of the angular
rate vector (where the angular rate is the rate between the two frames):
Ċ = C = C[ω×] (3.21)
‡
Skew-symmetric matrices are square matrices whose negative equals their transpose: −A = AT .
44 Fundamentals of inertial navigation systems and aiding
tk+1
dt
Ck+1 = Ck e tk
(3.22)
where the subscript “k” and “k + 1” refer to the discrete-time points tk and tk+1 . Thus,
if we have the DCM at the previous time (tk ) and we have the rotations over the time
interval (tk to tk+1 ), we can compute the DCM at the current time (tk+1 ).
If the angular rate vector, ωbib , is stationary, then the integral in (3.22) is simple
to compute from the gyro outputs. By assuming it is stationary, we are assuming that
it does not change orientation over the update interval. You may say, “Wait a minute,
that sounds pretty useless.” But hold on. We are not saying that the vehicle has to
be stationary. What we are saying is that the angular rate vector has to be stationary.
What does that mean? Let us take a very simple scenario. If our vehicle is level
and we rotate around the vertical axis then we are changing yaw. The angular rate
vector is oriented vertically. If, on the other hand, we rotate around the body y-axis
(i.e., the axis containing the wings of an airplane), then we are changing pitch and
the angular rate vector is oriented (a.k.a., lies along) the body y-axis. We could also
have a more complex rotation where we are effectively rotating around the body z-
and body y-axis simultaneously. This is a little harder to visualize but there exists a
single axis-of-rotation for this scenario as well. In all these cases, the orientation of
the angular rate vector is fixed (constant/stationary).
However, if we rotate around, say, the z-axis first and subsequently rotate around
the y-axis, then the orientation of the angular rate vector changes. It starts off oriented
along the z-axis and subsequently is oriented along the y-axis. This is where things
can get really confusing. In the most general motions, the angular rate vector itself
can change orientation continuously. If you are still struggling with this concept (and
if you are, you are in good company!), consider a practical example that we have all
encountered. Consider a coin that you are holding “upright” on a table (i.e., heads and
tails are perpendicular to the surface of the table). Now flick the coin so that it starts
to spin. After spinning a while eventually it slows down, wobbles over and finally
ends up flat on the table with either heads or tails facing up. Now try to visualize
the instantaneous angular rate vector of the coin throughout this entire process. It
starts off oriented parallel to the faces of the coin and at the very end it is oriented
perpendicular to the faces of the coin. Thus, in the body frame of the coin, the angular
rate vector is changing orientation.
Although we will not dwell on the details, the changing orientation of the angular
rate vector is referred to as “coning” motion. The name stems from the fact that the
angular rate vector will trace out a cone in the case where the platform is experiencing
angular rates about two orthogonal axes that are sinusoidal and 90 degrees out of
phase (i.e., the angular rate about one axis is a sine and the angular rate about the
orthogonal axis is a cosine). Although it seems to be contrived, that kind of motion
is representative of some common vibration modes that have been shown to occur
in real inertial platforms. Recall earlier we stated that if the angular displacements
around the three orthogonal axes are very small, then the rotations commute (i.e., the
Inertial processing in a fixed reference frame 45
order does not matter). Coning motion causes the rotations to be non-commutative
and thus errors will result if the angular rate vector is blindly integrated.
The bottom line is that coning motion increases the complexity of computing the
integral in (3.22). You might assume that we could eliminate the problem by using
very short time intervals. This is partially correct. To accommodate high dynamic
platforms (e.g., a jet fighter performing high-rate S-turns), we must process the gyro
data at high rates (e.g., short time intervals) and for practical attitude update rates
(e.g., hundreds/sec) coning errors still exist. In addition, coning motion in the form
of high frequency vibrations also cause errors. For this reason, the so-called “coning
compensation” must be applied to the gyro outputs prior to subsequent processing.
An in-depth treatment of coning error and coning compensation is given in [3].
For the remainder of this book, we will assume that coning compensation has already
been applied. With this important caveat, the integral of the angular rate vector yields
the so-called “rotation vector” (i.e., a single-axis of rotation vector):
tk+1
σ = ωbib dt (3.23)
tk
The integral in (3.23) can be computed numerically if the gyro outputs angular rate. If
the gyro outputs angular increments (i.e., delta-thetas), the integral is a simple matter
of summing the delta-thetas. Keep in mind, though, that coning compensation must
also be applied.
The rotation vector has components (magnitude and unit vector) defined in the
usual way:
T
σ = σx σy σz (3.24)
kind of series expansion and then truncate the series after an appropriate number of
terms. We will do that and along the way we will end up deriving a more elegant form
of this update equation.
The Taylor series expansion of the matrix exponential function is very similar to
the Taylor series expansion for the scalar exponential:
[σ ×]2 [σ ×]3
e[σ ×] = I + [σ ×] + + + ··· (3.29)
2! 3!
The square of the skew-symmetric matrix is simply the product of the matrix with
itself:
⎡ ⎤
−(σy2 + σz2 ) σ x σy σx σz
[σ ×]2 = ⎣ σx σy −(σx2 + σz2 ) σy σz ⎦ (3.30)
σx σz σy σz −(σx2 + σy2 )
However, higher values of the exponent can be shown to yield a very interesting result:
[σ ×]3 = −(σx2 + σy2 + σz3 )[σ ×] = −σ 2 [σ ×] (3.31)
[σ ×]4 = −(σx2 + σy2 + σz3 )[σ ×]2 = −σ 2 [σ ×]2 (3.32)
Thus all higher values of the exponent can be expressed in terms of the skew-
symmetric matrix or its square. This allows (3.29) to be rewritten as:
σ2 σ4 1 σ2 σ4
e[σ ×] = I + 1 − + − · · · [σ ×] + − + − · · · [σ ×]2
3! 5! 2! 4! 6!
(3.33)
The terms in parentheses turn out to be, themselves, Taylor Series of trigonometric
functions and thus (3.33) can be simplified to:
sin σ 1 − cos σ
e[σ ×] = I + [σ ×] + [σ ×]2 (3.34)
σ σ2
An equivalent form of (3.34) can be written in terms of the unit vector:
e[σ ×] = I + sin σ [σ̂ ×] + (1 − cos σ )[σ̂ ×]2 (3.35)
Equation (3.35) is a form of Rodrigues’ rotation formula (Olinde Rodrigues was
a nineteenth century French mathematician). It provides an elegant closed form for
computing the matrix exponential and it can be used in simulations. For real time
applications, however, a truncated version of a power series is preferred.
Now we have the necessary mathematics to perform the position, velocity, and atti-
tude update in an inertially fixed frame as depicted in Figure 3.3:
Inertial processing in a fixed reference frame 47
Step 0: Initialize position, velocity, and attitude. Initialization is a topic that we will
consider later so for now we will assume that the initial values have been provided to
us. For attitude, this means the initial value of the body-to-inertial direction cosine
matrix.
σ =0
for k = 1 to N
σ = σ + θ k + (coning compensation)
end
In real applications, the gyro outputs are generated at a rate on the order of 1 kHz
whereas the attitude update is performed at a rate on the order of 100 Hz. With these
rates, ten sets of delta-thetas are summed to produce the rotation vector.
Having obtained the rotation vector, the attitude update is performed by comput-
ing (3.28) and utilizing one of the various expressions for the matrix exponential
(3.29, 3.33, 3.34, or 3.35).
The accelerometers output specific force integrated over a short time interval. Since
the integral of acceleration over a time interval provides the change of velocity, the
accel outputs are referred to as delta-V s:
tk
V bk = f b dt (3.36)
tk−1
Resolving the measurements into the reference frame is a simple matter of multiplying
with the direction cosine matrix:
V ik = Cbi V bk (3.37)
As with gyros, accels typically output delta-V s at rates significantly higher than the
rate at which velocity is updated. The delta-V s can be accumulated over the update
interval but a potential error called “sculling” must be addressed. Sculling amounts to
a sensed acceleration in the presence of rotation. An accel swinging back and forth at
the end of some lever arm will sense a non-zero average acceleration even though its
net translation is zero. As with coning compensation in gyro measurements, sculling
compensation algorithms can be applied to the accel measurements [3].
A related potential error is known as “size effect.” This phenomenon arises due
to the fact that three accelerometers cannot all be physically mounted in the same
location. The small displacement between them (typically a few centimeters) will
cause each accel to sense slightly different acceleration in the presence of angular
48 Fundamentals of inertial navigation systems and aiding
motion. Again, a size effect compensation algorithm is applied to the accel outputs
to address this.
Since the accelerometer itself performed the first integration of the specific-force
vector, the velocity update is straightforward:
V k = V k−1 + V ik + g i t (3.38)
Note the third term on the right hand side of the equation represents a rectangular
integration of the gravity vector. This is typically acceptable since relatively large
changes of latitude and/or height are needed to make an appreciable change in the
gravity vector. Over a typical velocity update interval (e.g., 0.01–0.1 sec), gravity is
essentially a constant. For very high-speed applications (e.g., rocket launches) and/or
high precision, higher order numerical integration algorithms can be utilized.
Having updated the velocity vector, conventional numerical integration can be used
to update position. Assuming the position and velocity vectors have been defined in
terms of a local Cartesian coordinate frame (that does not rotate!), simple trapezoidal
integration yields:
1
P k = P k−1 + (V k + V k−1 )t (3.39)
2
The use of a Cartesian coordinate frame to express position and velocity may be
acceptable in applications involving very small regions of operation over short time
intervals. Just keep in mind that our primary purpose here is to begin the gradual
building up of the inertial navigation algorithms. At the moment we are determin-
ing position and velocity with respect to an inertially fixed frame of reference (e.g.,
an imaginary non-rotating flat earth). In subsequent chapters, we will develop the
algorithms needed to extend our current results to the spheroidal, rotating earth. Nev-
ertheless, we have completed the description of all of the processing needed for inertial
position/velocity/attitude updating with respect to an inertially fixed frame. Up to this
point, we have used the direction cosine matrix for the attitude representation. In the
next section, we will learn how to update attitude using quaternions.
where the star (∗) indicates quaternion multiplication. The quaternion in square brack-
ets has a zero scalar element and the vector portion is the angular rate vector. Equation
(3.40) can be rewritten in matrix form as:
⎡ ⎤
0 −ωx −ωy −ωz
1 ⎢ ωx 0 ωz −ωy ⎥ ⎥q = 1 Wq
q̇ = ⎢ ⎣ ⎦ (3.41)
2 ω y −ω z 0 ω x 2
ωz ωy −ωx 0
Assuming the orientation of the angular rate vector is fixed over the update interval,
the discrete-time solution to (3.41) is given by:
1 tk+1
Wdt
qk+1 = [e 2 tk
]qk (3.42)
We are currently considering the body-to-inertial quaternion. In this case, the matrix
integral can be expressed in terms of the rotation vector σ :
⎡ ⎤
0 −σx −σy −σz
tk+1 ⎢σx 0 σz −σy ⎥
SW = Wdt = ⎢
⎣σy −σz 0 σx ⎦
⎥ (3.43)
tk
σz σy −σx 0
and thus (3.42) can be rewritten as:
1
qk+1 = [e 2 SW ]qk (3.44)
An equivalent expression in quaternion form is:
⎡ ⎤
cos σ2
⎢ σx sin σ ⎥
⎢ 2⎥
qk+1 = qk ∗ qb[k] = qk ∗ ⎢ σσy
b[k+1]
⎥ (3.45)
⎣ σ sin σ2 ⎦
σz
σ
sin σ2
where, again, the star (∗) denotes quaternion multiplication. Recall that the magnitude
of the angle vector is denoted by σ as was defined in (3.25). Note also the second
term in the product is a quaternion that represents the rotation of the body-frame from
time tk to tk+1 . For real-time applications, the trigonometric functions in (3.45) are
approximated by truncated Taylor series. Keep in mind that, as with DCM updating,
the rotation vector (σ ) is obtained by summing the gyro outputs (θ ) over the update
interval and compensating for coning.
References
[1] Groves P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation
Systems. 2nd ed. Boston, MA: Artech House; 2013.
[2] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
[3] Ignagni M. Strapdown Navigation Systems – Theory and Application.
Minneapolis, MN: Champlain Press; 2018.
This page intentionally left blank
Chapter 4
The impact of pseudo-forces in the
velocity update
Introduction
Previously we have covered the details of inertial navigation in the context of a fixed
reference frame. Now we are going to begin addressing the fact that in most applica-
tions the vehicle is actually navigating with respect to the spheroidal, rotating earth.
We will deal with these two effects (earth curvature and rotation) by taking into account
the additional apparent forces that come into play. This will impact our navigation
equation (i.e., the expression for the derivative of velocity). In the case of the fixed
frame, the expression for the derivative of velocity was very simple. In the context of
a rotating reference frame, however, it is a bit more complicated.
The core theory that we will draw upon in this work is known as the Coriolis pseudo-
force or Coriolis acceleration. What is Coriolis? You may have had some exposure to
it during your physics classes. The usual derivation is enormously entertaining if you
happen to be a mathematician. I am not and so I prefer a graphical derivation.∗ Let
us start off by considering a simplified depiction of the earth as shown in Figure 4.1.
The figure depicts the earth’s rotation vector along with a 3D coordinate system and
some arbitrary point P. The point P is fixed on the earth itself.
We will first derive an expression for the velocity of the point P in inertial space
and then we will extend the result to take into account motion over the surface of the
earth. First, how do we describe the velocity of the point with respect to the inertial
frame? Figure 4.2a is an abstraction of Figure 4.1 that depicts a position vector r from
the center of the earth to the point P. As the earth rotates, point P traces out a circle in
space (strictly speaking, point P is actually tracing out a spiral as the earth revolves
around the Sun, but this can be neglected for our purposes). Figure 4.2b depicts a
∗
For a more formal treatment, see [1]. Many thanks to Roger Rollins, Emeritus Professor of Physics at
Ohio University, for this derivation.
52 Fundamentals of inertial navigation systems and aiding
Figure 4.1 Point “P” is fixed on the earth itself. The rotation rate of the Earth is ω
r sin θ
P
r θ r
(a) (b)
Figure 4.2 Abstraction of Figure 4.1. The vertical arrow depicts the earth’s
rotation vector, ω. Point P is fixed on the earth and traces out a circle
in inertial space (earth movement around the sun is neglected). The
position vector r forms an angle θ with respect to the rotation vector. θ
here is the co-latitude and should not be confused with other uses of θ
elsewhere in the book (particularly for pitch)
profile view. The horizontal line depicts the plane in which the point P is traversing
and the position vector r forms an angle θ with respect to the earth’s rotation axis
(note that θ is the geocentric co-latitude since it is the complement of the geocentric
latitude).
As shown in Figure 4.2b, the radius of the circle traced out by P is r sin θ.
Figure 4.3 depicts the same scenario from above the earth. The earth’s rotational axis,
ω, is at the center of the circle and coming out of the figure (or page). The point P
sweeps out an angle δ over an incremental interval of time δt.
Now consider the change in position if the time interval is infinitesimally small.
In this case, the actual arc length traversed by the point P can be approximated by
a straight line, specifically a vector, as depicted in Figure 4.4. This is the usual
The impact of pseudo-forces in the velocity update 53
ω
r si
nθ
δΩ
P(t + δt)
P(t)
Figure 4.3 The scenario of Figures 4.1 and 4.2 depicted from above. The point P
sweeps out an angle δ over an incremental interval of time δt
r
r'
δr
approximation we make in calculus. We can thus relate the position vector at the
beginning and end of the time interval to the differential vector:
r = r + δr (4.1)
By definition, the actual arc length is given by the product of the radius and the
differential angle. The magnitude of the differential vector is thus:
Since Equation (4.2) provides the magnitude of the differential vector over an
infinitesimal interval of time, we can divide both sides of (4.2) by δt and get an
expression for the full derivative in the limit as δt → dt:
|δr| δ
= (r sin θ ) (4.3)
dt dt
54 Fundamentals of inertial navigation systems and aiding
Note the right hand side of (4.6) is identical to that of (4.3) substituted with (4.4). To
complete the proof, we need to show the direction of the cross-product result in (4.5)
is correct. Application of the right hand rule to the vectors in Figure 4.2b shows the
result corresponds to the differential vector depicted in Figure 4.4. Equation (4.5) is
thus proved and we can rewrite it as:
vi = ω × r (4.7)
Points fixed on the earth thus have an inertial velocity given by (4.7). By consid-
ering the range of possible values for θ in (4.6), it follows that the inertial velocity
of this fixed point will be maximum at the equator and zero at the poles. This is
fully consistent with our physical intuition since a point at a pole is rotating but not
translating. Since the rotation rate of the earth is essentially constant, the maximum
inertial velocity for a point on the earth will occur for points that are farthest from
the axis of rotation. Points on the equator satisfy this requirement.
We have derived the inertial velocity for a point fixed on the earth. We can now
apply the result to a point in motion with respect to the earth. The first step is to add
on the earth-referenced velocity to account for the fact that the point is no longer
fixed on the earth:
dr dr
= +ω×r (4.8)
dt i dt e
Note the derivative after the equal sign is evaluated with respect to the earth frame and
is thus the velocity with respect to the earth. Thus, the inertially referenced velocity
is equal to the sum of the earth-referenced velocity plus the velocity component due
to the rotation of the earth itself. We can rewrite (4.8) as:
vi = ve + ω × r (4.9)
A general form may be extracted from (4.8). The derivative of a given vector evaluated
in the inertial frame is equal to the derivative of that given vector evaluated in the earth
frame plus the cross product of the earth angular rate vector with the given vector:
dk dk
= +ω×k (4.10)
dt i dt e
The impact of pseudo-forces in the velocity update 55
for a generic vector k. Applying Equation (4.10) to the inertial velocity vector vi
yields:
dvi dv
= i + ω × vi (4.11)
dt i dt e
Now substitute the right-hand side of Equation (4.9) into the right-hand side of (4.11):
dvi d
= (ve + ω × r) + ω × (ve + ω × r) (4.12)
dt i dt e
The second term on the right-hand side of (4.13) can be evaluated with the product
rule:
d dω dr
ω×r = ×r+ω× (4.14)
dt e dt e dt e
But the first term on the right-hand side of (4.14) is zero since earth rotation rate is
essentially constant. Equation (4.14) thus reduces to:
d
(ω × r) = ω × ve (4.15)
dt e
−ω × (ω × r) = Centrifugal acceleration
The Coriolis acceleration term is present only when there is relative motion between
the object and the earth. Note also that it is orthogonal both to the object’s earth-
referenced velocity and to the earth’s rotation vector. The centrifugal acceleration
term is simply the negative of the true inertial centripetal acceleration due to the cir-
cular motion of the earth. When viewed from the rotating earth frame, it appears to
act outward, rather than inward. Later we will study the significance of the fact that
the centrifugal acceleration term is a function of position only (since the other term,
earth’s angular rate vector, is a constant) and is independent of the object’s velocity.
56 Fundamentals of inertial navigation systems and aiding
Following a similar development that yielded (4.15), we can reduce (4.19) to:
d 2 r dve dr
= + ωie × (4.20)
dt 2 i dt i dt i
Substituting (4.18) into the second term of the cross-product in (4.20) yields:
d 2 r dve
= + ωie × (ve + ωie × r) (4.21)
dt 2 i dt i
and carrying out the initial cross-product:
d 2 r dve
= + ωie × ve + ωie × (ωie × r) (4.22)
dt 2 i dt i
From the accelerometer sensing equation described in the previous chapter, we can
write:
d 2 r
= f +g (4.23)
dt 2 i
Equating (4.22) to (4.23) yields:
dv
f + g = e + ωie × ve + ωie × (ωie × r) (4.24)
dt i
The impact of pseudo-forces in the velocity update 57
Solving for the first term on the right-hand side of (4.24) yields:
dve
= f + g − ωie × ve − ωie × (ωie × r) (4.25)
dt i
To first order, the earth’s mass attraction vector, g, pulls objects towards the
mass center of the earth (this ignores the fact that the earth is ellipsoidal rather than
spherical). Similarly, centripetal force pulls objects towards the earth rotational axis.
From the perspective of the rotating earth frame, centrifugal force is pulling the object
away from the rotational axis. Both mass attraction and centripetal/centrifugal force
are functions of the object position only and are not separately distinguishable. An
accelerometer will measure the vector sum of the two. Thus, “effective” gravity (also
known as local gravity or apparent gravity) is given by:
g eff = g − ωie × ωie × r (4.26)
This is depicted graphically in Figure 4.5. The vector triple-product term in (4.26)
points outward from and is orthogonal to, the earth’s polar axis. Effective gravity is
also known as “plumb bob” gravity since a carpenter’s plumb bob will align itself
with g eff and not g itself. Effective gravity has historically been the definition of local
vertical (note: with modern global reference datums, effective gravity is now just a
first-order approximation of local vertical).
If we were being purely formal, mass attraction should be referred to as “gravita-
tion” and the vector sum of gravitation and centrifugal acceleration is earth’s “gravity.”
As a result the phrase “effective gravity” is actually a misnomer since it actually is
gravity. Nevertheless, to be consistent with existing inertial literature, we will refer
to gravitation as mass attraction and its vector sum with centrifugal acceleration as
effective gravity.
Substitution of (4.26) into (4.25) yields the final form of the navigation equation
mechanized in the inertial frame:
dve
= f − ωie × ve + g eff (4.27)
dt i
Ze
–ωie × ωie × r
g geff
Xe
Figure 4.5 Effective gravity, g eff , is the vector sum of the earth’s mass attraction
vector, g, and the centrifugal pseudo-acceleration vector. The
eccentricity of the earth is grossly exaggerated for the sake of visual
clarity. Note also that the mass attraction gravity vector does not point
at the mass center of the earth (again, exaggerated in the figure). This
is due to mass variations in the earth (e.g., mountains, deep ocean
trenches, constituent variations) that perturb the local gravity vector.
These perturbations are known as “gravity anomalies” and “deflection
of the vertical”
The angular rate vector, ωin , is the rate of the navigation frame with respect to the
inertial frame and is known as “spatial” rate. Spatial rate is the sum of earth rate
and transport rate (recall the description of these two rates in the Reference Frames
chapter):
ωin = ωie + ωen (4.30)
where:
ωie = angular rate of the earth frame relative to the inertial frame (“earth rate”)
ωen = angular rate of the navigation frame relative to the earth frame (“transport
rate” or “craft rate”)
The algorithms used to compute earth rate and transport rate will be discussed in
a subsequent chapter. Substitution of (4.30) into (4.29) yields:
dve dv
= e − (ωie + ωen ) × ve (4.31)
dt n dt i
Substitution of (4.27) into (4.31) yields:
dve
= f − (2ωie + ωen ) × ve + g eff (4.32)
dt n
The impact of pseudo-forces in the velocity update 59
The final form of the navigation equation is given by expressing all terms in the
navigation frame:
v̇ne = Cbn f b − (2ωnie + ωnen ) × vne + g neff (4.33)
The first term on the right-hand side of (4.33) acknowledges that the specific force
vector is measured in the body frame (in a strapdown system) and multiplication by
the body-to-nav DCM is necessary to convert the vector into the navigation frame.
The cross-product term in (4.33) is referred to as the Coriolis term or the Coriolis
correction.
The discrete-time solution of (4.33) provides the velocity update needed for
inertial navigation. Before we get there, though, we have to cover several topics.
Specifically, we need to be able to:
1) compute both earth rate and transport rate in the navigation frame;
2) compute effective gravity in the navigation frame;
3) extend our body-to-inertial DCM update algorithm to handle the update of the
body-to-nav DCM.
For (3), note that the navigation frame rotates as well as the body frame. When
updating the body-to-nav DCM, we will need to update for nav-frame rotation as well
as body-frame rotation. We will address all of these issues in the next two chapters.
References
[1] Goldstein H. Classical Mechanics. 2nd ed. Reading, MA: Addison Wesley;
1980.
[2] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
This page intentionally left blank
Chapter 5
Earth rate, transport rate, gravity, and the
velocity update
Introduction
At the end of the previous chapter, we derived the navigation equation mechanized in
the navigation frame, listed again here:
v̇ne = Cbn f b − (2ωnie + ωnen ) × vne + g neff (5.1)
We need to develop algorithms to compute the earth rate, transport rate and effective
gravity vectors expressed in the navigation frame.
Figure 5.1 The earth’s angular rate vector has north and vertical components that
are functions of latitude. This can be understood by considering the two
extreme cases (North pole and the equator). Note the east component of
earth rate is zero
Ze ωie
L
ωnie –ωnie
North Down
L
Xe
Figure 5.2 The earth’s angular rate vector can be resolved into north and vertical
components as a function of latitude (L)
For the sake of completeness, we also note the aforementioned result can be
obtained as follows:
where Cen is the direction cosine matrix relating the earth-frame to the nav-frame. This
matrix will be discussed in detail in the next chapter.
Earth rate, transport rate, gravity, and the velocity update 63
VNorth
RN + h
West component of
transport rate
Figure 5.3 The east–west component of transport rate can be viewed as the ratio of
the north velocity and the radius vector magnitude
64 Fundamentals of inertial navigation systems and aiding
where ω is the angular rate of the radius vector. From the properties of the cross-
product, we also know:
|vtangential | = |ω||r| sin θ (5.7)
where θ is the angle between ω and r. Since VNorth is locally level by definition, the
radius vector from the center of the Earth to the vehicle is orthogonal to VNorth . We
can thus write:
π
|VNorth | = |ωenEast ||r| sin = |ωenEast ||r| (5.8)
2
Solving for the magnitude of the angular rate:
|VNorth |
|ωenEast | = (5.9)
RN + h
In Figure 5.3, the radius is labeled “RN + h.” RN is a “radius of curvature” that
accounts for the fact that the Earth is an oblate spheroid rather than being purely
spherical (i.e., the Earth is bulged out at the sides). The radii of curvature will be
described in further detail later in this chapter. “h” is the altitude of the vehicle above
the surface of the Earth. By the right hand rule, the angular rate vector is pointed out
of the paper in Figure 5.3 and thus is pointed west. Since our navigation frame axes
are oriented north–east-down, the negative of the angular rate vector will be the east
component of transport rate:
−VNorth −VN
ωenEast = = (5.10)
RN + h RN + h
Now we can proceed to the north component. Since the east component was a
function of north velocity, we would expect that the north component of transport
rate is a function of east velocity. Indeed, that is the case. Consider a top view of the
Equatorial Plane
VEast
ωen
North
RN + h
North
North Pole
Earth (i.e., from above the North pole) as shown in Figure 5.4. Following a similar
development to that which yielded Equation (5.10), it can be shown that:
VEast VE
ωenNorth = = (5.11)
RE + h RE + h
Examination of Figure 5.4 shows that by the right hand rule, the angular rate
vector is aligned with North and is positive in the north direction and thus the implicit
positive sign in the numerator of (5.11) is correct.
Ze
Earth
ellipsoid
RN
Xe
Best-fitting
circle
Figure 5.5 The meridional radius of curvature is the radius of the best-fitting
north–south oriented circle (RN ) at the latitude of interest. The
eccentricity of the earth ellipsoid is grossly exaggerated for the
purposes of visual clarity
66 Fundamentals of inertial navigation systems and aiding
Ze
Earth
ellipsoid
RE
Xe
Best-fitting
east–west circle
Figure 5.6 The transverse radius is the radius of the best-fitting east–west oriented
circle (RE ) at the latitude of interest. The eccentricity of the earth
ellipsoid is grossly exaggerated for the purposes of visual clarity
where R0 is the semi-major axis of the earth’s reference ellipsoid. This is the equatorial
radius. The WGS-84 definition is 6,378,137.0 m. “e” is the eccentricity of the Earth’s
reference ellipsoid (it is not the base of the natural logarithm!). The WGS-84 defini-
tion is 0.0818191908426. L is the latitude of the point at which the radius is being
computed. The subscript “N” denotes the north–south orientation of the best-fitting
circle. Some authors use “RM ” where the “M” denotes meridian.
The other radius of curvature is known as the transverse or prime or principal
radius of curvature, RE . The subscript “E” denotes the east–west orientation of the
best-fitting circle. Some authors use “RP ” where the “P” denotes prime or principal.
As shown in Figure 5.6, it is the best-fitting circle that lies in an east–west plane
containing the point of interest and the center of the ellipsoid. It is given by:
R0
RE = 1
(5.13)
(1 − e2 sin2 L) 2
Thus, the meridian radius of curvature is the radius of the best-fitting circle that passes
north–south through the point of interest and the transverse radius of curvature is the
radius of the best-fitting circle that passes east–west through the point. The two radii
are not the same since the earth is bulged out at the equator. The Earth’s eccentricity
is small and thus there is not a great deal of difference between the two radii but
it is enough that we have to take it into account. The so-called Gaussian radius of
curvature is the radius of the best-fitting sphere to the ellipsoid at any particular
point. It is given by the geometric mean of the two radii of curvature:
RG = RE RN (5.14)
also: ωen N
North
U
· East
· L
λ
also: ωen
East
L
λ
Figure 5.7 Illustration of position angles, position angle rates, and horizontal
transport rates. Latitude (L) rate is positive in the west direction and
longitude (λ) rate is positive along the positive z-axis of the earth-frame
68 Fundamentals of inertial navigation systems and aiding
· ·
λ λ
ωen
North
ωen
L North ωen
2 Up
L
ωen
East
Figure 5.8 Longitude rate can be decomposed into “north” and “up” components.
These components are also the north and up components of transport
rate
· ·
λ λ
·
L · ωen = λcosL
North
ωen = λsinL
Up
L
L
2 L
L 2
L
L L
Figure 5.9 The north and “up” components of transport rate are components of
longitude rate
Now, you may say, “I understand that we needed the east and north components of
transport rate in order to keep the frame locally level. But why do I need to rotate
around the vertical?” We need to rotate around the vertical axis in order to keep it
north-pointing. If we are going over the surface of the earth and are only maintaining
local level, the x-axis of the navigation frame will drift away from North. For a north
pointing mechanization, a transport rate component in the local vertical is required.
Equation (5.20) is perfectly acceptable for systems that only operate at low and/or
mid-latitudes. However, there is a singularity that we must address. The navigation
frame works extremely well except when you are operating in the vicinity of the earth’s
poles. What happens to the vertical component of transport rate as the vehicle gets
close to the pole? The final expression in Equation (5.19) has the tangent of latitude
in the numerator. As we get close to a pole, the tangent of the latitude approaches
plus or minus infinity. That, obviously, is a problem. The north-pointing navigation
frame mechanization simply does not work when you are operating in the vicinity of
the poles.
Physically the problem has to do with longitude rate. Equation (5.17) also
approaches infinity at the poles. The easiest way to think of it is to imagine a vehicle
that is moving north along a line of longitude and is approaching the North pole. The
longitude rate is zero since the vehicle is staying on a meridian. However, just as the
vehicle passes over the pole, the longitude changes by 180 degrees. Thus, the longi-
tude changes by 180 degrees instantaneously the moment the vehicle passes the pole.
The 180 degrees of change in zero time is thus an infinite rate. More practically, even
if the vehicle is not traveling purely along a meridian but still skims past the pole, the
longitude rate will approach infinity. In a gimbaled system, the platform cannot be
torqued sufficiently to keep it north-pointing. If you say, “Well, no problem. We’ve
got computers now. We do the processing in a strapdown navigation computer.” Sorry.
Infinity is still a big number even in a double-precision arithmetic floating-point pro-
cessor. You can simulate this scenario and prove that you will incur significant error,
even when operating near the poles.
No matter how you slice it, you have to do something other than a north-pointing
mechanization when operating in the vicinity of the poles. In a later chapter, we will
learn about the “wander azimuth” mechanization. In the wander azimuth mechaniza-
tion, we do not force one of the axes to point in the north direction. We will maintain a
locally level platform but we will not force one of the axes to point north. We will do
this by ignoring (specifically, setting to zero) the vertical component of transport rate.
This is the most common way to enable so-called “all-latitude” operation. It works
over the entire surface of the Earth. There are some additional complexities involved
that we will learn about later. For the moment, we will assume that we are operating
at mid-latitudes such that a north-pointing mechanization is acceptable.
effective gravity vector has a local level component (specifically, in the north–south
direction) that grows with increase in altitude. If the earth were perfectly spherical,
then the gravity vector would always point “down.” However, since the earth is an
ellipsoid (due to earth rotation), a strange thing happens. At the surface at, say, 45 deg
North latitude, gravity is orthogonal to the ellipsoid. However, as you increase in
altitude, the earth gradually becomes more like a point mass and the gravity vector
gradually starts pointing at the center of the earth. This causes the gravity vector to
have a non-zero “local level” component (specifically, in the north–south direction).
Thus, as altitude increases, although the magnitude of the gravity vector decreases,
the “north” component of the gravity vector actually increases from zero. If you go
high enough, eventually this decreases as well.
Simple, vertical-only, gravity models are acceptable for applications operating at
relatively low altitudes (i.e., less than 10 km) such as aircraft. An example is described
in [2]:
g(0) = 9.780318(1 + 5.3024 × 10−3 sin2 L − 5.9 × 10−6 sin2 (2L)) (5.21)
R2G
g(h) = g(0) (5.22)
(RG + h)2
where L is the latitude; RG is the Gaussian radius of curvature of the Earth; h is
the altitude above the Earth’s reference ellipsoid. g(0) is given in units of meters-
per-second-squared. RG and h must be specified in the same units of distance (e.g.,
meters).
Higher fidelity gravity modeling involves determining expressions for the grav-
ity potential (see, e.g., [3]). Theoretically this involves the computation of an infinite
series with coefficients that must be determined based on data observed using satel-
lites, the stars and ground-level gravity measurement equipment. In practice, of
course, the infinite series is approximated by truncation. A commonly used low-order
approximation is known as the “J2 gravity model” where “J2” is the sole coefficient.
In the earth frame (with z-axis pointing out the North pole and the x-axis intersecting
the equator at the prime meridian), the J2 gravity components are given by:
where:
(x, y, z) are the earth frame coordinates of the point at which gravity is being com-
puted;
r is the magnitude of the position vector of the point;
GM is the WGS-84 value of the Earth’s gravitational constant: 3, 986, 005 × 108 m3 /s2 ;
Earth rate, transport rate, gravity, and the velocity update 71
J2 = 108,263 ×10−8 ;
a is the semi-major axis of the WGS-84 ellipsoid: 6,378,137 m;
is the magnitude of the Earth’s rotation rate (Equation (5.3))
T
g eeff = gx gy gz (5.26)
The gravity vector can then be converted into the navigation frame with the earth-to-
nav direction cosine matrix:
where, as we mentioned earlier in the chapter, Cen is the earth-to-nav direction cosine
matrix that we will learn how to compute in the next chapter. Although it is not obvious
from a cursory examination of (5.23)–(5.25), the J2 gravity model is independent of
longitude (i.e., it is only a function of latitude and altitude). It is thus symmetric
about the earth’s rotational axis. The north/east/down components of (5.27) can be
computed for various latitudes and altitudes to show that the vector has vertical and
north components only (no east component). In reality, irregularities in the earth’s
surface and composition cause the actual gravity vector to deviate slightly from the
approximation given in (5.26) or (5.27). The magnitude of the error in the modeled
gravity vector (known as “anomaly”) along with the deviation of the direction of the
actual vector (known as “deflection of the vertical”) are only critical for high precision
or high integrity applications.
tk+1 tk+1
vne [k + 1] = vne [k] + Cbn vb − [(2ωnie + ωnen ) × vne ]dt + g neff dt
tk tk
(5.28)
Since the Coriolis and gravity terms change slowly with time, low-order numerical
integration techniques can be employed. The velocity vector in the Coriolis term is
purposely shown without a specific time-index. It can either be extrapolated from the
previous velocity solution or can simply be set equal to the previous velocity solution
if the vehicle does not exhibit high acceleration and/or the application does not require
the highest precision.
72 Fundamentals of inertial navigation systems and aiding
References
[1] Grewal M, Andrews A, Bartone C. Global Navigation Satellite Systems, Inertial
Navigation, and Integration. 3rd ed. Hoboken, NJ: Wiley; 2013.
[2] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
[3] Hsu D. Comparison of Four Gravity Models. In: Record of the IEEE Position,
Location and Navigation Symposium (PLANS); 1996.
Chapter 6
Spatial rate, navigation frame rotation, and
position update
Introduction
Previously we derived the body-frame update of the body-to-inertial DCM (Cbi ). This
DCM was appropriate for use in a “fixed frame” environment (i.e., an inertial reference
frame). For terrestrial, marine and aeronautical applications, however, we need to
operate with respect the non-inertial earth frame. Our local-level reference frame, in
many applications, is the navigation frame and thus we need to update the body-to-nav
DCM (Cbn ). Since we have already derived the body-frame update, we need to derive
the nav-frame update.
where bnb = [ωbnb ×] is the skew-symmetric matrix form of the body-to-nav angular
rate vector. We have not yet encountered this particular angular rate vector. It can be
viewed as the difference between body-rate and spatial-rate:
Equation (6.2) states that the angular rate of the body-frame (relative to the
inertial-frame) is equal to the angular rate of the navigation-frame (relative to the
inertial frame) plus the angular rate of the body-frame (relative to the navigation-
frame). In other words, start with the angular rate of the navigation frame and then
add on whatever extra rate there is between the body-frame and the navigation frame.
Solving Equation (6.2) for the body-to-nav rate yields:
If we assume the spatial rate vector is stationary over the integration interval (rea-
sonable for all vehicles other than rockets and missiles), the integral in (6.10) can be
written as:
tk+1
nin dt = [η×] (6.11)
tk
This is the skew-symmetric matrix form of the integral of the spatial-rate vector:
tk+1
η= ωnin dt (6.12)
tk
where the last two expressions simply indicate the negation can be taken at the matrix
level or the angle vector level. By forming the Taylor Series expansion and judiciously
gathering terms, it can be shown the matrix exponential can be expressed as:
sin (η) 1 − cos (η)
e−[η×] = I − [η×] + [η×]2 (6.14)
η η2
where the magnitude of the angle vector is computed in the usual way:
η = |η| = ηx2 + ηy2 + ηz2 (6.15)
Since the magnitude of the spatial rate vector is small even for high-speed aircraft, it
is common to use a low-order series approximation of (6.13) or (6.14) and use low-
order numerical integration (i.e., rectangular or trapezoidal) of (6.12). Trapezoidal
integration with a first-order series approximation yields:
t
− t k+1 nin dt 1
e k = e−[η×] ≈ I − (nin [k] + nin [k + 1])t (6.16)
2
where: t = tk+1 − tk
Even more simply, rectangular integration yields:
t
− t k+1 nin dt
e k = e−[η×] ≈ I − (nin [k + 1])t (6.17)
We have shown that the update of the body-to-nav DCM can be broken into two pieces.
Previously we showed that the body-frame update can be expressed as:
Cb[n j+1] = Cb[n j] e[σ ×] = Cb[n j] Cb[ j+1]
b[ j]
(6.18)
where σ is the angle vector obtained from the gyro measurements (delta-thetas) that
have been summed over the update interval and compensated for coning. This is the
same as the equation that we derived back in the fixed reference frame chapter except
here we are explicitly showing the time update of the body frame. We are also showing
that the matrix exponential can be viewed as a direction cosine matrix relating the
body-frame at the end of the interval to that at the beginning of the interval.
From Equation (6.10), the navigation frame update can be expressed as:
t
n[k+1] − t k+1 nin dt n[k] n[k+1] n[k]
Cb = e k Cb = Cn[k] Cb (6.19)
Equations (6.18) and (6.19) together form the complete attitude update. Since the
rotation rate of the vehicle (i.e., body-frame rate) can be very high (e.g., hundreds of
degrees per second for high dynamic aircraft) and the rotation rate of the navigation
frame (i.e., spatial rate) is guaranteed to be low (e.g., tens of degrees per hour for
everything other than rockets and missiles), it is common to perform the body update
at a higher rate than the navigation frame update [1]. For example, the body-frame
update (Equation (6.18)) may be executed at 100 Hz whereas the nav-frame update
76 Fundamentals of inertial navigation systems and aiding
(Equation (6.19)) may only be executed at 10 Hz. In this case, the body-to-nav DCM
would be updated ten times for body-frame rotation before it is updated for nav-
frame rotation. For the sake of completeness, it should be noted that since the gyro
measurements are typically provided at an even higher rate (e.g., 1,000 Hz), there is
thus a third processing rate in which the gyro measurements are summed (and coning
compensated) over the body-frame update interval.
The corresponding algorithm for the navigation frame update of the body-to-nav
quaternion is given in Appendix B.
The earth-to-nav DCM (Cen ) consists of a set of rotations that rotates the earth-frame
to the nav-frame. Navigation frame orientation is unique for a given point on the
earth (i.e., a specific latitude and longitude). If we start with the earth-frame and
rotate around the z-axis by the longitude and then around the new orientation of the
y-axis by the negative of the latitude, we end up with a frame whose orientation is
up-east-north (UEN). In other words, after these two rotations, the resulting frame
has an x-axis pointed in the local vertical (positive up), the y-axis is pointed east and
the z-axis is pointed north. This is illustrated in Figure 6.1.
Z
Prime meridian at North Pole N
the equator U
L
Y λ
Figure 6.1 The earth-frame is depicted on the left. After a rotation about the z-axis
by longitude (λ) and then a rotation about the new orientation of the
y-axis by the negative of latitude (L), the resulting frame has its x-axis
pointing up (U), its y-axis pointing east (E) and its z-axis pointing
north (N)
Spatial rate, navigation frame rotation, and position update 77
where L is the latitude and λ is the longitude (recall the rotation matrices were defined
in the chapter on reference frames and rotations).
However, since what we want is the n-frame (i.e., the NED frame). We need to
rotate about the y-axis by an additional −90 degrees. Thus:
π π
Cen = Cy − CeUEN = Cy − Cy (−L)Cz (λ) (6.21)
2 2
Although the two consecutive rotations about the y-axis in (6.21) could be com-
bined into a single rotation, it is somewhat easier to compute (6.21) with the three
rotations if doing so by hand. In any case, evaluation of (6.21) results in:
⎡ ⎤
− sin L cos λ − sin L sin λ cos L
Cen = ⎣ − sin λ cos λ 0 ⎦ (6.22)
− cos L cos λ − cos L sin λ − sin L
Equation (6.22) allows us to initialize the DCM given initial values of latitude and
longitude. We will shortly describe how to update this matrix over time through the
use of the computed transport rate vector. At any given point in time, then, the position
angles can be extracted from the updated Cen with:
with the obvious exception that (6.24) cannot be evaluated when L = ± π2 (i.e., there
is a singularity at the poles).
However, this is problematical since the transport rate vector in (6.25) is, first of all,
reversed from our usual form (“ne” instead of “en”) and, more importantly, expressed
78 Fundamentals of inertial navigation systems and aiding
in the earth-frame instead of the navigation frame. We can make the situation sig-
nificantly easier by simply writing the differential equation for the transpose of the
earth-to-nav DCM:
Equations (6.27) and (6.28) are valid as long as the transport rate vector can be
considered stationary over an update interval. This is a reasonable assumption for all
vehicles other than rockets and missiles. The closed form expression for the matrix
exponential in (6.27) is:
sin γ 1 − cos γ
e[γ ×] = I + [γ ×] + [γ ×]2 (6.29)
γ γ2
where γ is the magnitude of γ . Computationally simpler approximations are used in
practice. Trapezoidal integration of the transport rate vector with a first-order series
approximation of the matrix exponential yields:
tk+1
nen dt 1
e tk
= e[γ ×] ≈ I + (nen [k] + nen [k + 1])t (6.30)
2
where: t = tk+1 − tk
Even more simply, rectangular integration yields:
tk+1
nen dt
e tk
= e[γ ×] ≈ I + (nen [k + 1])t (6.31)
In practice, the earth-to-nav DCM is transposed in order to perform the update
in Equation (6.27) and the result is transposed back so that it can be used elsewhere
in the inertial processing.
6.6 Altitude
At first glance, it would appear that the inertial vertical position solution is trivial.
The full velocity vector discrete-time update is given by:
tk+1
ven [k + 1] = ven [k] + Cbn vb [k + 1] + −(2ωnie + ωnen )×ven + g neff dt
tk
(6.32)
Spatial rate, navigation frame rotation, and position update 79
However, as we will learn later, the altitude update algorithm is unstable. Specifically,
any error, either in initial height or in the computed vertical component of velocity, will
induce a positive feedback that will cause errors both in computed vertical velocity
and altitude to grow without bound. The so-called “inertial vertical channel” can thus
only be used for brief periods of time (with the length dependent upon the accuracy
of the accelerometers, gravity model and knowledge of initial height).
We have thus completed the development of the strapdown inertial navigation pro-
cessing for position, velocity, and attitude. Figure 6.2 illustrates the overall strapdown
inertial navigation processing in continuous-time form.
The inputs consist of the body-rate vector measured by the gyros (ωbib ) and the
specific-force vector measured by the accelerometers (f b ). In the upper left, the body-
to-nav DCM is updated based on the measured body rates and the computed earth
and transport rates. On the right, the body-to-nav DCM is used to resolve the specific
force vector into the navigation frame as part of the velocity updating (along with the
Coriolis correction and gravity compensation).
n
C e= C n
e T
ωnie=C neωeie v·ne = C nb f b – ωnen + 2C neωeie × vne + gneff
Lat, long,
Wander angle
compute
·e e
C n = C nΩnen ωnen vne
Latitude
At the bottom, the velocity vector is used to compute transport rate (with recent
latitude as a necessary additional input), and, on the lower left, the transport rate is
used to update the nav-to-earth DCM which is then (middle left) transposed to yield
the earth-to-nav DCM (from which latitude and longitude can be extracted). Also note
that wander angle will be extensively treated in a later chapter.
We will now exploit this relationship in order to achieve the necessary change
of the skew-symmetric matrix form of the transport rate vector. In order to prove
equation (6.8), we start by inserting identity matrices (which, of course, do not change
the equality) around the skew-symmetric matrix on the left side of (6.8):
Cbn bin = Cbn I bin I (6.44)
Since the transpose of the DCM is also its inverse, we know that:
Cnb Cbn = I (6.45)
Substituting (6.45) into (6.44) yields:
Cbn bin = Cbn {Cnb Cbn }bin {Cnb Cbn } (6.46)
which can, for convenience, be grouped as:
Cbn bin = {Cbn Cnb }{Cbn bin Cnb }Cbn (6.47)
The first term in braces in (6.47) is the identity matrix and thus can be dropped
from the equation. The second term in braces is a similarity transformation. With the
relationship proven in Equation (6.43), we can conclude:
nin = Cbn bin Cnb (6.48)
Substitution of (6.48) into (6.47) thus proves (6.8):
Cbn bin = nin Cbn (6.49)
The navigation frame update for the body-to-nav quaternion is given by:
⎡ ⎤
cos ( η2 )
⎢ ⎥
⎢ −ηx ⎥
⎢ η sin ( η2 )⎥
⎢ ⎥
qk+1 = qn[k+1] ∗ qk = ⎢ ⎥ ∗ qk
n[k]
⎢ −ηy ⎥ (6.50)
⎢ η ⎥
⎢ η sin ( 2 )⎥
⎣ ⎦
−ηz η
η
sin ( 2 )
where the ∗ represents quaternion multiplication. Note the first term in the product
is a quaternion that represents the rotation of the navigation-frame from time tk+1 to
tk . It is equivalent to the quaternion of the negative of the rotation vector and is also
equivalent to the quaternion conjugate of the rotation vector. The rotation vector, η,
is the integral of the spatial rate vector over the update interval as given in (6.12). As
was shown in the main text, the magnitude of the rotation vector is computed in the
usual way. Since spatial rate is small even for high-speed aircraft, it is common to use
low-order numerical integration (i.e., rectangular or trapezoidal).
82 Fundamentals of inertial navigation systems and aiding
References
[1] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
[2] Bose SC. GPS/INS Multisensor Kalman Filter Navigation [Short Course Notes].
Technalytics; 1997.
Chapter 7
The wander azimuth mechanization
7.1 Introduction
We have established the fact that maintaining a locally level reference frame that is
north-pointing has some significant challenges when we are operating in the vicinity
of the poles. We have discussed the fact that if we are on top of the North Pole, for
example, no matter which direction we are facing: they are all south. By just barely
skimming past the North Pole and trying to keep the n-frame north-pointing, the
rotation rate of the local-level frame around the vertical axis approaches infinity. This
occurs whether the frame is mechanical with a gimbaled system or mathematical with
a strapdown system.
The primary way this problem is solved is through the so-called wander azimuth
mechanization. We exploit the remaining degree of freedom that we have in converting
from the earth-frame to the local-level frame. Previously we showed the conversion
of the earth-frame to the nav-frame requires a rotation first around the earth-frame
z-axis (in the amount of the longitude) followed by a rotation of −(L + π2 ) about the
(new) y-axis (where L is the latitude). In general, when converting from one frame to
another we can have up to three independent rotations. In converting from the earth-
frame to the nav-frame, however, we only utilize two rotations. The wander azimuth
frame exploits that final degree of freedom in the conversion from the earth-frame to
the locally level frame.
Specifically, the local-level frame will be allowed to rotate about the vertical axis
such that it will not be forced to be north-pointing. By not forcing one axis to point
north, we can derive a mechanization that does not “blow up” when operating in the
vicinity of the poles.
This new locally level frame is referred to as the “wander frame” or just the
w-frame. It should be noted that some references will use the term “navigation frame”
but are actually working in the wander frame (because they never implement a north-
pointing mechanization). The terms are thus not universal. In this book, however,
the nav-frame is locally level and north-pointing whereas the wander frame is the
more generalized version of nav-frame: locally level but the x-axis is not necessarily
pointing north [1,2].
84 Fundamentals of inertial navigation systems and aiding
Previously we derived the transport rate vector expressed in the navigation frame:
T
VE −VN −VE tan L
ωnen = (7.1)
RE + h R N + h RE + h
As we noted, the vertical component approaches infinity for vehicle paths that go over,
or skim past, one of the poles. One of the most common solutions to this problem
is simply to set the vertical component of transport rate to zero. However, over time
this results in the x-axis of the local-level frame “wandering away” from North. The
repercussions are non-trivial: the x- and y-axes of the local-level frame are no longer
pointed north and east. This impacts the entire inertial navigation mechanization.
Local-level frame velocities are no longer north and east velocities and the horizontal
components of transport rate will no longer be as simple as they are in Equation (7.1).
Consider Figure 7.1. In the navigation frame, we have north and east axes, north
and east velocities and north and east components of transport rate. The wander frame
is rotated around the z-axis by the wander angle α. The wander angle will grow over
time as the vehicle moves due to the zero-ing of the vertical component of transport
rate. We cannot refer to the wander-frame axes as having any particular direction since
they will change over time. Thus we simply refer to the “wander-frame x and y axes,”
the “wander-frame x and y velocities,” and the “wander-frame x and y components of
transport rate.”
The introduction of the wander frame forces us to derive wander-frame expres-
sions for the horizontal components of transport rate. This will prove to be more
challenging than performing a simple rotation. Later we will also need to derive
the conversion between wander-frame velocities and nav-frame velocities since it is
useful to know nav-frame quantities when not operating near a pole.
N, vn w
, ωen
North North
X w,v w , ωwewx
X
E,vEast, ωwen
n
East
α
yw,v wy, ωwewy
Figure 7.1 Comparison of n-frame and w-frame quantities. The angle between the
two frames, α, is known as the wander angle. Note the n-frame z-axis,
not shown, is “down” and thus is into the paper
The wander azimuth mechanization 85
where Cz is the rotation matrix for rotations around the z-axis (defined in the chapter
on reference frames and rotations) and “DC” stands for “don’t care” since we will
be zeroing out the vertical component anyway. Equation (7.2) is a good first step but
we are far from done since the equation is a function of navigation frame transport
rate components. We need to derive a form that is not dependent upon navigation
frame quantities. To do so, we first substitute the horizontal components of nav-frame
transport rate (from Equation (7.1) above) into Equation (7.2):
VE VN
ωwew (x) = cos α − sin α (7.3)
RE + h RN + h
VE VN
ωwew (y) = − sin α − cos α (7.4)
RE + h RN + h
Xw
n
ωen
North
yw
α
n
ωen
α East
yw
–Xw
Next, we need to replace the east and north velocities with wander-frame x and y
velocities. With the same rotation matrix, we can write:
⎡ w ⎤
vx cos α − vyw sin α
⎢ ⎥
⎢ w ⎥
vn = Cz (−α)vw = ⎢ v
⎢ x sin α + v w
y cos α ⎥
⎥ (7.5)
⎣ ⎦
vzw
Note that we are using the reverse rotation to express navigation frame velocities
in terms of wander-frame velocities. Substitution of the components of (7.5) into
(7.3) and (7.4) yields a form that does not explicitly depend upon navigation frame
quantities:
vxw sin α + vyw cos α vxw cos α − vyw sin α
ωwew (x) = cos α − sin α (7.6)
RE + h RN + h
Two of the terms in square brackets are effectively radii of curvature in the wander
frame. We can rewrite (7.8) and (7.9) as:
vxw vyw
ωwew (x) = + (7.10)
T Ry
vxw vyw
ωwew (y) = − − (7.11)
Rx T
where:
1 sin2 α cos2 α
= + (7.12)
Rx RE + h RN + h
1 cos2 α sin2 α
= + (7.13)
Ry RE + h RN + h
1 cos α sin α cos α sin α
= − (7.14)
T RE + h RN + h
Equations (7.12) and (7.13) are the reciprocals of the radii of curvature in the wander
frame. Equation (7.14) (where T stands for “torsional”) accounts for the fact that the
meridional and transverse radii of curvature are not equal.
The wander azimuth mechanization 87
− cos α sin L cos λ − sin α sin λ − cos α sin L sin λ + sin α cos λ cos α cos L
Cew = sin α sin L cos λ − cos α sin λ sin α sin L sin λ + cos α cos λ − sin α cos L
− cos L cos λ − cos L sin λ − sin L
(7.17)
Given the earth-to-wander DCM, the extraction of alpha (along with latitude and
longitude) is given by:
L = arcsin (−Cew [3, 3]) (7.18)
λ = arctan2(−Cew [3, 2], −Cew [3, 1]) (7.19)
α= arctan2(−Cew [2, 3], Cew [1, 3]) (7.20)
The DCM update is performed with the same algorithm that was developed for the
earth-to-nav DCM (recalling that we update the transpose rather than the DCM itself):
tk+1 w
ew dt
Cwe [k + 1] = Cwe [k]e tk
= Cwe [k]e[γ ×] (7.21)
where:
tk+1
γ = ωwew dt (7.22)
tk
88 Fundamentals of inertial navigation systems and aiding
While the INS is operating and the earth-to-wander DCM has been updated, the
wander angle can be extracted using (7.20), transport rate can then be computed using
(7.10)–(7.14) and then the earth-to-wander DCM can be updated using (7.21)–(7.22)
or the low-order numerical integration equivalent.
There is one catch. Examination of (7.17) and (7.20) shows that when latitude
approaches positive or negative 90 degrees, the wander angle cannot be extracted.
With modern computational power, however, it is possible to compute the wander
angle up until the cosine of latitude falls below some threshold. This typically occurs
within a few meters of the pole. In practice, then, transport rate can be computed until
quite close to the pole and it is simply held constant for the brief moment of the pole
crossing.
It is possible, however, to derive a form of the transport rate equations that do not
explicitly depend on the computation of the wander angle [1,3]. The key is to refor-
mulate the reciprocal radius terms. Specifically, by utilizing the definitions of the
meridional and transverse radii of curvature, it can be shown that:
1 1 1 RN e2 cos2 L
= − cos α sin α = − cos α sin α
T RE + h RN + h (RE + h)(RN + h)
(7.25)
2
where: e2 = 1−e
e
2 = the square of the second eccentricity of the Earth ellipsoid.
Substitution of (7.23)–(7.25) into (7.10)–(7.14) yields:
−vxw e2 RN cos2 L cos α sin α + vyw [RN (1 + e2 cos2 L sin2 α) + h]
ωwew (x) =
(RE + h)(RN + h)
(7.26)
vyw e2 RN cos2 L cos α sin α − vxw [RN (1 + e2 cos2 L cos2 α) + h]
ωwew (y) =
(RE + h)(RN + h)
(7.27)
The wander azimuth mechanization 89
Comparison of Equations (7.26) and (7.27) with the definition of the earth-to-
wander direction cosine matrix given in Equation (7.17) shows that (7.26) and (7.27)
can be rewritten as:
vxw e2 RN Cew [1, 3]Cew [2, 3] + vyw [RN (1 + e2 {Cew [2, 3]}2 ) + h]
ωwew (x) = (7.28)
(RE + h)(RN + h)
−vyw e2 RN Cew [1, 3]Cew [2, 3] − vxw [RN (1 + e2 {Cew [1, 3]}2 ) + h]
ωwew (y) = (7.29)
(RE + h)(RN + h)
Although they clearly are messy, Equations (7.28) and (7.29) eliminate the need
to compute the wander angle (α) explicitly. Transport rate is used in the update of
the earth-to-wander DCM and, in turn, components of the earth-to-wander DCM are
used in the computation of transport rate.
Although the INS can perform perfectly well solely in the wander frame, navigation-
frame quantities are typically needed by other systems on the vehicle outside of the
INS (e.g., cockpit displays, flight control systems, etc.). Thus, there is a need to be
able to compute heading and navigation-frame velocity components. The relationship
between heading, yaw and wander angle is illustrated in Figure 7.3.
Heading is thus given by:
H =α+ψ (7.30)
where α is the wander angle and ψ is the yaw angle.
n
X w
X
b
Ψ X
α
Yn
Yw
Yb
Figure 7.3 In a wander azimuth mechanization, the Euler angles (yaw, pitch, and
roll) are defined between the b-frame and the w-frame. Heading is thus
given by the sum of yaw (ψ) and the wander angle (α)
90 Fundamentals of inertial navigation systems and aiding
Although you may not have noticed, we slipped in the wander-frame to nav-frame
conversion of velocity components in the context of the transport rate derivation. The
conversion is given in Equation (7.5). Just make sure not to forget that the vertical
velocity component is the same in both frames.
Neither heading nor navigation frame velocity can be computed near the poles
(within the radius in which the wander angle cannot be extracted). The core inertial
processing, however, continues unabated.
References
[1] Brockstein A, Kouba J. Derivation of Free Inertial, General Wander Azimuth
Mechanization Equations. Woodland Hills, CA: Litton Systems, Inc., Guidance
and Control Systems Division; 1981.
[2] Bose SC. GPS/INS Multisensor Kalman Filter Navigation [Short Course Notes].
Technalytics; 1997.
[3] Jekeli C. Inertial Navigation Systems with Geodetic Applications. Berlin, DE:
De Gruyter; 2001.
[4] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
This page intentionally left blank
Chapter 8
Navigation-grade inertial sensors
8.1 Introduction
Up to this point, we have been treating accelerometers and gyroscopes as ideal instru-
ments and have focused almost exclusively on the “strapdown processing” algorithms
also known as the “free inertial mechanization” equations. Having accomplished that
goal, we now turn our attention to the actual sensors that are used in real inertial
systems. Prior to the proliferation of inertial measurement units (IMUs) based on
micro-electro-mechanical systems (MEMS) fabrication techniques, the term “iner-
tial navigation system” (INS) universally referred to inertial systems built with sensors
capable of supporting stand-alone (i.e., unaided) navigation with low drift rates (e.g.,
a few nautical miles per hour).
However, the aforementioned explosion of low-cost, MEMS-based, IMUs (found,
for example, in every consumer drone), has given rise to a far broader use of the phrase
“inertial navigation system.” A quick web search will reveal authors referring to low-
cost units as an INS despite the fact that the units could not possibly be used for
stand-alone positioning for more than a handful of seconds. Very low cost gyroscopes
(i.e., priced well under one U.S. dollar in volume production) may have drift rates
on the order of several degrees per second and, as we shall see in the next chapter,
are completely unsuitable for long-duration stand-alone positioning. At the other end
of the spectrum are so-called “navigation-grade” and “strategic-grade” sensors that
have extremely low drift rates (i.e., less than 0.01 degree per hour).
This chapter will provide an overview of the principles of operation of the two
technologies that have been the mainstay of navigation-grade gyro offerings since the
1980s as well as one of the most popular techniques used in the design of navigation-
grade accelerometers. We will then discuss the major sensor errors.
a beam splitter. After light enters the device, the beam splitter splits the beam and
light propagates in opposite directions around the path and then back to the splitter
itself.
If the device is stationary and we input light, the light splits, counter-propagates
in opposite directions around the device, and both light beams will come back to the
splitter at the same time. However, if we rotate the device, the counter-propagating
beams do not return to the splitter at the same time. The figure illustrates the case of
clockwise rotation. As the clockwise propagating beam travels around the device, it
has to travel all the way around the circle and then has to keep going until it finally
catches up to the splitter. On the other hand, the counterclockwise-propagating beam
does not even have to travel all the way around the circle before it gets back to the
splitter.
The key concept with the Sagnac interferometer is the measurement of some
quantity that is proportional to the time difference between the arrivals of the two
counter-propagating beams back at the splitter. For the example shown in Figure 8.1,
the counterclockwise beam gets to the splitter before the clockwise beam arrives.
Again, the idea is that we want to measure something that is proportional to that time
difference since the time difference is proportional to the applied angular rate.
For a stationary device, the time needed to propagate around the full path is equal
to the circumference divided by the speed of propagation:
2π R
t= (8.1)
c
In order to calculate the time difference (between arrival of the two beams back at
the splitter) duration rotation, we write the equations for the path lengths traveled by
Beam splitter
at time T
Figure 8.1 A circular Sagnac interferometer with radius “R” rotating at rate ω.
A source of light (not shown) is injected into the device at the splitter
and the light is thus split in two different directions. If the device is
stationary, the two counter-propagating light beams arrive back at the
splitter at the same time. If the device is rotating, however, one of the
beams arrives back at the splitter before the other. Optical gyros exploit
this phenomenon to measure angular rate
Navigation-grade inertial sensors 95
each of the two beams. The beam traveling the longer path (clockwise in Figure 8.1)
traverses a total path length of:
ct+ = 2πR + Rωt+ (8.2)
The variable t+ represents the time it takes the beam to leave the splitter, travel all
the way around the device and then go a bit more in order to catch up to the splitter.
Obviously t+ is larger than t in Equation (8.1). The first term in Equation (8.2)
is simply the circumference of the device. The second term is the product of the
tangential velocity (Rω) and the total time. In other words, the second term is the
extra length that the beam must travel to catch up with the splitter. Solving (8.2) for
t+ yields:
2πR
t+ = (8.3)
c − Rω
Similarly, the path length and travel time for the counterclockwise beam are:
ct− = 2πR − Rωt− (8.4)
2πR
t− = (8.5)
c + Rω
With a bit of algebra, the time difference (of arrivals back at the splitter) between the
two beams can be shown to be:
4πR2 ω
t = t+ − t− = (8.6)
c 2 − R2 ω 2
For all practical applications:
c2 >> R2 ω2 (8.7)
Thus, (8.6) can be well approximated by:
4π R2 ω
t ≈ (8.8)
c2
Since the area enclosed by the circular light path is given by:
A = πR2 (8.9)
Equation (8.8) can thus be rewritten as:
4Aω
t ≈ (8.10)
c2
The equivalent path length difference between the two beams is thus:
4Aω
L = ct = (8.11)
c
For gyros of practical size (e.g., palm-sized), neither the time difference nor the
path length difference can be measured directly for rotational rates of interest (Earth
rate up through the roll rate of an aerobatic aircraft). For example, given a gyro with an
area of 0.00283 m2 (e.g., a circular path with a radius of 3 cm), an applied angular rate
96 Fundamentals of inertial navigation systems and aiding
of 360 deg/sec yields a time difference of approximately 8 × 10−19 seconds and a path
length difference of approximately 2.4 × 10−10 meters. The numbers corresponding
to Earth rate (15 deg/hour) would obviously be even lower.
Two primary techniques have been developed to exploit the concept of the Sagnac
interferometer in a practical device. One is implemented in the ring laser gyro (RLG).
The other is implemented in the fiber optic gyro (FOG).
Cathode
Dither
Motor
Anode
Mirror
Figure 8.2 Conventional three-sided ring laser gyro. The two anodes are used to
set up the counter-propagating beams. The dither motor is used to
prevent a phenomenon known as lock-in
Navigation-grade inertial sensors 97
The idea is that as the laser beam is propagating around the light cavity, it has to
close upon itself in phase. If the beam has a certain phase (peak, trough or something
in between) at a certain point in the cavity, it has to have that same phase after it
propagates all the way around the cavity and gets back to the same point. Another
way to think about it is that the complete light path has to correspond to an integer
number of wavelengths. If not, then the beam would not close upon itself in phase.
Within the laser community, there is a verb “to lase” and it, at least partially, refers to
the production of a coherent beam. An RLG is lasing properly if it maintains phase
coherence.
When the RLG is rotating, this phase coherence has an important implication.
As we have discussed, the rotation effectively induces a path length change that is
positive for one beam and negative for the other. In order to keep the lasers las-
ing, one of the beams needs to decrease in frequency and the other beam has to
increase in frequency. The frequency changes are essential so that the new effec-
tive path lengths still correspond to an integer number of wavelengths. Although
the path length difference is so small that we cannot measure it, the frequency
change that it induces on the counter-propagating beams is something that we can
measure.
In practice, the beams are kept inside the cavity but a small amount of energy is
allowed to pass through one of the mirrors (i.e., it is mostly reflecting but is partially
transmitting). The two beams are mixed to create a fringe pattern. The fringes move
across a detector at the rate of the difference frequency. We will now show that the
difference frequency is proportional to the applied angular rate.
The frequency difference can be derived from the path length difference as fol-
lows. The ratio of path length difference to nominal path length is equal to the ratio
of the frequency difference to the nominal frequency:
L f
= (8.12)
L f
Solving for the frequency difference:
L f
f = f = L (8.13)
L L
Substituting (8.11) into (8.13):
4Aω f 4Aω 1 4Aω
f = = = (8.14)
c L c
f
L λL
For a three-sided gyro with 4 cm sides, an input angular rate of Earth rate yields
a difference frequency of approximately 0.4 Hz. Clearly this is a measurable
quantity.
The basic resolution, or sensitivity, of an RLG can also be determined from
Equation (8.14). Although the normal units of frequency difference are radians/
second, as discussed earlier, Equation (8.14) is also the rate at which the fringe pattern
98 Fundamentals of inertial navigation systems and aiding
moves past the detector. Thus, the units of Equation (8.14) can also be thought of as
fringes/second. Since the applied angular rate ω is in units of radians/second, the units
of the coefficient thus have to be fringes/radian:
4A fringes radians fringes
f = ω⇒ ⇒ (8.15)
λL radian sec sec
An additional verification of these units is given in the appendix. From (8.15), we
can see that the number of fringes per radian is:
4A
FpR = (8.16)
λL
The basic measurement resolution of the device is thus obtained by the reciprocal of
(8.16) which is the number of radians per fringe:
λL
θresolution = (8.17)
4A
Thus, when the detector counts the passage of a single fringe, the device has
rotated by an amount equal to θresolution as given in Equation (8.17). In the simplest
implementation where the gyro only counts integer numbers of fringes, the quantity
in (8.17) represents the smallest angular rotation that the device can measure and
it thus represents the resolution (or sensitivity) of the device. Modern RLG designs
have been enhanced to measure fractions of a fringe and thus increase resolution, but
(8.17) still provides a good estimate of the sensitivity of an RLG as a function of laser
wavelength, nominal optical path length, and area enclosed by the path.
For the case of three-sided RLGs, Equation (8.17) can be simplified. Assuming
the triangular light path (with a total length of L) has equal length sides, the area
enclosed is:
√ 2
3 L
A= (8.18)
4 3
Substitution of (8.18) into (8.17) yields:
√
λ3 3
θresolution = (8.19)
L
As an example, with a 12 cm path length and a wavelength of 632.8 nm, the basic
resolution is approximately 0.0016 degree (or 5.65 arc-seconds). Equation (8.19)
shows that RLG resolution is inversely proportional to nominal optical path length.
To put it simply: Bigger is better.
All RLGs exhibit a phenomenon called “lock-in” that must be addressed for the
unit to operate successfully. At very low input angular rates, the counter-propagating
beams “lock on” to each other (in frequency) rather than maintain the ideal, slightly
different, frequencies. The primary cause of lock-in is the backscatter of energy due
to non-ideal mirrors at the ends of each straight segment in the light path. Without
some kind of compensation, the gyro would have no output within the range of input
angular rates known as the “lock-in region.”
Navigation-grade inertial sensors 99
A few different techniques have been developed in order to deal with this. The
most common technique is called “dither.” The gyro is mounted onto a piezoelectric
wheel that vibrates when a voltage is applied to it. The idea is that if the gyro is
being dithered back and forth, it spends very little time in the lock-in region. The
dither motion must, of course, subsequently be removed from the output data. The
process is known as “dither stripping” [1,2]. Over the history of ring laser gyros,
dither mechanisms have proven to be highly reliable.
The one down side of the dither technique, though, is an effective increase in
angular rate noise that, when integrated, becomes a so-called “random walk” error
at the angular displacement (i.e., delta-theta) level. As a result, non-mechanical
techniques have been developed to address lock-in. One example is the so-called
multi-oscillator concept that typically involves a square light path with two pairs of
counter-propagating beams (one is right-hand polarized and the other is left-hand
polarized) thus creating four modes [3]. The modes are biased away from the lock-in
region through the use of a Faraday rotator and a non-planar light path. In essence,
these devices are implementing electro-magneto-optical dithering instead of mechan-
ical dithering. They achieve lower noise performance but are penalized by an increase
in size, weight, and complexity that translates into higher manufacturing cost.
the coil and arrive back at the starting point, they are combined in order to form an
interference pattern. The resultant intensity is observed with a photo detector. If the
device is stationary, both beams will arrive at the same time (thus in-phase) and the
detector will observe a maximum amplitude of the combination. When the device is
being rotated, the differential path length difference will induce a phase difference
between the two counter-propagating beams. That will change the amplitude of the
sum when the two beams are combined.
We can calculate the phase difference as a function of the path length difference:
L
= 2π (8.20)
λ
Substituting Equation (8.11) into (8.20) yields the phase difference for a single loop:
8πAω
= (8.21)
cλ
For a coil of N turns, then:
8πAN ω
= (8.22)
cλ
Since the total length of the fiber is given by
L = 2π RN (8.23)
we can substitute (8.9) and (8.23) into (8.22) to get the phase difference as a function
of the length of the fiber and the radius of the coil:
8π πR2 N ω 4π R (2π RN ) ω 4π RLω
= = = (8.24)
cλ cλ cλ
For a 3 cm radius with 200 m of fiber and an optical wavelength of 850 nm, the phase
difference is approximately 0.0012 degree with an applied angular rate of 15 deg/hour
and is 118 degrees with an input rate of 400 deg/sec.
Thus, high angular rates are easily detected but low angular rates are not. These
results are for the so-called “open loop” configuration. It has fairly poor sensitivity
and limited dynamic range. Phase-biased versions have been developed that have
good sensitivity at low rates, but still limited dynamic range. The next level up in
design is the closed loop version that has good sensitivity at both low and high rates
and has an extended dynamic range. The reader is referred to [4] for more details.
left it is at rest. On the right, the pivot, not the mass, is being accelerated to the left.
Due to the property of inertia, the mass tends to stay at rest even though the pivot is
undergoing an acceleration. Thus, we could construct an accelerometer by measuring
the displacement of the mass (relative to the pivot) and accounting for the scale factor
between displacement and the applied force.
Such an architecture would be referred to as “open loop” for reasons that will
become evident shortly. Although conceptually simple, this open loop architecture
suffers from limited dynamic range. Refer back to Figure 8.3. Let us measure the
displacement as the angle that the pendulum makes with respect to the vertical (i.e.,
the resting state). With a small amount of force, the pendulum displaces a small angle.
With increasing force the angular displacement increases. At some amount of force
the pendulum will displace 90 degrees. However, any force greater than this will also
displace the pendulum by 90 degrees. Thus, the dynamic range of this accelerometer
is limited to the range from zero up to the minimum force that displaces the pendulum
by 90 degrees.
Now we can consider the commonly utilized “closed loop” architecture. Rather
than let the pendulum swing freely, a feedback control system is implemented as
follows. A sensing mechanism is used to measure the displacement of the pendulum
and then a restoring mechanism is used to force the pendulum back into the null/rest
position. If a small force is applied to the accelerometer, a small amount of displace-
ment is sensed and a small amount of restoring force is applied to hold the pendulum
in place. The larger the applied force, the larger the required restoring force. The
measurement of the applied force is a scale factor times the required restoring force.
The basic elements of the so-called “force-feedback pendulous accelerometer”
are shown in Figure 8.4. This notional figure shows the accelerometer from the “side”
in that the hinge axis is into the paper. Although a pickoff coil is depicted for sensing
displacement of the proof mass, a variety of sensing techniques have been developed
and utilized (optical, inductive, capacitive [5]).
Figure 8.3 Notional pendulum with a pivot point at the top, an arm and the mass
at the bottom. On the left the pendulum is at rest. On the right, the pivot
is undergoing acceleration to the left. Due to the property of inertia, the
mass initially stays at rest even though the pivot is accelerating
102 Fundamentals of inertial navigation systems and aiding
Hinge
Input
force
Torquer Pickoff
axis
Coil Coil
Proof
Mass
Inertial sensors have a wide variety of errors. We will focus on the primary ones in
this section. The most significant of all the inertial sensor errors are the so-called
“biases.” The word is put in quotes to emphasize the fact that the actual error is not
perfectly constant but, rather, changes slowly enough that the effect can be considered
as a bias over short time periods (e.g., minutes). Throughout the remainder of this
book the word bias will be used in this sense. It is also important to emphasize that
there are several components of the total bias error. First, the bias can be separated
into two components: repeatable and non-repeatable. The repeatable portion of the
bias is, obviously, the component that is the same every time a given set of operating
conditions are encountered (temperature being the most critical operating condition).
The repeatable portion of the bias is estimated during laboratory calibration. Calibra-
tion values are loaded into the embedded processor in the INS and thus calibration
corrections are applied to the raw sensor data prior to subsequent processing for atti-
tude, velocity, and position updating. For details on calibration procedures, the reader
is referred to [6].
At the system performance level, it is the non-repeatable portion of the error
that is of concern. In the system error analyses presented in the next chapter (as
well as the remainder of the book), the word “bias” will refer to the bias component
that remains after calibration corrections have been applied. There are two primary
components of this remaining, non-repeatable, portion of the bias. One is the change
in error that occurs each time the INS is powered on. This is sometimes referred
to as “turn-on to turn-on bias” sometimes shortened simply to “turn-on bias.” With
well-designed sensors, and good calibration, this component is zero-mean over an
ensemble of power-ups. Manufacturers may provide “one-sigma” values in the speci-
fication sheets. What they are actually providing is a measure of the standard deviation.
Navigation-grade inertial sensors 103
where SFerror is the scale-factor error. If SFerror was constant, it could be eliminated
through factory calibration. However, as with bias error, real sensors exhibit some
amount of scale-factor instability. That is, SFerror varies from run to run and within a
given run. The constant portion of SFerror will be calibrated out but the variable portion
remains. This component of scale-factor error is sometimes modeled and estimated
in aided-inertial systems (a simple example is given in a later chapter). The other
scale-factor error component is scale-factor non-linearity. This component generally
cannot be estimated in an aided system and thus designers of navigation-grade sensors
seek to minimize this error component. For navigation-grade sensors, the scale-factor
stability and non-linearity is less than 10−4 (i.e., 100 ppm).
The next major sensor error source is cross-coupling errors. That is, a given sensor
may erroneously sense a portion of the input from an orthogonal axis. For example, an
accelerometer installed along the x-axis may sense a portion of the specific force in the
y and z directions. This can occur because of error in the determination of the sensitive
axis of a given sensor. This can also occur because a given sensor is not mounted
perfectly orthogonal to the other two sensors in the triad. Some references in the
literature refer to this phenomenon as “non-orthogonality” error and some references
use the term “misalignment” error. The latter term, regrettably, has become quite
prevalent despite the fact that “alignment” is part of the inertial initialization procedure
104 Fundamentals of inertial navigation systems and aiding
(details provided in a subsequent chapter) and errors in that procedure are separate
and distinct from non-orthogonality sensor error. Nevertheless, for consistency with
the bulk of the literature, we will abbreviate non-orthogonality error as “MA” (for
misalignment). With the reasonable assumption that the non-orthogonality is constant,
the erroneous measurement can be modeled with a matrix equation:
⎡ ⎤ ⎡ ⎤⎡ ⎤
sx 1 MAxy MAxz sx
⎣ sy ⎦ = ⎣MAyx 1 MAyz ⎦ ⎣sy ⎦ (8.27)
sz meas MAzx MAzy 1 sz true
where, for example, MAxy is the fraction of the input along the y-axis that is erroneously
being sensed by the x sensor. For navigation-grade inertial measurement units (IMUs),
the cross-coupling error is typically less than 10−4 (i.e., less than 0.1 milli-radian of
axis non-orthogonality).
Equations (8.25), (8.26), and (8.27) can be combined to model the total actual
sensor measurement including all three effects:
⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎡ ⎤
sx biasx SFx MAxy MAxz sx
⎣sy ⎦ = ⎣biasy ⎦ + ⎣MAyx SFy MAyz ⎦ ⎣sy ⎦ (8.28)
sz meas biasz MAzx MAzy SFz sz true
We conclude this chapter with some comments about sensor noise and other error
effects. Although legacy spinning-mass gyros exhibited negligible amounts of noise,
modern optical-based sensors are not so fortunate. Thermal noise inherent in the
electronics is one source and, for ring-laser gyros, the mechanisms used to alleviate the
lock-in problem are another source. For those working at the system-level, the bottom
line is that in both accelerometers and gyros, the bulk of the noise effect manifests
itself at the rate level (i.e., acceleration or angular rate). Since most nav-grade sensors
output velocity-change (V ) or angular displacement (θ), it is the integrated noise
which is experienced in the measurements. As described in an appendix at the end of
this book, the integral of white noise is called “random walk” and its standard deviation
grows proportionately with the square-root of time. Thus, in a spec sheet, the √ units
of gyro noise (specified as “angle random walk”) are typically given as deg/ hour.
For accelerometers, the√units of velocity random walk are a bit less intuitive and are
typically given as μg/ Hz. This form is derived from the power spectral density
representation of the accelerometer noise. To see how this is also a random walk,
alternative units can be derived as follows:
⎡ ⎤
m m
μg ⎢ 2 ⎥ m m
1 √ ≈ Xg ⎣ s ⎦ = Xg 1
= Xg 3
= Xg √s (8.29)
Hz 1 s2 · s− 2 s2 s
s
Navigation-grade inertial sensors 105
where, again, Xg ≈ 9.81 × 10−6 . We can determine the standard deviation of the
specific-force noise by multiplying the noise spec by the square root of the sampling
rate:
⎡ ⎤
m
m
m 1
1 ⎢s s⎥
σf = Vrw Xg √s fs = Vrw Xg fs ⎣ √ ⎦ = Vrw Xg fs 2 (8.30)
s s s s
where fs is the sampling rate. To determine the standard deviation of the delta-V noise,
multiply the noise spec by the square-root of the sampling interval:
√
m m
s m
σV = Vrw Xg √
s
Ts [s] = Vrw Xg Ts s√ = Vrw Xg Ts (8.31)
s s s
References
[1] Killpatrick JE, inventor; Honeywell, assignee. Laser angular rate sensor. United
States Patent US 3373650; 1968 Mar 19.
Navigation-grade inertial sensors 107
[2] Killpatrick JE, Berndt DF, Fritze KR, et al., inventors; Honeywell, assignee.
Laser gyro dither stripper gain correction method and apparatus. United States
Patent US 5486920; 1996 Jan 23.
[3] Kondo N. Application of zero-lock laser gyro technology to high accuracy
stellar-inertial systems. In: Proceedings of the 1992 National Technical Meeting
of The Institute of Navigation; 1992.
[4] Lefevre HC. The Fiber-Optic Gyroscope. 2nd ed. Boston, MA: Artech House;
2014.
[5] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
[6] Rogers RM. Applied Mathematics in Integrated Navigation Systems. 3rd ed.
Reston, VA: American Institute of Aeronautics and Astronautics; 2007.
[7] Groves P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation
Systems. 2nd ed. Boston, MA: Artech House; 2013.
This page intentionally left blank
Chapter 9
Inertial error analysis
9.1 Introduction
We have studied inertial sensors and their error characteristics. We have learned how
to process the measurements in order to determine position, velocity and attitude. We
now turn our attention to performance. For example, how does an accelerometer bias
impact the position, velocity and attitude solution? What about a gyro bias? How do
we go about analyzing the performance of the overall inertial navigation system? The
first step is to introduce the various classes of errors found in inertial navigation. We
will learn about the dominant horizontal error mode known as Schuler oscillations
and then we will also study the instability of the vertical channel. We will close with
some comments about noise.
The accuracy in an inertial navigation system is limited by a variety of errors in
the data that it is processing. This includes any errors in the initialization of position,
velocity and attitude. There are, of course, imperfections in the system components
(the gyros and accelerometers) but there are also imperfections in the mounting of the
components. Up to this point, we have implicitly assumed that the accelerometer triad
consists of three orthogonal accelerometers. What if they are not perfectly orthogonal?
What if we do not know exactly how they are mounted relative to the body frame?
The same goes for the gyros. Finally you have computational inaccuracies. We have
discrete time updates. We are not implementing perfect analog integration and as a
result there is a potential for errors in the computation as well.
As we understand from our development of the position/velocity/attitude updating
equations, we know that any inaccuracies at any step in the process will be passed
on to the next step. The errors will simply build upon each other and thus, as is the
case in any kind of dead reckoning system, the errors will grow. As a result, we say
an inertial navigation system “drifts” over time. A typical nav-grade inertial system
is characterized as being about a “one nautical-mile-per-hour navigator.” What this
means is that the position error drifts off at approximately one nautical mile per hour.
This is a gross over-generalization. As we will see shortly, inertial errors are not
linear over time periods of hours. Nevertheless, average drift rates are estimated and
used to characterize the overall system. If an inertial system is characterized as a
nautical-mile-per-hour navigator, the implication is that a certain level of sensors, a
certain level of mounting accuracy and a certain performance on the initialization is
inherent.
110 Fundamentals of inertial navigation systems and aiding
We will start by characterizing the dominant horizontal and vertical errors and
then will derive expressions to characterize the impact of the dominant sensor errors
(accelerometer and gyro biases).
Figure 9.1 The theoretical pendulum of length l. On the left, the pendulum is
displaced and will oscillate. On the right, the pendulum is at rest and
will not oscillate
Inertial error analysis 111
As shown in Figure 9.1, if the pendulum is at rest, the center of gravity and the
pivot lie along the same line as the restoring force (the gravity vector). When the
pendulum is displaced, the force of gravity can be resolved into two components as
shown in Figure 9.2. The restoring force is the gravity component that is perpendicular
to the pendulum arm: g sin θ
Now consider the situation in which the pendulum is mounted in a vehicle that is
accelerating horizontally. The pendulum is attached to the vehicle at the pivot point.
As a result, when the vehicle is accelerating, the pivot is accelerating too. However, as
depicted in Figure 9.3, the “resting” orientation of the pendulum lies along the vector
sum of gravity and the horizontal acceleration.
g sin θ g cos θ
g
Figure 9.2 The force of gravity acting upon the pendulum can be resolved into
components that are parallel and perpendicular to the pendulum arm.
The perpendicular component is the restoring force
Figure 9.3 When undergoing horizontal acceleration, the pendulum aligns itself
with the vector sum of the reaction to gravity and the horizontal
acceleration
112 Fundamentals of inertial navigation systems and aiding
g
a a Assume: motion over earth surface only
g
g
Pivot at (no vertical motion)
earth
a
surface
l = R: radius of earth plus altitude
(near earth user assumed)
g0ΦE
g0
Figure 9.5 Simplified error analysis for the north channel. The vehicle in which the
INS is mounted is assumed to be stationary, located on the surface of
the Earth, level and north-pointing. A spherical Earth is assumed as is
perfect knowledge of gravity
enough to mount and use on a ship) specifically designed with a natural oscillation
period (i.e., the inverse of its natural frequency) equal to the period of an Earth-radius-
length pendulum would behave in the desired manner. Specifically, despite horizontal
acceleration such a mechanical system would maintain its orientation (specifically,
local-level and vertical).
In the case of a gyrocompass, the spin axis of the gyro needed to be maintained in
the local horizontal. However, recall that in inertial navigation we mechanize a locally
level platform too (physical in the case of a gimbaled system and virtual/mathematical
in the case of a strapdown system). In the early days of inertial navigation, the process
of mechanizing a platform to maintain local-level was known as “Schuler tuning.”
The period of a Schuler pendulum is:
l R 6.37 × 106 m
T = 2π = 2π ≈ 2π ≈ 5, 063 s ≈ 84.4 min (9.2)
g g0 9.81 sm2
Inertial error analysis 113
where g0 is the surface level gravity and R is the mean radius of the Earth. As we will
see shortly, not only is the so-called “Schuler period” the natural period of a system
mechanized to maintain local level, it is also the period of some of the dominant errors
in such a system.∗
∗
For the nitpickers: at any given position on the earth, a more precise value for the Schuler period can be
calculated by using the geometric mean of the local values of the two earth radii of curvature and the local
value of gravity. Latitude-alone is sufficient for the earth radii and is also sufficient for simple models
of gravity. If you have an application that needs better gravity accuracy then you probably are already an
expert in Schuler periods.
114 Fundamentals of inertial navigation systems and aiding
φE
Figure 9.6 A north accelerometer bias leads to erroneous north velocity and a
tilting of the platform about the east axis. Since the north axis of the
platform is no longer level, a component of the reaction to gravity will
be sensed
is always opposite to the direction of the accelerometer bias. There is, therefore, a
negative feedback loop which we will now show produces Schuler oscillations.
The generic characteristic equation of a feedback loop is given by:
1 − loop gain = 0 (9.3)
where the loop gain is simply the product of the gain blocks around the loop. For
Figure 9.5, then, the characteristic equation is:
1 −1 1
1− g0 = 0 (9.4)
s R s
The gain terms can be gathered:
g0
1+ 2 =0 (9.5)
sR
which can be rewritten as:
g0
s2 + =0 (9.6)
R
The stability of the feedback loop is determined by solving for the roots (i.e., poles)
of the characteristic equation:
g0
s = ±j (9.7)
R
where j is the square root of −1. The roots thus consist of a conjugate pole pair
on the imaginary axis (Figure 9.7). The loop is thus marginally stable. That is, any
disturbance will cause the loop to oscillate. The frequency of oscillation is given by
the square-root term in Equation (9.7). Comparing this term with Equation (9.2), we
see that the frequency of oscillation is the inverse of the Schuler period. It is thus
referred to as the Schuler frequency:
2π g0
ωs = = (9.8)
T R
Inertial error analysis 115
Im
ωs
Re
–ωs
Figure 9.7 The poles of the characteristic equation of the north inertial error
channel negative feedback loop consist of a conjugate pair on the
imaginary axis
Although we have studied the north channel, a similar analysis on the east channel
would reveal the Schuler oscillation there as well. Furthermore, similar analyses for
initial velocity errors, initial tilt errors or gyro errors (instead of accel bias) would
also show the presence of Schuler oscillations. We will investigate some of these now.
initial
velocity
error velocity
δvx(o)
acceleration δf bx error
error
δx position
δvx
1 l error
∑ ∑
S S
1
g
R
attitude
error δθ
1 δωby gyro
∑ ∑ error
S
δθ0
initial
attitude error
Figure 9.8 Single channel (North) Schuler error loop. The vehicle is assumed to be
stationary, level and north-pointing. The attitude error is about the
pitch axis
116 Fundamentals of inertial navigation systems and aiding
north, the body-y gyro is pointed east and the attitude error (δθ ) is the pitch error about
the body y-axis. We will go through two examples in detail: a north accelerometer
bias and an east gyro bias. These analyses are so-called “single channel” analyses
because they ignore the cross-coupling between axes that occurs in reality (e.g., a
north accelerometer error eventually leads to east-west velocity and position errors).
As we will see in the next chapter, the cross-coupling is due to the effects of Earth rate.
where X (s) and Y (s) are the Laplace transforms of x(t) and y(t), respectively. Applying
this and focusing on just the accelerometer bias, the loop can thus be redrawn as
shown in Figure 9.9. We seek first to describe the relationship between the input and
the output of this system. We will then derive a transfer function from which we can
determine the velocity error for a particular accelerometer error.
From Figure 9.9, we see that Y (s) is the output of an integration block and the
input to that block consists of the input, X (s), summed with the result of a feedback
loop:
1 −1 1
Y (s) = X (s) + (g) Y (s) (9.11)
s R s
accel
error
X(s)
Y (s)
1
Σ
S
1
g –
R
Θ(s)
1
Σ Σ
S
With a bit of algebra, we can solve for the transfer function (the ratio of the output to
the input):
Y (s) s
H (s) = = 2 (9.12)
X (s) s + g
R
We seek to determine the errors that result from an accelerometer bias. Without loss
of generality, we assume the bias begins at t = 0 and thus can be modeled by a scaled
unit step function:
1
x(t) = δfx u(t) ⇒ X (s) = δfx
b b
(9.13)
s
where δfxb is the magnitude of the accelerometer bias. The output for this particular
input is thus:
δfxb
Y (s) = X (s)H (s) = (9.14)
s2 + Rg
If, like most engineers, you solve inverse Laplace transforms by using tables, you
will want to modify the form of (9.14) as follows:
g
δf b R R
Y (s) = 2 x g = δfxb (9.15)
s +R g s2 + g
R
This allows us to take advantage of the following entry in a table of standard Laplace
transforms:
ω
L −1 = sin (ωt)u(t) (9.16)
ω 2 + s2
Therefore:
−1 R g
L {Y (s)} = y(t) = δfxb sin t u(t) (9.17)
g R
Recalling Equation (9.8), we can write the expression for north velocity error as a
function of north accelerometer bias in terms of the Schuler frequency:
δfxb
y(t) = δvx (t) = sin (ωs t)u(t) (9.18)
ωs
The integral of (9.18) provides the position error (in linear units):
t t
δfxb
δpx (t) = δvx (λ)dλ = sin (ωs λ)dλ (9.19)
0 0 ωs
The solution of this integral yields:
δfxb
δpx (t) = [1 − cos (ωs t)]u(t) (9.20)
ωs2
118 Fundamentals of inertial navigation systems and aiding
Let us now consider some implications of these equations. From (9.18), we can see
that the maximum velocity error is:
δfxb
max{δvx (t)} = (9.21)
ωs
For an accelerometer bias, Ba , specified in the typical units of micro-gs (i.e., millionths
of the nominal magnitude of gravity), the maximum velocity error is:
Thus, we conclude that maximum velocity error is approximately 8 mm/sec per μg.
A 100 μg accelerometer bias thus induces a maximum velocity error of 0.8 m/sec.
Following a similar analysis, we can show that the maximum position error is approx-
imately 12.74 m per μg. A 100 μg accelerometer bias thus induces a maximum
position error of approximately 1,274 m, or roughly 0.7 nautical mile. Nav-grade
accelerometers typically exhibit so-called “bias instabilities” (i.e., the residual bias
after calibration) on the order of tens of micro-gs. The position and velocity errors
((9.18) and (9.20)) over the course of 4 hours are depicted in Figure 9.10. Although
1.5
north position error [km]
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4
1
north velocity error [m/s]
0.5
–0.5
–1
0 0.5 1 1.5 2 2.5 3 3.5 4
time in hours
Figure 9.10 Single-channel north error results for a 100 μg accelerometer bias
Inertial error analysis 119
we have not shown it here, a closed form expression for the pitch error can also be
derived. Like the velocity error, it consists of a sinusoid at the Schuler frequency.
As with the accelerometer, we assume the gyro bias begins at t = 0 and thus can be
modeled by a scaled unit step function:
1
x(t) = δωy u(t) ⇒ X (s) = δωy
b b
(9.25)
s
The output for this particular input is:
δωyb g
Y (s) = X (s)H (s) = (9.26)
s s2 + Rg
In this case, it can be easier to get the inverse transform of the term inside the paren-
theses and then find the integral of the result (recall that division by s in the Laplace
domain is the equivalent of integration in the time domain). In order to take advantage
of the previously discussed table entry (9.16), we write the term in parentheses as:
⎧ ⎫
⎪
⎨ g g R⎪
⎬
g R g
L −1 2 g = L −1
s +R ⎪
⎩ s +R ⎪
2 g
⎭
⎧ ⎫
⎪
⎨ R ⎪
⎬
g −1 g (9.27)
=g L
R ⎪
⎩s + R ⎪
2 g
⎭
g
= gR sin t u(t)
R
Utilizing (9.27), the inverse Laplace transform of (9.26) is:
t
g
L −1 {Y (s)} = y(t) = δωyb L −1 dλ
0 + Rg
s2
t (9.28)
g
= δωyb gR sin λ dλ
0 R
120 Fundamentals of inertial navigation systems and aiding
5
north position error [km]
0
0 0.5 1 1.5 2 2.5 3 3.5 4
north velocity error [m/s]
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
time in hours
Figure 9.11 Single-channel north error results for a 0.01 deg/hour gyro bias
Inertial error analysis 121
into account, there is a long period oscillation for which the linear trend shown here
is merely the initial portion.
In the horizontal, most error sources in an inertial system will initiate oscillations with
a Schuler period of approximately 84.4 min. As we will now show, the vertical channel
is characterized by a positive feedback loop in which errors grow without bound.
This behavior in the vertical channel stems from incorrect correction of gravity in the
vertical accelerometer measurements. Thus we start the analysis by modeling gravity.
Gravity decreases with altitude and this altitude dependency is well approximated by:
2
R
g(h) = g0 (9.31)
R+h
where g0 is the surface level gravity, R is the mean radius of the Earth, and h is altitude
above the Earth. Equation (9.31) can be written as a Taylor series expansion at h = 0:
2
R 2h 3h2 4h3
g(h) = g0 = g0 1 − + 2 − 3 ··· (9.32)
R+h R R R
Since h << R for terrestrial and aeronautical platforms, it is sufficient to approximate
gravity by truncating the series after the first order term:
2h
g(h) ≈ g0 1 − (9.33)
R
We can now derive an expression for the error in computed gravity as a function of
error in computed altitude. We write the erroneously computed altitude as:
hcomputed = h + δh (9.34)
where the altitude error is δh. The computed value of gravity at this computed altitude
is thus:
2(h + δh) 2h 2(δh)
g(hcomputed ) = g(h + δh) = g0 1 − = g0 1 − −
R R R
(9.35)
Now gather the true and error terms:
2h 2g0
g(hcomputed ) = g0 1 − − δh (9.36)
R R
Substitution of Equation (9.33) into (9.36) yields:
2g0
g(hcomputed ) = g(h) − δh (9.37)
R
The error in the computed gravity at the erroneously computed altitude is thus:
2g0
δg(δh) = g(hcomputed ) − g(h) = − δh (9.38)
R
122 Fundamentals of inertial navigation systems and aiding
As expected, Equation (9.38) shows that for positive altitude errors (i.e., the computed
height is greater than the true height), the computed gravity is less than true gravity
and thus the error is negative. The vertical channel error block diagram is depicted in
Figure 9.12.
In the upper left corner of the diagram, we see the gravity model error has the
same magnitude as Equation (9.38) but is opposite in sign. This is necessary since a
negative gravity modeling error results in a positive vertical velocity error (when the up
direction is taken as positive). The remainder of the block diagram is straightforward
with the sum of specific force measurement error and gravity modeling error being
the vertical acceleration error. The integral of this is vertical velocity error and the
next integral yields vertical position error.
The diagram can be used to analyze the effects of initial height error or ini-
tial vertical velocity error but the vertical channel error characterization will be the
same as for the case of a vertical accelerometer error as depicted in the figure. The
characteristic equation for the feedback loop is:
2g0
s2 − =0 (9.39)
R
The solution of (9.39) yields two real roots (poles):
2g0 √
s=± = ± 2ωs (9.40)
R
where the Schuler frequency, ωs , was defined in Equation (9.8). As we know from
linear system theory, the presence of a real pole in the right half plane indicates the
system is unstable. Specifically, any perturbation of the system will yield a response
that grows without bound.
Let us conceptualize this instability. If a stationary INS is on the surface of the
Earth but has been erroneously initialized with a higher value of altitude, the gravity
compensation algorithm will compute a value of gravity that is too small. Since the
INS is stationary, the only force being measured by the vertical accelerometer is
the reaction to gravity. Thus the specific force measured by the accelerometer triad,
converted to the navigation frame is:
⎡ ⎤
0
f nb = ⎣ 0 ⎦ (9.41)
−g0
2g0 2g0
δh
R R
. .. .
δνup = δh 1 δνup = δh 1 δh
δfup
S S
For the sake of illustration, let us assume that the height error is such that the computed
gravity is too small by a factor of 10−4 . As a result, the computed gravity vector
would be:
⎡ ⎤
0
g computed = ⎣ 0 ⎦ (9.42)
0.9999g0
The value of vertical acceleration computed by the accelerometer sensing equation is
thus:
⎡ ⎤
0
f nb + g computed = ⎣ 0 ⎦ (9.43)
−0.0001g0
Since the nav-frame z-axis points down, the computed acceleration is in the up direc-
tion. The computed acceleration is small, but it is non-zero. As a result, it will get
integrated into non-zero vertical velocity (in the up direction) and this will get inte-
grated into an increasing value of altitude. Thus, the erroneous initialization of height
(to a value that is too high) eventually produces a computed value of height that is
even higher. The next time gravity is computed, an even smaller value is obtained
and an even larger computed vertical acceleration results. This positive feedback loop
continues as computed vertical velocity and altitude grow toward infinity.
To quantify this phenomenon more precisely, we can perform error analyses using
the block diagram illustrated in Figure 9.12. For example, if the vertical channel is
initialized with an incorrect altitude, we can exploit the following Laplace Transform:
d
L y(t) = sY (s) − y(0) (9.44)
dt
First, let:
y(t) = δh(t) (9.45)
Then, from Figure 9.12, we can see that the derivative of altitude error is vertical
velocity error and is the integral of 2gR0 δh (recall we are assuming the accelerometer
error is zero). Thus:
t
2g0
δvup (t) = y(λ)dλ (9.46)
0 R
Taking the Laplace transform of both sides of Equation (9.46) yields:
1 2g0
sY (s) − y(0) = Y (s) (9.47)
s R
Grouping terms:
2g 0
s− R
Y (s) = y(0) (9.48)
s
124 Fundamentals of inertial navigation systems and aiding
A perusal of the Laplace transform tables shows the inverse Laplace transform yields:
2g0
y(t) = y(0) cosh t (9.50)
R
After 1 hour, the hyperbolic cosine term is approximately 276. Thus if, for example,
the initial height error is 1 meter, the altitude error will grow to 276 m after an hour
(see Figure 9.13). Note this occurs even with a perfect accelerometer and a perfect
gravity model.
0.5
velocity error [m/s]
0.4
0.3
0.2
0.1
0
0 10 20 30 40 50 60
300
altitude error [m]
200
100
0
0 10 20 30 40 50 60
run time [min]
Figure 9.13 Vertical velocity and altitude errors for the case where altitude is
erroneously initialized to a value 1 m higher than true altitude. All
other error sources have been set to zero
Inertial error analysis 125
Following a similar analysis, it can be shown that an initial vertical velocity error
yields an altitude error given by:
R 2g0
δh(t) = δvup (0) sinh t (9.52)
2g0 R
Note that in all three cases, the error growth is hyperbolic. This is the fundamental
difference between the horizontal channel and the vertical channel. Perturbations in
the horizontal channel yield Schuler oscillations. Perturbations in the vertical channel,
however, yield errors that head off toward infinity. First-generation inertial navigation
systems handled this problem by simply not mechanizing the vertical channel. These
were gimbaled platforms and they did not even have a vertical accelerometer. The
system did not compute either vertical velocity or vertical position (altitude). This was
acceptable in aircraft for enroute navigation applications since height was determined
independently by a barometric altimeter. Although unmodeled atmospheric pressure
variations caused bias errors in the measured altitude, it was nevertheless stable (i.e.,
the measured altitude would never run off towards infinity).
However, the barometric altimeter had one particularly undesirable characteristic.
Lags inherent in the measurement of pressure caused lags in both the indicated altitude
and vertical velocity. The need to determine accurate, and low latency, vertical veloc-
ity led to the development of techniques to implement and stabilize the inertial vertical
channel. Specifically, altitude measurements from the barometric altimeter were com-
bined with the vertical accelerometer measurements to provide vertical velocity and
altitude outputs that had the low latency characteristics of the inertial solution and the
stability of the barometric altimeter measurements. Early implementations involved
fairly simple analog complementary filters [1] but later implementations made com-
pensations for atmospheric variations [2]. Eventually, Kalman filters were developed
not only to output the vertical velocity and altitude but also estimate altimeter and
vertical accelerometer errors [3]. We will cover baro stabilization later in this book.
Since the advent of GPS, it has also been used to stabilize the inertial vertical channel.
Since the error models described in this chapter are linear and time-invariant
(recall we used Laplace transforms to characterize the transfer functions), random
signal processing theory can be applied to the analysis of random inputs. Since the
noise at the rate level (specific force or angular rate) can be considered zero-mean and
white, the only necessary statistical characterization is the variance (or standard devi-
ation). Over very short periods of time (e.g., less than 5 or 6 min), the effects of earth
radius, gravity feedback, earth-rate, and Coriolis can be ignored. For accelerometer
noise with a standard deviation of σacc (given in units of meters-per-second per root
second), the position error standard deviation can be approximated by [4]:
1 2 3
σposacc = σ t (9.54)
3 acc
where t is the elapsed time in seconds. For gyro noise with a standard deviation of
σgyr (given in units of radians-per-root-second), the position error standard deviation
can be approximated by:
g 1 2 5
σposgyr = σ t (9.55)
2 5 gyr
where g is the nominal magnitude of gravity. Figure 9.14 depicts the standard deviation
of position error due to accelerometer noise of 10 √μgHz (approximately 10−4 meters-
per-second per root second). Figure 9.15 similarly depicts the position error standard
0.3
0.25
position error standard deviation (m)
0.2
0.15
0.1
0.05
0
0 50 100 150 200 250 300
time in seconds
1.4
1.2
position error standard deviation (m)
1
0.8
0.6
0.4
0.2
0
0 50 100 150 200 250 300
time in seconds
Figure 9.15 Standard deviation of position error due to gyro noise of 0.00125
deg
√ as given by Equation (9.55)
hour
deviation due to gyro noise of 0.00125 √deghr (approximately 0.364 × 10−6 radians√ ).
s
Although the noise values for both sensors are typical for navigation-grade, the error
growth due to the gyro noise far exceeds that of the accelerometer.
In the next chapter, we will confirm via simulation that error due to gyro noise
is the greater of the two even for long time periods. For periods longer than 5 min up
to the length of a Schuler period (e.g., 90 min), an analysis that accounts for earth
radius and gravity feedback is required. An example given by [5] approximates the
position error variance due to gyro noise:
1 1 1
σpos
2
= 6g 2
t − sin ωs t + sin 2ωs t σgyr
2
(9.56)
gyr
4ωs4 3ωs5 24ωs5
where ωs is the Schuler frequency. For the same gyro noise as considered earlier
(0.00125 √deg
hour
), the position error standard deviation as given by (9.56) is depicted
in Figure 9.16. As the plot shows, the error growth pauses at the end of the given
time period of 90 min. Longer time periods will be examined via simulation in the
next chapter. It is important to note these noise equations are “single channel” in that
they do not account for the effects of cross-coupling between axes (which, again,
will be explored in the next chapter). More detailed closed-form analyses are given
in [6,7]. However, for nav-grade sensors, medium- and long-term system performance
tends to be dominated by sensor biases, initialization errors, and maneuver-dependent
errors.
128 Fundamentals of inertial navigation systems and aiding
250
position error standard deviation (m)
200
150
100
50
0
0 10 20 30 40 50 60 70 80 90
time in minutes
deg
Figure 9.16 Standard deviation of position error due to gyro noise of 0.00125 √
hr
as given by (9.56)
Finally, it must be emphasized that the most significant impact of sensor noise is
on initialization. Although the impact on position and velocity performance is small
relative to other error sources, sensor noise essentially dictates a lower bound on
the time required to achieve a given level of initialization performance. As we will
explore in a later chapter, accelerometer measurements are used for coarse “leveling”
(i.e., determination of initial pitch and roll) and gyro measurements are used for
“gyrocompassing” (i.e., determination of initial yaw angle). A given level of sensor
noise will dictate a certain amount of “averaging” (i.e., filtering) to achieve desired
accuracy in the initial determination of pitch/roll/yaw.
References
[1] Kayton M, Fried W. Avionics Navigation Systems. 2nd ed. New York, NY: John
Wiley & Sons; 1997.
[2] Ausman JS. Baro-Inertial Loop for the USAF Standard RLG INU. NAVIGA-
TION: Journal of the Institute of Navigation. 1991;38(2):205–220.
[3] Ausman JS. A Kalman filter mechanization for the Baro-inertial vertical chan-
nel. In: Proceedings of the 47th Annual Meeting of The Institute of Navigation;
1991.
Inertial error analysis 129
10.1 Introduction
In the previous chapter, we analyzed the Schuler error loop in the horizontal chan-
nel and derived closed form expressions for position and velocity errors given
accelerometer and gyro biases. The closed form expressions are actually first-order
approximations of the real error behavior. In this chapter, we will use simulations to
illustrate the cross-coupling phenomena between the north–south and east–west chan-
nels and will go on to analyze the dominance of certain error sources as a function of
mission duration.
A so-called “whole value” simulator generates simulated accel and gyro mea-
surements and processes them using the same algorithms as would be used in an actual
INS. In a computer simulation, however, the input errors (e.g., accel/gyros biases)
are controlled and known. The analyst can simulate a single error source on a single
sensor and evaluate its impact on the entire system.
In all of the simulation results to follow, the INS is modeled as being in a vehicle
that is stationary, level, north-pointing and is at a latitude of 45 degrees North.
into the east–west axis as well. Thus, a north accelerometer error leads to east–west
position/velocity/attitude errors.
Although not obvious at first glance, a closer inspection of Figure 10.1 reveals that
the peak-to-peak values of the north errors are decreasing over time while the east-west
errors are increasing. If the simulation is extended, the magnitudes (i.e., envelope) of
1.5
Position Error (km)
north
east
1
0.5
–0.5
0 0.5 1 1.5 2 2.5 3 3.5 4
1
Velocity Error (m/s)
0.5
–0.5 north
east
–1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
0.2
pitch
roll
yaw
0.15
Error in milli-radians
0.1
0.05
–0.05
–0.1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.2 Euler angle errors resulting from a 100 μg north accelerometer bias
Inertial error simulation 133
the east–west and north–south errors will slowly oscillate with a frequency equal to
the local vertical component of Earth rate: ωFoucalt = |ωie | sin L (where L is latitude).
This is known as the Foucault oscillation [1]. It is illustrated in Figures 10.3 and 10.4.
In terms of communication theory, the Foucault oscillation can be thought of as the
1.5
North
Position Error (km)
1 East
0.5
0
–0.5
–1
0 5 10 15 20 25 30 35 40 45 50
1
Velocity Error (m/s)
North
East
0.5
–0.5
–1
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
0.25
pitch
roll
0.2 yaw
0.15
Error milli-radians
0.1
0.05
–0.05
–0.1
–0.15
0 10 20 30 40 50
Time in Hours
0
Position Error (km)
–1
north
–2 east
–3
–4
0 0.5 1 1.5 2 2.5 3 3.5 4
0.2
Velocity Error (m/s)
–0.2
–0.4 north
east
–0.6
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.5 Position/velocity errors resulting from a 0.01 deg/hour east gyroscope
bias
Inertial error simulation 135
0.1
Error in milli-radians
–0.1
–0.2
–0.3
–0.4 pitch
roll
yaw
–0.5
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.6 Euler angle errors resulting from a 0.01 deg/hour east
gyroscope bias
4 North
Position Error (km)
2 East
0
–2
–4
–6
0 5 10 15 20 25 30 35 40 45 50
0.5
Velocity Error (m/s)
North
East
–0.5
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
Figure 10.7 Extending the 0.01 deg/hour east gyroscope bias simulation
to 48 hours. Position and velocity errors are depicted. A diurnal
(24 hours) oscillation is observed
136 Fundamentals of inertial navigation systems and aiding
0.5
0
Error in milli-radians
–0.5
–1
–1.5
pitch
roll
yaw
–2
0 10 20 30 40 50
Time in Hours
Figure 10.8 Extending the 0.01 deg/hour east gyroscope bias simulation
to 48 hours. Euler angle errors are depicted. A diurnal (24 hours)
oscillation is observed
0
Position Error (km)
–0.5
–1
north
east
–1.5
0 0.5 1 1.5 2 2.5 3 3.5 4
0
Velocity Error (m/s)
–0.05
north
–0.1 east
–0.15
–0.2
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
×10–3
4
Error in milli-radians
roll
3 pitch
2
1
0
–1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
0.6
Error in milli-radians
0.4
0.2
yaw
0
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.10 Euler angle errors resulting from a 0.01 deg/hour vertical
gyroscope bias
0
Position Error (km)
–10
north
east
–20
–30
0 5 10 15 20 25 30 35 40 45 50
0.2
Velocity Error (m/s)
north
east
0
–0.2
–0.4
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
Figure 10.11 Extending the 0.01 deg/hour vertical gyroscope bias simulation
to 48 hours. Position and velocity errors are depicted. A diurnal
(24 hours) oscillation is observed
In this case, the linear error growth trend is observed on the velocity components
and the position error growth is then quadratic. Nevertheless, the position error growth
is still slower for the vertical gyro bias than was the case for the horizontal gyro bias.
If we extend the duration of the simulation to 48 hours (Figures 10.11 and 10.12), we
see a diurnal oscillation as was the case for the horizontal bias. However, we also see
that the east position error has a linear trend over the entire 48 hours.
138 Fundamentals of inertial navigation systems and aiding
0.01
Error in milli-radians
0
roll
–0.01
pitch
–0.02
–0.03
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
1
Error in milli-radians
yaw
0.5
–0.5
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
Figure 10.12 Extending the 0.01 deg/hour vertical gyroscope bias simulation to
48 hours. Euler angle errors are depicted. A diurnal (24 hours)
oscillation is observed
0.2
Velocity Error (m/s)
0
–0.2
–0.4
–0.6 north
east
–0.8
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
0.05
Error in milli-radians
roll
pitch
–0.05
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
1
Error in milli-radians
0.8
0.6
yaw
0.4
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.14 Euler angle errors resulting from an initial azimuth error of
1 milli-radian
140 Fundamentals of inertial navigation systems and aiding
0
–2
–4
–6
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
Velocity Error (m/s)
0.5 north
east
–0.5
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
0.05
Error in milli-radians
roll
pitch
–0.05
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
1
Error in milli-radians
0.5
–0.5
yaw
–1
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
0.1
–0.05 north
east
–0.1
0 0.5 1 1.5 2 2.5 3 3.5 4
0.1
Velocity Error (m/s)
0.05
–0.05 north
east
–0.1
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
0.015
0.01
Error in milli-radians
0.005
–0.005
–0.01 pitch
roll
yaw
–0.015
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 10.18 Euler angle errors resulting from an initial north velocity error of
0.1 m/s
142 Fundamentals of inertial navigation systems and aiding
0.1
–0.05
–0.1
0 5 10 15 20 25 30 35 40 45 50
0.1
north
Velocity Error (m/s)
0.05 east
–0.05
–0.1
0 5 10 15 20 25 30 35 40 45 50
Time in Hours
Figure 10.19 Extending the initial north velocity error (0.1 m/s) simulation to
48 hours. Position/velocity errors depicted
0.015
pitch
roll
yaw
0.01
Error in milli-radians
0.005
–0.005
–0.01
–0.015
0 10 20 30 40 50
Time in Hours
Figure 10.20 Extending the initial north velocity error (0.1 m/s) simulation to
48 hours. Euler angle errors depicted
Inertial error simulation 143
350
300
250
200
North Error (m)
150
Accel Bias
100 All Errors
Initial Velocity Error
50
Vertical Gyro Bias
0
East Gyro Bias
–50 Initial Azimuth Error
0 5 10 15
Time in Minutes
Figure 10.21 North position error resulting from various error sources depicted in
the figure. Over this 15 min period, the accelerometer bias is clearly
the dominant error source
144 Fundamentals of inertial navigation systems and aiding
2
Accel Bias
1
Init Vel Err
0
Vertical Gyro Bias
–1
North Error (km)
–2
East Gyro Bias
–3
Initial Azimuth Error
–4 All Errors
–5
–6
–7
0 0.5 1 1.5 2 2.5 3
Time in Hours
Figure 10.22 North position error resulting from various error sources depicted in
the figure. At the end of this 3 hour period, the horizontal gyro bias
and initial azimuth error are the dominant error sources
2
Accel Bias
0
Initial Velocity Error
–8
–12
0 2 4 6 8 10 12
Time in Hours
Figure 10.23 North position error resulting from various error sources depicted in
the figure. By the end of 12 hours the dominant error source is the
vertical gyro bias
error sources as well (except the vertical gyro bias). The dominant frequency over this
long simulation is the diurnal oscillation observed in both gyro bias results and the ini-
tial azimuth error. Since these three are the dominant error sources, it is not surprising
that that a diurnal oscillation is also observed in the combination of all error sources.
Inertial error simulation 145
4 East
2 Gyro Bias
Accel Bias
North Error (km) 0
Init Vel Err
–2
–4 Vertical
Initial Gyro
–6 Azimuth Bias
Error
–8
–12
0 5 10 15 20 25 30
Time in Hours
Figure 10.24 North position error resulting from various error sources depicted in
the figure. Over this 30 hour period the three major frequencies
(Schuler, Diurnal, Foucault) are readily apparent
Finally, the long period Foucault oscillation is also apparent in the accelerometer bias
results although not as clearly as in the earlier figures (e.g., Figure 10.3).
We can thus conclude that for very short durations (i.e., less than 15 minutes),
accelerometer errors (and equivalently, gravity modeling errors) will be the dominant
error source. Over medium durations (e.g., 1–4 hours), the horizontal gyro errors
and initial azimuth error dominate. For long durations (greater than 10 hours), the
vertical gyro error is the dominant factor with horizontal gyro error and initial azimuth
determination both following closely behind.
Let us first consider how noise error on a single sensor will cross-couple into the
orthogonal horizontal axis (given the vertical channel instability, there is little point
in examining it). Figure 10.25 depicts the √position error standard deviation resulting
from north accelerometer noise of 10 μg/ Hz. Both the general square-root of time
error growth (on the north axis) and the cross-coupling are readily apparent. However,
examination of the y-axis reveals the error is negligibly small in comparison with the
errors previously considered in this chapter. Figure 10.26 depicts √ the position error
standard deviation resulting from east gyro noise of 0.002 deg/ hour.
6
east
north
5
Position Error Std. Dev. (m)
0
0 0.5 1 1.5 2 2.5 3
Time in Hours
√
Figure 10.25 Position error standard deviation due to 10 μg/ Hz on the north
accelerometer only
500
450
400
Position Error Std. Dev. (m)
350
300
east
250 north
200
150
100
50
0
0 0.5 1 1.5 2 2.5 3
Time in Hours
√
Figure 10.26 Position error standard deviation due to noise of 0.002 deg/ hour
on the east gyro only
Inertial error simulation 147
1
0.9
For typical nav-grade sensor noise values, it is clear that gyro noise is the dominant
factor. Nevertheless, even for the gyro, the error growth is still relatively small in
comparison to the previously considered error sources. To see that this is indeed
the case even for more realistic scenarios,√ Figure 10.27 depicts the position error
standard deviation
√ resulting from 10 μg/ Hz noise on all three accelerometers and
0.002 deg/ hour noise on all three gyros. In comparison with the errors depicted in
Figure 10.23, it is clear that nav-grade sensor noise plays a very small role in overall
system performance.
Figure 10.28 Great circle flight path from Houston, Texas, USA to Auckland,
New Zealand
10
4
Velocity Error in m/s
–2
–4
–6
–6 east
north
–10
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.29 Horizontal velocity errors for the simulated Houston to Auckland
flight
Inertial error simulation 149
10
7
Error in Nautical Miles
0
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.30 Horizontal position error for the simulated Houston to Auckland
flight
0.3
roll
pitch
0.25 yaw
0.2
0.15
Error in Degrees
0.1
0.05
–0.05
–0.1
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.31 Euler angle errors for the simulated Houston to Auckland flight
150 Fundamentals of inertial navigation systems and aiding
To see the impact of the vertical gyro error, the simulation is repeated but with a
vertical gyro bias of −0.01 deg/hour (all biases were positive in the previous case).
All other error sources remain the same. The results are depicted in Figures 10.32,
10.33, and 10.34. Whereas the peak horizontal position error is less than 10 nautical
10
4
Velocity Error in m/s
–2
–4
–6
–8 east
north
–10
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.32 Horizontal velocity errors for the simulated Houston to Auckland
flight with the vertical gyro bias negated
14
12
10
Error in Nautical Miles
0
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.33 Horizontal position error for the simulated Houston to Auckland
flight with the vertical gyro bias negated
Inertial error simulation 151
0.15
roll
pitch
yaw
0.1
Error in Degrees
0.05
–0.05
–0.1
0 2 4 6 8 10 12 14
Time in Hours
Figure 10.34 Euler angle errors for the simulated Houston to Auckland flight with
the vertical gyro bias negated
miles in the first case, when the vertical gyro bias is negated the peak error is well
over 13 nautical miles. Conversely, in the first case the maximum yaw error was
approximately 0.28 degree but in the negated case is slightly over 0.12 degree.
Reference
[1] Titterton DH, Weston JL. Strapdown Inertial Navigation Technology. 2nd ed.
Herts, UK: The Institution of Electrical Engineers; 2004.
This page intentionally left blank
Chapter 11
Inertial initialization—Part A
11.1 Introduction
This final chapter regarding inertial (only) processing addresses the procedures that
are actually done first in the operation of an inertial system: initialization of position,
velocity, and attitude. Initialization of attitude is sometimes referred to as “leveling
and alignment.” We had to wait until the end to learn about initialization since it
depends on many of the concepts that we have developed up to this point including
how we deal with gravity, earth rate, and various coordinate frames. We will intro-
duce the major concepts in this chapter and will focus on so-called “coarse leveling”
and “coarse alignment” [1]. Closer to the end of the book, we will come back to
this topic to address fine leveling and alignment since they depend upon aiding con-
cepts (typically utilizing a Kalman filter) that we will development in subsequent
chapters.
legacy ground-based radio navigation aids were used as well as flying over visual
checkpoints where there was a known location. Depending upon the desired accu-
racy of the position initialization, the lever arm between the radionavigation antenna
and the INS must be accommodated. Also, for in-flight initialization, the transport
delay between the time-of-validity of the radionavigation-determined position and the
position initialization of the INS must be taken into account.
The term “leveling” was coined at a time when all inertial navigation systems were
gimbaled platforms. The platform containing the two horizontal accelerometers had
to be physically leveled. In a strapdown system, the equivalent procedure involves
determining the pitch and roll angles of the vehicle.
Consider a gimbaled platform with two orthogonal accelerometers mounted in
the plane of the platform. If the vehicle is stationary, the only specific force is the
reaction to gravity. Since that force lies, to first order, in the vertical direction, the
platform is leveled by physically rotating it until the two in-plane accelerometers
output zero. Now in reality all sensors output non-zero values at all times due to
noise. Thus, even when there is no true input present, the accelerometers will output
noise (the same is true for gyros). Thus, when we talk about rotating the platform until
the two horizontal accelerometers output zero, we are really looking for an average
of zero. For nav-grade accelerometers, it is necessary only to average over a few
seconds.
In a strapdown system, leveling involves the estimation of pitch and roll (or the
components of the body-to-nav DCM or quaternion that depend on those values).
Leveling is actually accomplished in two steps. The first is coarse leveling in which a
few seconds of accelerometer measurements are used to get a rough estimate of pitch
and roll components. Fine leveling follows this and typically involves a Kalman filter
to refine the estimates. As mentioned earlier, we will discuss fine leveling later in the
book.
where the DC (“do not care”) terms are irrelevant since they will be multiplied by
zeros.
We know the reaction to gravity in the navigation frame is something that we can
specify without any measurements (at least to the accuracy of our gravity model).
We know that in the navigation frame, the horizontal components of the reaction to
gravity are zero, and we only have a non-zero value in the local vertical (for most
applications we can ignore the gravity deflection of the vertical). The reaction-to-
gravity vector in the navigation frame is thus known. The reaction-to-gravity vector
in the body frame is measured with the accelerometers. The nav-to-body direction
cosine matrix relates the two. This relationship allows us to get a rough initialization
of roll and pitch. Again, we do not care about six of the nine nav-to-body direction
cosine matrix elements since those six get multiplied by zeroes anyway. We can thus
simplify the relationship as follows:
⎡ ⎤ ⎡ ⎤
Abx g sin θ
⎢ ⎥ ⎢ ⎥
⎢ b⎥ ⎢ ⎥
⎢Ay ⎥ = ⎢ −g sin φ cos θ ⎥ (11.2)
⎣ ⎦ ⎣ ⎦
Abz −g cos φ cos θ
Proof:
Aby −g sin φ cos θ sin φ
= = = tan φ (11.4)
Abz −g cos φ cos θ cos φ
A four-quadrant arctangent must be used since roll ranges from 0 to ± 180 degrees.
Note, however, that the formula fails if pitch is ± 90 degrees. Pitch is obtained as
follows:
⎛ ⎞
⎜ Abx ⎟
θ = tan−1 ⎝ ⎠ (11.5)
(Aby )2 + (Abz )2
156 Fundamentals of inertial navigation systems and aiding
Proof:
Abx g sin θ
=
(Aby )2 + (Abz )2 (−g sin φ cos θ)2 + (−g cos φ cos θ)2
g sin θ
=
(−g cos θ )2 ( sin2 φ + cos2 φ)
g sin θ g sin θ
= = = tan θ
(−g cos θ )2 (1) g cos θ
Note that only positive values of cos θ will remain after the above processing and thus
the expression is only valid for −π2
≤ θ ≤ π2 . Thus, we should use a two-quadrant
arctangent function. This is perfectly acceptable, though, since pitch is defined to lie
in the above range.
Recall that these expressions for roll and pitch are valid only for a stationary
vehicle. Furthermore, the inputs must consist of accelerometer measurements that
have been averaged over a sufficiently long interval of time (e.g., a few seconds for
nav-grade sensors).
where “LL” stands for “local-level.” Note this body-to-LL DCM is obtained from the
theoretical expression for the body-to-nav DCM by setting yaw equal to zero. We do
not yet know yaw (azimuth), but coarse estimates of pitch and roll allow us to convert
the angular rate measurements from the body-frame to a frame that is approximately
locally level.
Since the vehicle is assumed to be stationary, the vector of gyro measurements
is simply the earth rate vector expressed in the body-frame (we will need to average
these measurements to deal with the noise). We can then convert the measured (and
158 Fundamentals of inertial navigation systems and aiding
N (level component
of earth rate)
x LL
ωieLL ( y) α
ωieLL (x)
y LL
Figure 11.1 The horizontal component of earth rate lies in the north direction.
Thus, the ratio of the horizontal components sensed in the local-level
frame can be used to determine the rotation angle of the local-level
frame from north. The angle in the diagram is denoted as the wander
angle (α). This is a design choice. The designer can let the initial
azimuthal offset be represented by a non-zero wander angle (thus
implying initial yaw = 0) or the azimuth offset can be applied to yaw
(thus implying initial wander angle = 0)
averaged) earth-rate vector from the body-frame to the local-level frame with the
above DCM:
ωLL
ie = Cb ωie ≈ Cb ωmeas
LL b LL b
(11.7)
where ωbmeasis the measured angular rate vector. Since the horizontal component of
Earth rate lies solely in the north direction, the level components of the resolved
Earth rate vector are simply projections of the north component of Earth rate onto the
horizontal axes of the local-level frame. This is illustrated in Figure 11.1. Notice in
the figure that the north component of earth rate projects onto the positive local-level
x-axis but onto the negative local-level y-axis. Thus, a negative sign is needed in the
equation for the azimuth angle:
α = arctan2(−ωieLL (y), ωieLL (x)) (11.8)
11.7 Conclusion
Although position and velocity must obviously be initialized, the challenge in inertial
system initialization is leveling and alignment. For stationary vehicles, coarse leveling
can be performed in just a few seconds. Coarse alignment can take longer especially at
higher latitudes. Fine leveling and alignment can take several minutes (again, longer
for higher latitudes) and is done almost exclusively with some form of Kalman filter.
Reference
[1] Kayton M, Fried W. Avionics Navigation Systems. 2nd ed. New York, NY: John
Wiley & Sons; 1997.
This page intentionally left blank
Chapter 12
Introduction to integration and estimation theory
the key components of the desired flight plan (e.g., waypoints along the route) and
a computer is needed to determine the difference between the current position and
the desired route. Finally, a flight control system is needed to maneuver the airplane
in order to maintain it on the desired route. All of these subsystems together com-
prise the overall aircraft navigation system. As we will discuss further, successful
operation of this system requires some specific performance characteristics in the
position/velocity/attitude sensors. Although it is a bit of a misnomer, we will stay
consistent with standard parlance by referring to the position/velocity/attitude deter-
mination system(s) as “navigation system(s)” (e.g., the inertial navigation system).
Although systems such as an INS or GNSS are actually position/velocity determina-
tion systems (and are only a component of an overall vehicle navigation system) they
are nevertheless almost universally referred to simply as navigation systems.
Figure 12.1 depicts the various errors in an aircraft navigation system (the same
principles apply to other types of vehicles as well). Total system error (TSE) is the
difference between the actual aircraft position and the desired position (e.g., the
desired position on the desired flight path). It is composed of navigation system (or
sensor) error (NSE) and flight control system error (also known as flight technical
error or FTE). NSE is the difference between the actual aircraft position and the
(navigation) sensor-derived position. NSE is thus the error in the positioning system.
FTE is the difference between the desired position and the (navigation) sensor-derived
position (since, of course, the flight control system does not know the actual position
of the aircraft). The figure thus depicts three “paths”: where the aircraft actually is,
where the aircraft thinks it is; and where the aircraft wants to be. Notice that both
NSE and FTE must be small in order to satisfy the overall goal of keeping the aircraft
on or near the desired path. A perfect navigation (sensor) system with a lousy flight
Navigation
System Error
Total
Desired Flight Path System
Actual Aircraft Error
Position
Sensor-derived Position
Flight Control
System Error
Figure 12.1 Aircraft navigation system error components: total system error is the
difference between the actual aircraft position and the desired
position. It is composed of navigation system error and flight control
system error
Introduction to integration and estimation theory 163
control system will not be acceptable. Similarly, a perfect control system being fed
lousy position/velocity data will not work either.
metrics (e.g., mean time between failure or MTBF). Some operations (“phases of
flight”) cannot be adequately supported by a single, stand-alone, navigation system
and thus integration of multiple systems is needed.
Sensor data rate and latency requirements are needed to satisfy the flight control
system. For example, if the positioning sensor only outputs a data point once every
half hour it is not going to be of much use for the flight control system. However, if
the sensor provides 100 Hz data (perfectly adequate for most aircraft flight control
systems), but the data arrives at the control system 5 sec after it was computed,
that is also unacceptable. A 5-sec latency will drive a flight control system unstable.
The navigation system must provide not only a sufficiently high data rate but also a
sufficiently low data latency to keep the control system stable.
Not surprisingly, the goal of an integrated navigation system is to combine the data
from multiple sensors in such a way that the requirements are satisfied. What we will
see is that various navigation subsystems or sensors meet some of the requirements
but not all. The goal of an integrated system is to get a combination of sensors such
that the combination meets all of the requirements.
We know that inertial navigation has poor long-term accuracy. The inertial system
error grows with time. Conversely, over the short term the inertial data is relatively
noise-free. Although the raw sensor outputs are noisy, they are integrated twice in
order to determine position. As a result, the bulk of the noise is smoothed out. We
also know that inertial systems can provide high data rates (hundreds of samples
per second) along with very short latencies (for flight control purposes it is nearly
instantaneous). Finally, we also know that high-quality attitude data is a by-product
of the inertial navigation processing.
Thus, it is very clear that GNSS and INS complement each other extremely well.
Each system has strengths where the other has weaknesses. The challenge in integra-
tion is to maximize the strengths of both systems while minimizing the weaknesses
of each. Obviously we want to get the long-term stability out of the GNSS, but we
want the low noise, high data rates, and low data latency out of the inertial navigation
system.
There are some additional issues. For example, there is the need to deal with
asynchronous data streams. The GNSS data are not synchronous with the inertial
data. We would also like to have robust operation even when less than four satellites
are available. We will see later that it is possible to combine the GNSS and inertial in
such a way that useful information can be extracted from the GNSS measurements
even when a GNSS-only position solution is not possible. Another issue is the lever-
arm between the inertial and the GNSS antenna. The two systems are determining
position and velocity with respect to two different points on the vehicle and thus the
lever-arm must be taken into account when processing the measurements.
Let us start this integration journey by learning about estimation: the theory
behind the algorithms that extract useful information from noisy data.
How do we take a noisy set of data and derive an estimate of a set of underlying true
parameters? First we must consider the concept of optimality.
Our goal in an estimation process is to do the best job possible of extracting
the underlying “truth” from a noisy set of measurements. We desire to do this in an
optimal fashion. That sounds nice. It sounds like what you want to do. It sounds like it
is best in some sense, but what does it mean? What is optimal? In general, an optimal
solution, in the context we are talking about, is one that minimizes a certain cost
function. You have to define the cost function, and then the optimum solution will
minimize that cost function.
Cost functions can take on different forms depending on the situation. For exam-
ple, the optimum cruise control system in a car might minimize the number of
overshoots as it is striving to maintain a certain velocity. Or, it might minimize the
amount of overshoot. In the case of an optimal estimator, we want to minimize the
166 Fundamentals of inertial navigation systems and aiding
error of the estimate. That sounds obvious, but let us parse out this sentence structure
a bit and figure out what these terms mean.
An estimator is an algorithm whereas the result (i.e., output) of the algorithm is
an estimate. Let us take the simple example of the sample mean estimator (i.e., the
sample average). The estimator is the algorithm given by:
1
N
μ̂ = zi (12.1)
N i=1
However, the estimate is the result obtained when we evaluate Equation (12.1)
with a specific set of numbers. For example:
2+3+1+3 9
μ̂ = = = 2.25
4 4
Let us generalize this and specify to be the true value of some parameter of
ˆ to be the estimate of that parameter. For optimal estimation, we are
interest and
seeking to minimize the difference between the truth and the estimate. We define our
estimation error as:
ˆ −
e= (12.2)
Accuracy is normally specified in terms of average performance (i.e., over a given
period of time, 95% of the error is less than some value). However, the sample mean
of the estimation error is not a good cost function (i.e., performance metric) due to
the fact that negative errors and positive errors cancel out. For example, two notional
error plots, both having average values of zero, are depicted in Figure 12.2. However,
clearly the top plot is better than the bottom plot. We could solve this problem by
weighting the positive and negative errors equally by taking the absolute value:
ˆ − |
|e| = |
The difficulty with the absolute value function, however, is that it has a
discontinuous slope as shown in Figure 12.3. This makes the absolute value func-
tion mathematically awkward and hard to apply normal calculus and minimization
algorithms. The better solution is to form the square of the error:
ˆ − )2
e 2 = ( (12.3)
Negative and positive errors are thus both weighted equally but with a function that
has no discontinuities. We can then form the average of the squared error in order to
characterize performance over some interval of interest. The metric is known as mean
squared error (MSE):
ˆ − )2 ]
MSE = E[e2 ] = E[( (12.4)
where “E” is the statistical expectation operator. In the general case where the error
(before squaring) has a bias in it as well as some variation around that bias, it can be
shown that mean squared error is equal to the variance plus the square of the bias.
There are a variety of minimum mean squared error estimators and many are
designed to have zero bias and minimum variance. Most of us are familiar with the
Introduction to integration and estimation theory 167
Figure 12.2 Two notional error plots. Both are zero mean but clearly the top plot is
better than the bottom
f(x)
f(x) = |x|
Figure 12.3 The absolute value function is mathematically awkward due to the fact
that the slope is discontinuous
mean and variance of a random variable, but what is the mean and variance of an
estimator? What is the mean and variance of an algorithm?
Reference to the mean and variance of an estimator is actually a reference to
the mean and variance of the estimation error. Consider the example of the sample
mean algorithm given in Equation (12.1). It can be shown that the sample mean is an
optimal estimation algorithm. Specifically, it has zero average estimation error and
it minimizes the variance of the estimation error. It is referred to as an “unbiased”
estimator since its average estimation error is zero.
Let us explore this more with some examples. Assume we have a large set of
Gaussian random numbers with a true mean of 18 and a variance of a 9 (i.e., a standard
deviation of 3). Note the specific values for the mean and variance are completely
arbitrary but are easier to visualize than using generic variables. A plot of 1,000
samples from this set is given in Figure 12.4. If we take the first one hundred numbers
and compute the sample mean, we will get an estimate that should be somewhat close
to the true value of 18. We will, however, get more insight into the performance of the
168 Fundamentals of inertial navigation systems and aiding
30
25
20
sample value
15
10
5
0 200 400 600 800 1,000
sample number
Figure 12.4 One thousand samples from a set of Gaussian random numbers with a
mean of 18 and a variance of 9
estimator if we compute many, many estimates. Let us take one thousand sets of 100
numbers and compute the sample mean of each set. Figure 12.5 shows the results.
As expected, the estimates are close to the true value. We can get a better picture
of the distribution of these estimates if we compute a histogram (Figure 12.6). The
histogram appears to show that the estimates are roughly Gaussian distributed. This
is not a coincidence. It can be shown [1] that when the sample-mean estimator oper-
ates on Gaussian random numbers, the resulting estimates themselves are Gaussian
distributed with a mean and variance given by:
σ2
E[μ̂] = μ VAR[μ̂] = (12.5)
N
where μ̂ is the sample-mean estimate; μ is the true value of the mean of the random
numbers; σ 2 is the true variance of the random numbers; and N is the number of
samples used in the estimate. As mentioned earlier, the sample-mean is an unbiased
estimator since its average value is equal to the truth. As might be expected, the
variation in the estimates is directly proportional to the variation in the underlying
random numbers and also is inversely proportional to the number of samples used in
the estimate.
Let us verify this by repeating the experiment with 1,000-sample averages. The
estimates and histogram are given in Figures 12.7 and 12.8. As we would expect
when averaging over a larger number of samples, the results are better. Equation
(12.5) quantifies exactly how much better the estimator will do for a given number
of samples.
Introduction to integration and estimation theory 169
18.8
18.6
18.4
estimated mean
18.2
18
17.8
17.6
17.4
17.2
17
0 200 400 600 800 1,000
set number
200
number of occurrences
150
100
50
0
17 17.5 18 18.5 19
sample mean value
18.8
18.6
18.4
estimated mean
18.2
18
17.8
17.6
17.4
17.2
17
0 200 400 600 800 1,000
set number
200
number of occurrences
150
100
50
0
17 17.5 18 18.5 19
sample mean value
On the extreme left is the measurement vector y. β1 is the unknown y-intercept and
β2 is the unknown slope (keep in mind that, in a real situation, we would not know
what the true values are). H is the data matrix that relates the dependent variables
(i.e., the measurements) to the independent variables. It turns out that the columns of
the H matrix are actually the values of x (the independent variable) raised to various
powers. Recall the values of x are 1, 2, 3, 4. The first column of the H matrix thus
consists of the values of x raised to the zeroth power. Thus, they are all 1. The second
column consists of the values of x raised to the first power. Thus, the second column
is just the values of x: 1, 2, 3, 4. Note that if we were fitting a quadratic instead of
a straight line, H would have three columns and the third column would consist of
the values of x raised to the second power. This can be extended arbitrarily to an nth
order polynomial.
So we have considered the error-free case. In reality, measurement data are noisy.
For example:
y = 3.05 4.73 7.04 9.06 (12.10)
and the values of x are the same as in the error-free case. The linear model needs to
be expanded to account for this error vector:
y = Hβ +
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤
3.05 1 1 1 1 1 0.05
⎢4.73⎥ ⎢1 2⎥ β ⎢ 2 ⎥ ⎢1 2⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ +⎢ ⎥ ⎢ ⎥ 1 + ⎢−0.27⎥
⎣7.04⎦ = ⎣1 ⎣ 3 ⎦ = ⎣1
1
(12.11)
3⎦ β2 ⎦
3 2 ⎣ 0.04 ⎦
9.06 1 4 4 1 4 0.06
Note that the data matrix (H) is the same and we are still trying to estimate the
same underlying unknowns. Now, of course, in reality we do not know what the
measurement error is. We are trying to compute an estimate that minimizes it and we
only have the measurements available to us. Using the noisy measurements (Equation
(12.10)), the least squares estimate of the slope and y-intercept (Equation (12.7))
yields:
0.885
β̂ =
2.034
References
[1] Freund JE, Walpole RE. Mathematical Statistics. 4th ed. Englewood Cliffs, NJ:
Prentice-Hall, Inc.; 1987.
[2] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
This page intentionally left blank
Chapter 13
Estimation theory and introduction to the
Kalman filter
1
x̂3 = (z1 + z2 + z3 ) (13.6)
3
1 1 1
= 2 · (z1 + z2 ) + z3
3 2 3
1 1
= [2 · x̂2 ] + z3
3 3
3−1 1
= x̂2 + z3
3 3
We can then write the expression for arbitrary index “k”:
k −1 1
x̂k = x̂k−1 + zk (13.7)
k k
The key result here is that the current estimate is a function of the previous estimate
and the current measurement. Equation (13.7) has the form of Equation (13.1) with
the prediction being given by the previous estimate. Why is the previous estimate a
prediction? In the absence of any other a priori knowledge, we can form no better
prediction than what is given by the previous estimate. Later we will consider cases
where we do have other information available to us that will permit the formation of
better predictions.
Note the weighting factors in (13.7) are not constant. For k = 1, the weighting
factor on the “prediction” (i.e., the previous estimate) is zero and the weighting factor
on the measurement is unity:
1−1 1
x̂1 = x̂0 + z1 = 0 · x̂0 + 1 · z1
1 1
This makes sense since there is no previous estimate and thus there is no prediction.
100% of the weight needs to be placed on the measurement. Now carry it to the other
Estimation theory and introduction to the Kalman filter 177
extreme. As k approaches infinity, the weighting factor on the prediction is unity∗ and
the weighting factor on the current measurement is zero:
∞−1 1
x̂∞ = x̂∞−1 + z∞ = 1 · x̂∞−1 + 0 · z∞
∞ ∞
As k gets larger and larger in Equation (13.7), the importance of each new data
point decreases. We are placing increasing weight on the previous estimate (a.k.a.,
our best current prediction). Although recursive estimation of the mean may not have
great practical value, the simple example helps lay the groundwork for non-trivial
cases that we will explore later.
∗
Of course, infinity over infinity is undefined. However, simple application of L’Hopital’s Rule shows the
result is equal to 1.
178 Fundamentals of inertial navigation systems and aiding
labeled (if you are an electrical engineer you might remember the resistor color code)
and all of the resistors in the bucket are labeled the same. Assume the resistor markings
indicate the nominal value of the resistors in the bucket is 100 ohms. Assume there is a
gold band on the resistors thus indicating 1% tolerance. Finally, assume the standard
deviation of the error on each of the ohmmeters is 3 ohms (unrealistically large, I
know, but it helps with the estimation theory concepts that will be explored shortly).
We are also going to assume that the 1% tolerance represents a standard deviation
and that the actual values of the resistors are Gaussian distributed. The resistors in
the bucket thus have a mean value of 100 ohms and a standard deviation of 1%
(1 ohm). Thus, approximately 67% of the resistors in the bucket are between 99
and 101 ohms; 95% of the resistors in the bucket are between 98 and 102 ohms,
etc. [again, this is not realistic since manufacturing processes will ensure more of a
uniform distribution rather than a Gaussian distribution]. Similarly, we will assume
the ohmmeter measurement noise is Gaussian distributed. Finally, we will assume the
errors in the ohmmeters are statistically independent of each other.
Recall the least squares estimator of the mean (Equations (13.2) or (13.7))
assumes that only the measurement data is available. All other information is effec-
tively thrown away. Intuitively, it just seems reasonable that we ought to be able to do
a better job in the estimation process if we can take the additional information into
account. We are given the nominal value of the resistor. We are given the tolerance so
we know the distribution of the actual values of the resistors in the bucket. We also
know the statistics of the ohmmeter measurement error as well. We should have a gut
feeling that there must be a better way to do estimation if all of that information can
be taken into account.
Thus, the weighting factor on the prediction is (1 − Kk ) and the weighting factor
on the measurement is Kk . We will see shortly that for scalar problems, such as our
resistor example, the Kalman gain ranges from 0 to 1.
If we reexamine the recursive least squares algorithm (Equation (13.7)), we see
the weighting factors are purely functions of the measurement index. For the Kalman
filter to perform better than least squares, the Kalman gain must embody the addi-
tional information that is known. There is nothing else in Equation (13.9) that can be
manipulated.
Since the derivation of the Kalman gain is not particularly helpful when first
learning how to use it, it is stated without proof:
Pk− HkT
Kk = (13.10)
Hk Pk− HkT + Rk
where Pk− is the prediction error covariance matrix;
HkT is the transpose of Hk ;
Rk is the measurement error covariance matrix.
We will explore these matrices in more detail later (and derivations of the Kalman
filter equations may be found in a variety of references such as [2,3]). For the resistor
example, though, they are simply scalars and the transpose operation can be ignored.
Thus, Pk− is simply the prediction error variance and Rk is the measurement error
variance. We will explain later how they are computed. For now, it is sufficient to
understand that these variances are just the usual statistical quantity (e.g., mean and
variance of a random variable). The prediction error variance is thus proportional to
the uncertainty of the prediction and the measurement error variance is proportional
to the uncertainty of the measurement.
Since Hk is equal to 1 for the resistor problem, Equation (13.10) can be reduced to:
Pk−
Kk = (13.11)
Pk− + Rk
In order to show that Equation (13.11) actually makes sense, let us consider some
limit cases. In the limit as the prediction gets better and better, the prediction error
variance approaches zero. The Kalman gain is thus:
Pk− 0
lim Kk = lim − = =0 (13.12)
Pk− →0 Pk− →0 Pk + Rk 0 + Rk
Recalling Equation (13.9), a Kalman gain of zero places 100% weight on the predic-
tion and zero weight on the measurement. This makes sense if it is known that the
180 Fundamentals of inertial navigation systems and aiding
prediction is perfect (which is implied by Pk− = 0). Now let us consider the opposite
extreme. What happens if the prediction is horrible?
Pk−
lim Kk = lim − =1 (13.13)
Pk− →∞ Pk− →∞ Pk + Rk
Note that L’Hopital’s rule was needed to evaluate (13.13). Again, Equation (13.9)
shows that a Kalman gain of 1 places zero weight on the prediction and 100% weight
on the measurement. Again, this makes sense if it is known that the prediction is
completely useless.
To assess the impact of the measurement error variance, consider a case where
the prediction error variance has some finite, but greater than zero, value (recall that
variances are always positive). If the measurement is excellent:
Pk− Pk−
lim Kk = lim = =1 (13.14)
Rk →0 Rk →0 P − + Rk Pk− + 0
k
Again, Equation (13.9) shows that this places 100% weight on the measurement as
should be done if it is known that the measurement is perfect. Conversely, if the
measurements are horrible:
P− P−
lim Kk = lim − k = − k =0 (13.15)
Rk →∞ Rk →∞ P + Rk Pk + ∞
k
Which, again, is the desired result since Equation (13.9) places 100% weight on
the prediction if the Kalman gain is zero. In actual operation, of course, both the
predictions and the measurements are going to lie someplace in between perfect and
useless. The Kalman gain strikes just the right balance weighting the prediction and
the measurement given a known amount of uncertainty in each.
Finally, the variance of the ohmmeter error is the square of the standard deviation of
the error.
Notice the measurement error variance (R) has no subscript since it is a constant
in this example. Conversely, the prediction error variance has a subscript since it will
change over time as new predictions are formed. As measurements are taken, new
estimates are formed using Equation (13.8) or (13.9). We will need an equation to
quantify the uncertainty of the estimate. The so-called estimation error covariance
matrix is given (again, without proof) by:
Pk+ = (I − Kk Hk )Pk− (13.16)
For our resistor example, all the terms in Equation (13.16) are scalars and the identity
matrix (I ) is obviously just equal to 1. Recalling that the data matrix is also equal to
1 for the resistor example, (13.16) reduces to:
Pk+ = (1 − Kk )Pk− (13.17)
Since the Kalman gain has a value between 0 and 1, we see the estimation error
variance will be less than the prediction error variance. This makes sense since the
estimate is optimally including the information provided by the measurement that has
been incorporated into the estimate. Let us manipulate (13.17) to be able to check
some limit cases. If we substitute (13.11) into (13.17) and do a little algebra we get:
P− P− R
Pk+ = 1 − − k Pk− = − k
Pk + R Pk + R
Now let us look at the limit cases. If the measurement error variance is much
larger than the prediction error variance:
Pk− R
R >> Pk− ⇒ Pk+ ≈ = Pk−
R
In this case, the estimation error variance is approximately equal to the prediction
error variance. This makes sense when the measurement error variance is large since,
as we showed earlier, the Kalman estimate will rely primarily on the prediction in this
situation. The other limit case also provides the expected result:
Pk− R
Pk− >> R ⇒ Pk+ ≈ =R
Pk−
If the prediction error variance is large, the Kalman estimate will rely primarily on
the measurement and the estimation error variance is equal to the measurement error
variance.
Once we have formed the estimate (and associated estimation error variance) for
the current measurement, we then need to form the prediction for the next moment
in time (or, more generally, for the next measurement however it occurs: temporally,
spatially or otherwise). For the resistor problem, the prediction is simple. We are
assuming that the true value of the resistor is constant and thus does not change over
time. Later we will explore the more general case where there are dynamics in the
parameters of interest. For now, though, we are just going to assume the simple static
182 Fundamentals of inertial navigation systems and aiding
case where the true value is constant. As a result, the best prediction we can form is
simply the estimate that we just computed:
−
x̂k+1 = x̂k+ (13.18)
Now we need to compute the uncertainty in this prediction (i.e., the predic-
tion error variance). Again, in this simple example, the prediction error variance
is just the estimation error variance since the prediction is equal to the previous
estimate:
−
Pk+1 = Pk+ (13.19)
Later we will see that in the general case where the parameters-of-interest have
dynamics, the prediction error covariance expression will be more complicated.
Step 0: Determine the initial prediction, initial prediction error variance, measurement
error variance, and initialize the index:
x̂1− = 100 ohms
P1− = (1 ohm)2 = 1 ohm2
R = (3 ohms)2 = 9 ohms2
k =1
Step 1: Compute the Kalman gain (Equation (13.11)):
Pk−
Kk =
Pk− + Rk
Step 2: Take a measurement (zk ) and compute the Kalman estimate (Equation
(13.9)):
x̂k+ = (1 − Kk )x̂k− + Kk zk
Step 3: Compute the estimation error variance (Equation (13.17)):
Pk+ = (1 − Kk )Pk−
Step 4: Predict ahead to the next moment in time (Equation (13.18)):
−
x̂k+1 = x̂k+
Step 5: Compute the prediction error variance (Equation (13.19)):
−
Pk+1 = Pk+
Step 6: Increment the index (k = k + 1) and go to Step 1
Estimation theory and introduction to the Kalman filter 183
3
Least squares
standard deviation of estimation error in ohms Kalman filter
2.5
1.5
0.5
0
0 5 10 15 20
number of ohmmeter readings
Figure 13.1 Theoretical performance comparison of least squares and the Kalman
filter for the bucketful of resistors problem
insight into how the Kalman filter exploits information about the system (resistor in
this case) and sensor (ohmmeter in this case) that the least-squares estimator ignores.
108
measurement
estimate
106 true value
104
resistance in ohms
102
100
98
96
94
0 5 10 15 20
number of readings
Figure 13.2 Results for a simulated single run of the recursive least squares
estimator
10
4
estimation error
–2
–4
–6
–8
–10
0 5 10 15 20
number of readings
Figure 13.3 Estimation error for 200 simulated runs of the recursive least squares
estimator
186 Fundamentals of inertial navigation systems and aiding
3
Monte Carlo results
standard deviation of estimation error in ohms theory
2.5
1.5
0.5
0
0 5 10 15 20
number of readings
Figure 13.4 Comparison of theory and simulation results for the recursive least
squares estimator
How well do the simulation results compare with the theory (Figure 13.1)? In
other words, are the simulation results consistent with the theory? To do this assess-
ment, we need to compute, at each reading, the standard deviation of the estimation
error in Figure 13.3. Visually, we can see that the standard deviation of the estimation
error at reading number 1 is larger than it is for, say, reading number 6. We can com-
pute the standard deviation of the estimation error (in Figure 13.3) for each reading.
At each reading we are thus computing a standard deviation across the ensemble of
runs. A comparison of this with the theory is given in Figure 13.4. Clearly the simu-
lation results match the theory quite well even with just 200 Monte Carlo runs. If we
increased the number of runs to, say, 10,000, the theory and simulation results would
be visually indistinguishable.
108
measurement
estimate
106 true value
104
resistance in ohms
102
100
98
96
94
0 5 10 15 20
number of readings
Figure 13.5 Single-run results for the Kalman filter. The simulated measurement
data is the same as that used in Figure 13.2
10
4
estimation error
–2
–4
–6
–8
–10
0 5 10 15 20
number of readings
Figure 13.6 Estimation error for 200 simulated runs of the Kalman filter
case where all statistical quantities (e.g., measurement error, distribution of the actual
values of the resistors in the bucket) were purely Gaussian and were known exactly. In
the real world, the statistical quantities are not known precisely. In some cases, data can
be collected and analyzed to estimate the actual distributions but these approximations
have varying degrees of validity depending upon the exact situation. It is critically
188 Fundamentals of inertial navigation systems and aiding
3
Monte Carlo results
Kalman estimate
2.5
standard deviation of error in ohms
1.5
0.5
0
0 5 10 15 20
number of readings
Figure 13.7 Comparison of theory and simulation results for the Kalman filter
important to realize this a priori information built into the Kalman filter has a dramatic
impact on performance.
To illustrate this point, we will rerun the previous simulation but we will simulate
a bucketful of 10% tolerance resistors instead of 1% tolerance resistors. Thus, 67% of
the resistors will have true values ranging from 90 to 110 ohms instead of 99 to 101.
However, we will lie to the filter by still setting the initial prediction error variance to
1 ohm2 just as we did before. “Lie” is a harsh word. Maybe the bucket was mislabeled
as containing 1% resistors. Incorrect information given to the filter is referred to as
mismodeling. As we will explore further in later chapters, the “extra” information that
we give to the filter (versus only measurements) is based on implicit models of the
system (that we are estimating) and the sensor (from which we obtain measurements).
In this first example, we are mismodeling the system (i.e., the resistors) by telling the
filter that the distribution of the resistors in the bucket is narrower than it actually is.
The results of a set of 200 Monte Carlo runs are shown in Figures 13.8 and 13.9.
The poor performance of the filter as depicted in Figure 13.8 makes sense given
the fact that we told the filter that the initial prediction was very good when in actuality
it was not. As a result, the filter placed too much weight on its prediction and not
enough weight on the measurements. The results shown in Figure 13.9 are more
than just a comparison of theory and simulation. The simulation results show how
well the filter is actually performing when it is operating with bad assumptions. The
“theory,” conversely, shows how well the filter thinks it is performing. Computation
of estimation error variance is one of the steps in the filter algorithm but its validity
is completely dependent upon the assumptions designed into the filter. If we lie to the
filter, the filter’s own computation of estimation error variance will be garbage.
Estimation theory and introduction to the Kalman filter 189
30
20
10
estimation error
–10
–20
–30
0 5 10 15 20
number of readings
Figure 13.8 Estimation error for 200 simulated runs of the Kalman filter with the
initial prediction error variance set too low
9
Monte Carlo results
8 Kalman estimate
7
standard deviation of error in ohms
0
0 5 10 15 20
number of readings
Figure 13.9 Comparison of theory and simulation results for the Kalman filter
with the initial prediction error variance set too low
190 Fundamentals of inertial navigation systems and aiding
Figures 13.10 and 13.11 show the results for another example of mismodeling.
In this case, the measurement error variance is actually 36 ohms2 but is still being
modeled in the filter as being 9 ohms2 . Thus, the actual measurement error stan-
dard deviation (6 ohms) is double what is being modeled (3 ohms). As a result, the
filter places too much weight on the measurements and not enough weight on the
108
106
104
102
resistance in ohms
100
98
96
94
92
measurement
90 estimate
true value
88
0 5 10 15 20
number of readings
Figure 13.10 Estimation error for 200 simulated runs of the Kalman filter with the
measurement error variance set too low
3
Monte Carlo results
Kalman estimate
2.5
standard deviation of error in ohms
1.5
0.5
0
0 5 10 15 20
number of readings
Figure 13.11 Comparison of theory and simulation results for the Kalman filter
with the measurement error variance set too low
Estimation theory and introduction to the Kalman filter 191
predictions. The convergence time is longer and the filter’s own estimation error
variance values are too small.
We have shown that the Kalman filter can take advantage of the additional infor-
mation that least squares ignores. However, we must always keep the assumptions in
mind. Those assumptions are not always valid. In actual practice, we would like to be
able to evaluate the filter performance by processing real data with known errors. That
requires having some kind of truth reference. Sometimes such “truth” data are avail-
able but not always. Nevertheless, the designer must keep in mind that assumptions
are inherent in a Kalman filter and their degree of validity will impact performance.
References
[1] Du Plessis RM. Poor Man’s Explanation of Kalman Filtering or How I Learned
to Stop Worrying and Learned to Love Matrix Inversion. Anaheim, CA: North
American Rockwell Electronics Group; 1967.
[2] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
[3] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
This page intentionally left blank
Chapter 14
The multivariate Kalman filter
Previously we explored the Kalman filter within the framework of a simple problem.
In the bucketful of resistors problem, we were estimating a single static parameter.
We pulled one resistor out of the bucket and attempted to estimate its resistance
given some successive measurements. Obviously we need to go beyond that for most
practical applications. We need to be able to handle cases where the parameter of
interest is actually changing over time and we want to be able to form an estimate of
its value over time as it is changing. Furthermore, we want to be able to handle cases
where we are estimating multiple parameters simultaneously and those parameters
are related to each other. It is not a simple matter of five parameters and thus the need
for five single-parameter Kalman filters running at the same time. If we are trying to
estimate multiple parameters that have some kind of relationship to each other, then
we want to be able to exploit those relationships in the course of our estimation and
thus we need to expand our Kalman filter accordingly.
We are thus transitioning from univariate parameter estimation to multivariate
parameter estimation and from static systems to dynamic systems. Along the way we
will explore state variables, state vectors, and state transition matrices. We will learn
about the fundamental equations upon which the Kalman filter is based: the so-called
“system equation” and the “measurement equation.” We will need to learn about
covariance matrices and then eventually we will develop the full Kalman recursion.
We will then take our bucketful of resistors example and modify it slightly in order
to ease into these new topics.
Up to this point, we have only considered the estimation of a single parameter
(the univariate case) with a value that did not change over time (a static system). We
need to generalize the Kalman filter to be able to handle dynamic multivariate cases.
The single parameters are going to become vectors of parameters and the variances
are going to become covariance matrices. We will model system dynamics within the
filter (the state transition matrix) and will model complex relationships between the
states and the measured quantities (the H matrix will no longer be equal to 1).
matrix describes the dynamics of the systems by quantifying how the state vector
“propagates” (i.e., changes) over time.
Let us consider a simple radar example so that we can get our hands and our
minds wrapped around these concepts. Consider a radar that forms both range and
range-rate measurements to a particular aircraft. We are going to make the example
very simple by assuming the aircraft is flying with nominally constant velocity and
is flying either directly toward or away from the radar. As a result, the state vector at
discrete-time index k is:
dk d
= (14.1)
rk r k
where dk is the distance (range) and rk is the range-rate (velocity). Since the time index
is the same for both state variables, it can be moved outside of the square brackets.
Assuming the aircraft velocity is something other than zero, the distance will clearly
change over time. We know from our basic physics that, in continuous-time, distance
is the integral of velocity and velocity is the integral of acceleration:
t
d(t) = d(0) + r(λ)dλ (14.2)
0
t
r(t) = r(0) + a(λ)dλ
0
where “a” is the acceleration. The Kalman filter is a linear estimator and we must
represent the system dynamics with a linear approximation. As mentioned earlier, we
are assuming a nominally constant-velocity flight path and thus Equations (14.2) can
be approximated by:
Now in the back of your head you may be thinking, “What on earth does this have
to do with practical situations in navigation where the vehicles (e.g., aircraft) clearly
have nontrivial acceleration?” Your instincts are correct and we will see later that
the Kalman filter’s linear assumption poses some interesting challenges. However,
we will also see that there are some clever techniques to address these challenges as
well. For now just hang on while we explore the simple examples. In discrete-time,
Equation (14.3) can be rewritten in matrix form as:
d 1T d
= (14.4)
r k+1 0 1 r k
where “T ” is the sampling period or sampling interval (i.e., the time-difference
between time index k and k + 1). The 2 × 2 matrix is known as the state transi-
tion matrix. It is the matrix that describes how the state vector transitions (“changes”
or “propagates”) from one time instant to the next.
We can modify Equation (14.4) to be slightly more realistic by taking some
turbulence into account. Some random perturbations from the constant velocity flight
The multivariate Kalman filter 195
path can be modeled by adding what we call system noise (also known as process
noise or plant noise):
d 1T d w
= + 1 (14.5)
r k+1 0 1 r k w2 k
In the context of this particular example, we are assuming that the aircraft has
some flight control system that is trying to maintain it on a constant velocity flight
path. There are some perturbations due to wind gusts and disturbances, but the control
system is actively returning the aircraft back to its nominal constant velocity flight
path and the aircraft is not deviating significantly from it.
Equation (14.5) is an example of the so-called Kalman filter “system equation.” The
general form is given by:
xk+1 = k xk + wk (14.6)
where xk is the state vector, wk is the system noise vector, and k is the state transition
matrix (all at time k). It is very important to understand that the system equation is
the Kalman filter’s model of how the system behaves. It is a theoretical construct that,
in practice is, at best, an approximation of how the real system behaves.
The companion to the system equation is the measurement equation. Like the
system equation, the measurement equation is a linear model. The measurement
equation is the Kalman filter’s model of the relationship between the measurements
and the states. It is not an equation for how the measurements are actually formed.
Since the measurements in the radar example are in the same dimensions as the
state variables (we are measuring range and range rate and we are trying to estimate
range and range rate), the measurement equation is pretty trivial in this case:
dmeas 10 d ν
= + 1 (14.7)
rmeas k 01 r k ν2 k
where dmeas and rmeas are the measured range and the range-rate, d and r are the true
range and range-rate, and ν1 and ν2 are the range and the range-rate measurement
noise.
For a slightly less trivial case, if the radar only provided range measurements but
we still wanted to estimate both range and range-rate, the system equation would be
identical (Equation (14.5)) but the measurement equation would be:
d
dmeas k = 1 0 + ν1 k (14.8)
r k
Both Equations (14.7) and (14.8) are special cases of the general measurement
equation:
z k = Hk x k + ν k (14.9)
196 Fundamentals of inertial navigation systems and aiding
The Kalman system and measurement equations are the models of the key relation-
ships needed to design the filter. However, we do not assume that we can know either
the system or measurement noise exactly in real time. We do assume that we can
know, or at least approximate, the statistics of these noise values. The Kalman filter
assumes that all noise values are Gaussian distributed and a Gaussian random variable
is completely characterized by its mean and variance. Assuming the mean is zero, only
the variance is needed. Since, in general, we will have multiple states and/or multiple
measurements (at a given moment in time), we cannot use variance alone to describe
the statistics since variance applies to a single parameter. We need something called a
covariance matrix that contains both the variances of the individual parameters along
with the covariance between the parameters.
To ease into the covariance matrix, let us start with the definition of the variance:
VAR(X ) = σx2 = E([X − E(X )]2 ) (14.10)
where “X ” is a random variable and “E” is the expectation operator. The term inside the
square brackets is the difference between the random variable and its mean value. This
difference is squared (so that the positive and negative values are treated equally) and
the outer expectation operation determines the mean value of the squared differences.
If a given random process has a large variance, then the average value of the squared
differences will be large.
For reasons that will become obvious shortly, let us expand (14.10) as follows:
VAR(X ) = σx2 = E([X − E(X )][X − E(X )]) (14.11)
The multivariate Kalman filter 197
Referring to (14.11), the equation for the covariance between two different random
variables is straightforward:
COV (X , Y ) = σxy2 = E([X − E(X )][Y − E(Y )]) (14.12)
Equation (14.12) shows us that variance is a special case of covariance (specifically,
the covariance of a random variable with itself).
At this point, you may be thinking, “I understand what variance means. Variance
is an indication of the spread of the data around its average value. But what is a
covariance?” The covariance gives us an indication of the relationship between two
random variables. Do they both tend to follow the same trends? Are they both usually
positive at the same time or usually negative at the same time, or are they opposite?
Are they both large at the same time? Et cetera.
Figure 14.1 illustrates some examples. In the upper left plot, the covariance is a
“larger” positive value. If X increases in value, Y is highly likely to increase in value
(and vice versa). In the upper right plot, the covariance is still positive but is smaller.
The trend is the same as in the upper left plot but Y has more variation. Given, say,
an increase in the value of X , there is not as high a likelihood that Y will increase
(in some cases Y will actually decrease in value). The lower left plot is similar to the
upper left except the trend is reversed. An increase in X corresponds to a decrease
1 1
0 0
Y
–1 –1
–2 –2
–2 0 2 –2 0 2
X X
COV << 0 COV ~ 0
2 2
1 1
0 0
Y
–1 –1
–2 –2
–2 0 2 –2 0 2
X X
in Y . The covariance is thus negative. Finally, in the lower right plot, there is no
discernible trend (also known as correlation) and thus the covariance is close to zero.
A change in X does not imply any particular change in Y .
We can now generalize these results. If we have a vector of random variables:
T
X = X1 X 2 · · · X N (14.13)
Then the general covariance is given by:
⎡ ⎤
E([X1 − E(X1 )]2 ) E([X1 − E(X1 )][X2 − E(X2 )]) ···
⎢ E([X2 − E(X2 )][X1 − E(X1 )]) ··· ··· ⎥
C=⎢
⎣
⎥
⎦
··· ··· ···
E([XN − E(XN )][X1 − E(X1 )]) ··· E([XN − E(XN )] )
2
(14.14)
You can see that the main diagonal is just the variances of the elements and the off
diagonal elements consist of the covariances between the variables within the vector.
For example the (1,2) element is the covariance of X1 with X2 . The covariance of
the (2,1) element is the covariance of X2 with X1 . Now if you say, “Wait a minute,
there isn’t any difference between the two,” you are absolutely right. The matrix
is symmetric so the covariance at (2,1) is equal to the covariance at (1,2) and that
symmetry exists throughout the entire matrix. In fact, you can characterize the entire
matrix with just the upper right triangular portion or the lower left triangular portion.
If the random variables in (14.13) are unbiased (i.e., have means of zero), then
Equation (14.15) can be written even more succinctly:
⎧⎡ ⎤ ⎫
⎪
⎪ X1 ⎪
⎪
⎨⎢ ⎥ ⎬
⎢ X 2⎥
C = E X X = E ⎣ ⎦ X1 X2 · · · XN
T
(14.16)
⎪
⎪ ··· ⎪
⎪
⎩ ⎭
XN
Note that Equation (14.14) reduces to (14.16) when the random variables in X have
means of zero. The term [X X T ] is referred to as an ‘outer product.’∗
†
Note the absence of a superscript is an implied plus sign.
200 Fundamentals of inertial navigation systems and aiding
Step 2: Take the current measurement and form the current estimate:
x̂+ − −
k = x̂ k + Kk (z k − Hk x̂ k ) (14.24)
This is the main “output” of the filter and is frequently referred to as the Kalman
“update” equation. The idea is that we have updated our prediction of the state vector
using the information from the current measurement vector.
Step 3: Form the estimation error covariance matrix:
Note that Equation (14.25) assumes that the optimum Kalman gain has been used in
the estimate. There are situations (e.g., sensitivity analyses) where non-optimal gains
may be used but the reader is referred to [1] for details.
Step 4: Project ahead to the next step: compute the state transition matrix and form
the state prediction for the next moment in time:
x̂− +
k+1 = k x̂ k (14.26)
We see that the prediction error covariance matrix is a function of the estimation error
covariance, the state transition matrix, and the system noise covariance matrix. The
first term in (14.27) takes the estimation error covariance matrix and projects it for-
ward in accordance with the system dynamics described by the state transition matrix.
In accordance with the Kalman filter system equation, the system noise covariance
matrix is added in (14.27) to account for the system uncertainty not contained in the
state transition matrix. Alternate forms of this equation may be found in the literature
and, again, are used in situations such as sensitivity analyses.
Step 6: Go back to Step 1 for the next moment in time.
That is it. We have the complete Kalman filter. We started with the univariate case and
expanded it to the multivariate case. We started with a static system and we expanded
to a dynamic system. We were introduced to covariance matrices and how they are
used in the Kalman filter. And we have described the complete filter. Now let us take
a look at a couple of examples.
The multivariate Kalman filter 201
100
measurement
98 estimate
true value
96
94
resistance in ohms
92
90
88
86
84
82
80
0 5 10 15 20
number of readings
1.2
1
standard deviation of error in ohms
0.8
0.6
0.4
0.2
simulation
theory
0
0 5 10 15 20
number of readings
Figure 14.3 A plot of the square-root of the Kalman filter’s estimation error
covariance (theory) and the corresponding standard deviation of the
estimation error obtained from 1,000 Monte Carlo runs of the
simulation of the time-varying resistor example
The multivariate Kalman filter 203
noise) but is able to do much better than the individual noisy measurements alone.
Figure 14.3 depicts both how well the Kalman filter thinks it is doing along with how
well it is actually doing. The curve marked “theory” is the square root of the filter’s
estimation error covariance (actually, just variance in this case). The curve marked
“simulation” was obtained by computing the standard deviation of the estimation
error obtained from 1,000 Monte Carlo runs of the simulation. We see excellent
agreement between theory and simulation which is to be expected since the Kalman
filter system and measurement equations perfectly matched the actual behavior. How-
ever, it is important to note that the inherent system noise (as modeled by Q in the
filter) imposes a “floor” on the filter’s performance. The estimation error variance
(or standard deviation) reaches a non-zero minimum value in steady-state. For this
particular example, that floor is approximately 0.6 ohm. This is consistent with theory.
As described in [3], for random walk processes in which Q R, the estimation error
covariance converges approximately to P = (QR).
It is important to note that most practical systems have non-zero system noise and
thus must be modeled with the Q matrix in the filter. As a result, the steady-state error
of the filter will always be non-zero. Furthermore, regardless of the actual system
noise, it turns out that it is useful always to have some Q in the filter (even for systems
with negligible uncertainty). At first, this seems counterintuitive. Why would I tell
the filter that the system has some uncertainty when in reality it does not? There
are two reasons. One is that it helps to maintain good numerical performance in the
filter. This is less of a concern nowadays with modern double precision arithmetic but
historically it was quite important. The second reason is that non-zero Q values ensure
that the filter always “pays attention” to the measurements. If Q is set to zero, the
prediction error covariance will converge to zero and that causes the Kalman gain to
converge to zero. As we have studied previously, if the Kalman gain is zero, the filter
completely ignores the measurements and simply sets the estimate equal to its own
prediction. If there is no system noise and the assumptions in the filter (i.e., the system
and measurement equations) are perfect, then this is the correct behavior. However,
in practical applications, we are never able to model the system and measurements
perfectly. There is always some inherent uncertainty and thus Q should always be set
to a non-zero value. In subsequent chapters, we will learn more about the effect that
Q has on filter performance.
approximation of the velocity. For this example, however, in order to demonstrate the
convergence of the filter, we will simply set the initial velocity prediction to zero:
1, 000
x−
1 = (14.35)
0
We complete the filter design by determining the initial prediction error covariance
matrix. From our assumptions we see that the variance of the initial range prediction
is 2,000 m2 . The uncertainty of the initial velocity prediction, however, is unknown.
This is not an uncommon situation in real life. Approximations/assumptions frequently
need to be made and the designer is frequently faced with the task of “tuning” the filter
(a nice word for iterating the design). If the initial prediction error covariance matrix
values are too small, the filter will not give enough weight to the measurements and
filter convergence can end up being prolonged. If the values are too high, the filter
may behave erratically during convergence. This particular example is sufficiently
simple that the filter performance does not change drastically with the choice of
2
initial velocity prediction error variance. We will set it at 20 ms . Although the initial
prediction range uncertainty and velocity uncertainty are likely correlated, we will
set the off-diagonal elements to zero. For this example, the impact on performance is
minimal and, in actual practice, it is common for designers to make the initial matrix
diagonal. For the current example then:
2, 000 0
P1− = (14.36)
0 20
A 200 sec trajectory is simulated with an average true velocity of 100 m/s. A plot
of the true and estimated range (Figure 14.4) does not reveal the error due to the
scale. The error in both the raw radar measurements and the filter’s range estimates
are depicted in Figure 14.5. Since the true range is inherently noisy in this example
(recall Q(1,1)), the filter improves on the raw measurements but not by very much.
The true velocity and estimated velocity are depicted in Figure 14.6. Again, with
the true velocity being so noisy, there is only so much the filter can do. However, its
performance is better shown by contrasting the error in the estimated velocity with
the “raw” velocity obtained by simply differencing the radar range measurements
(Figure 14.7).
To begin to see the effects of “tuning” the filter, let us arbitrarily set the values
of Q to be extremely small. Given the a priori known behavior of the target aircraft,
Q was correctly specified back in Equation (14.31). What will happen if we set the
non-zero elements of Q to small values? Such as:
0.01 0
Qk = (14.37)
0 0.01
First, we should immediately recognize that we are knowingly mis-modeling the
system. We are telling the filter that both the true distance and the velocity are much
less noisy than they actually are. As a result, the filter will place much less gain on the
measurements and thus much more on its predictions. The predictions assume (recall
the system equation for this example) a constant velocity. The results are shown in
Figures 14.8, 14.9, and 14.10. The errors in the estimated range (Figure 14.8) seem
206 Fundamentals of inertial navigation systems and aiding
×104
2.5
2
distance [meters]
1.5
0.5
True
Estimated
0
0 50 100 150 200
time [sec]
Figure 14.4 True and estimated range for the simple radar example
30
20
10
–10
error [meters]
–20
–30
–40
–50
–60 KF estimates
Radar measurements
–70
0 50 100 150 200
time [sec]
Figure 14.5 Range errors from the radar measurements and the filter estimates
The multivariate Kalman filter 207
120
100
80
velocity [meters/sec]
60
40
20
Estimated
True
0
0 50 100 150 200
time [sec]
40
30
20
velocity error [meters/sec]
10
–10
–20
–30
KF Estimated
Differencing from measurements
–40
0 50 100 150 200
time [sec]
Figure 14.7 Errors in velocity obtained from the filter and from simple
differencing of the radar measurements
208 Fundamentals of inertial navigation systems and aiding
40
20
0
error [meters]
–20
–40
–60
KF Estimates
Radar measurements
–80
0 50 100 150 200
time [sec]
Figure 14.8 Range errors from the radar measurements and the filter estimates
when specifying very small system noise covariance values
120
100
80
velocity [meters/sec]
60
40
20
Estimated
True
0
0 50 100 150 200
time [sec]
40
30
20
velocity error [meters/sec]
10
–10
–20
–30
KF Estimated
Differencing from measurements
–40
0 50 100 150 200
time [sec]
Figure 14.10 Errors in velocity obtained from the filter and from simple
differencing of the radar measurements (very small Q values)
to be somewhat smaller than in the previous case (Figure 14.5) indicating that the
previously specified position error covariance may have been too high. However,
Figure 14.8 also clearly demonstrates the longer convergence time incurred due to
the low Q value.
The true and estimated velocity values depicted in Figure 14.9 clearly show
that the filter is only estimating the underlying deterministic component of the true
velocity. Nevertheless, the error in the estimated velocity is somewhat smaller than
in the previous filter. The example is, of course, simple and contrived but it begins to
show us how filters are tuned in real life. In real life, the system equation is always,
at best, an approximation. Thus, in real life, we are always mis-modeling to a certain
extent. Adjustment of the values in Q is frequently done as part of filter performance
improvement process.
References
[1] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
[2] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
[3] Pue A. Integration of GPS with Inertial Navigation Systems [Short Course
Notes]. NavtechGPS; 2007.
This page intentionally left blank
Chapter 15
Radionavigation Kalman filtering: case studies in
two dimensions
So far we have spent a good deal of time estimating scalars and even the radar example
involved a vehicle traveling in essentially a straight line. It is time to move into two
dimensions and see where that takes us.
We will investigate horizontal positioning and, as an example, will consider
the distance measuring equipment (DME) system. DME comprises ground stations
(known as transponders) that respond to RF interrogations transmitted from a unit in
an aircraft (known as an interrogator). The two-way transmissions enable the airborne
unit to determine the distance (range) to the ground station. The measured ranges are
an approximation to the horizontal distance from the ground station to the aircraft.
Range measurements made to at least two ground stations may be used (along with
the known ground station locations) to compute the horizontal position of the aircraft.
Since there is no need for receiver clock bias estimation, the use of DME for horizontal
positioning provides us with a simpler solution that is possible with GPS and allows
us to ease into the topic. Throughout this chapter (and the next), we will consider
positioning via radionavigation only.
We will consider two scenarios. First, we will examine the case where a nominal
vehicle trajectory is known a priori. The Kalman filter will then estimate the offset
between the nominal and the actual vehicle position (or state, in general). This is
known as an ordinary linearized Kalman filter. Later we will examine the case where
there is no a priori knowledge of the vehicle trajectory and linearization will be done
with respect to the state predicted, in real-time, by the filter. This is known as an
extended Kalman filter.
Consider horizontal positioning with ranging measurements made from two DME
ground transponders with known locations (Figure 15.1). The true range between the
vehicle and the ith DME transponder is given by:
ρi = (xu − xi )2 + (yu − yi )2 (15.1)
where “u” indicates the “user” or vehicle. ρ is the ideal measured range and the
ith DME transponder coordinates (xi , yi ) are known. In order to solve for the two
components of user position (given range measurements to at least two transponders),
we need a linearized approximation of Equation (15.1). We will use the linearized
approximation first to form an ordinary least squares position solution and then will
derive a Kalman filter estimator for position.
To derive the linear approximation, we expand (15.1) in a Taylor Series about a
nominal user position. For the current example, the nominal position will be obtained
from an a priori known nominal trajectory (with a corresponding nominal position at
(xu, yu)
R1
R2
(x1, y1)
(x2, y2)
any given epoch or moment in time). Retaining only the zeroth and first-order terms
in the Taylor Series results in the following approximation:
xo − xi y o − yi
ρi ≈ ρio + (xu − xo ) + (yu − yo ) (15.2)
ρio ρio
where the nominal user position is given by (xo , yo ) and the zeroth order term is the
distance from the transponder to the nominal user position:
ρio = (xo − xi )2 + (yo − yi )2 (15.3)
Define the difference between the nominal and true user positions as:
x x − xo
= u (15.4)
y yu − y o
These “deltas” are the offsets of the true position from the nominal position and they
are the unknowns that we will be solving for initially.
Substituting (15.4) into (15.2) yields:
xo − xi y o − yi
ρi ≈ ρio + x + y (15.5)
ρio ρio
A linear equation in the unknowns (x and y position offsets) is created by moving
the zeroth order term (which is a constant) to the left side of the equation:
xo − xi y o − yi
ρi = x + y (15.6)
ρio ρio
where ρi = ρi − ρio . Since there are two unknowns in (15.6), we need at least two
measurements (i.e., range measurements to two different DME transponders). Two
instances of (15.6) for two different transponders yields:
xo −x1 yo −y1
ρ1 ( 1o ) ( ρ1o ) x
= xoρ−x (15.7)
ρ2 ( ρ2o 2 ) ( yoρ−y
2o
2
) y
which can be written more succinctly as:
ρ = H x (15.8)
where
x
x = (15.9)
y
In reality, there are measurement errors that need to be included in (15.8) to form the
complete measurement equation:
ρ = H x + ν (15.10)
where ν is the vector of measurement errors. It is important to keep in mind that
(15.10) is a theoretical model and it does not explain how the real measurements are
actually formed. For example, distance measurements in DME are made by timing
transmission and reply pulses and this process, of course, is not reflected in any way in
the theoretical measurement equation. Although we will not go through the derivation
214 Fundamentals of inertial navigation systems and aiding
here, the “solution” to (15.10) involves finding an estimate of x that best fits the
noisy measurements in a least-squares sense. The result is the ordinary least squares
“solution” (or more accurately, “estimate”):
ˆ = (H T H )−1 H T ρ
x (15.11)
where the hat symbol signifies an estimate. We will shortly develop a Kalman filter
to achieve enhanced performance over least-squares. Be careful, though, not to forget
that solving for the position offsets is not the final step. Recalling Equation (15.4),
we need to add the estimated offsets to the nominal position to get the total estimated
position:
xu x xˆ
= o + ˆ (15.12)
yu yo y
Note that (15.7) can easily be expanded by simply adding rows to incorporate
additional measurements. As a sidenote, we also point out that if the nominal position
is sufficiently distant from the truth so as to make the linearization (15.2) a poor
approximation, the entire process can be iterated using the result of (15.12) as the
new nominal position. The process can be iterated until the magnitude of the solution
(Equation (15.11)) is sufficiently small. For our current purposes, however, the nom-
inal positions will be close enough to the truth that iteration will not be needed. (For
the sake of completeness it should be noted that it is possible to specify the nominal
position far enough from the truth that the aforementioned iterative process will fail.
However, if the error in the nominal position is significantly less than the distance of
the true position from the transponders, this will not happen.)
The linearized Kalman filter measurement equation is obtained by simply
incorporating measurement noise into Equation (15.8):
z = ρ = H x + ν (15.13)
However, it is important to remember that the Kalman measurement equation is a
theoretical model describing the relationship between the measurement vector and
the state vector. The purpose of deriving the measurement equation is to be able to
determine the data matrix (H) and the measurement noise covariance matrix (R). The
measurement equation is not a formula for computing the measurement vector! This
is a point that many people miss when first learning about Kalman filters. For the
current example, the measurement vector is computed using the left side of (15.6).
The ith element of the measurement vector is thus given by:
zi = ρi − ρio = ρi (15.14)
recalling that ρi is the measured range from the user to the ith DME ground
transponder.
For the current example, we are assuming that we have an a priori known nominal
trajectory. Specifically, we will follow an example originated by [1] in which the
vehicle is assumed to travel in the positive direction “up” the y-axis as indicated in
Figure 15.2.
Radionavigation Kalman filtering 215
Figure 15.2 The nominal flight path lies along the y-axis. The two DME ground
transponders are located on the x-axis. Although not shown in the
figure, for the simulations shown herein, the DMEs are located at
−10 km and +10 km, respectively, on the x-axis and the starting and
ending points of the flight path are located at −10 km and +10 km,
respectively, on the y-axis
where nx and ny are also zero-mean Gaussian random variables each having a variance
of 2,000 m2 . The a priori known nominal trajectory is obtained from (15.15) by
ignoring the position disturbances:
xo x 0
= o + t (15.17)
yo k+1 yo k 100
With the a priori known nominal initial position similarly obtained from (15.16):
xo 0
= (15.18)
yo 1 −10, 000
Comparison of (15.15) and (15.17) shows that the difference between the true and
nominal position components is a random walk process:
k
xu x wx
= o + (15.19)
yu k yo k wy i
i=1
216 Fundamentals of inertial navigation systems and aiding
Recall the Kalman filter system equation requires that we determine the state
vector, the state transition matrix and the system noise vector. The state vector consists
of the position offsets (Equation (15.4)) and the system equation is then given by:
10
xk+1 = xk + wk (15.20)
01
Although the 2 × 2 identity matrix may be considered superfluous at this point, we
will need it shortly.
At this point we have all the necessary information to construct the filter. The
initial state prediction consists of zeros since the offsets between the truth and nominal
are unknown zero-mean Gaussian processes:
0
x− 1 = (15.21)
0
The initial prediction error covariance matrix is obtained from (15.16) where it
was specified that the actual initial offset components had variances of 2,000 m2 :
− 2, 000 0
P1 = (15.22)
0 2, 000
Note the zeros on the off-diagonal elements indicate that the Gaussian random
variables nx and ny in (15.16) are independent/uncorrelated.
From Equation (15.20), the state transition matrix is simply:
10
= (15.23)
01
The system noise covariance matrix is obtained from (15.15) where it was speci-
fied that the “noise” (or variations) of each of the position components had a variance
of 400 m2 :
400 0
Q= (15.24)
0 400
Finally, the DME range measurements are simulated as having independent
white Gaussian noise errors with a variance of 225 m2 . Thus, the measurement error
covariance is given by:
225 0
R= (15.25)
0 225
In order to appreciate the performance of the Kalman filter, we will first show
the performance of the ordinary least squares (OLS) estimator. The true simulated
flight path is shown in Figure 15.3.
The errors of the OLS position estimates are shown in Figures 15.4 and 15.5.
Given the fact that the DME (ranging) measurement errors have a standard deviation
of 15 m, the x position error is quite reasonable. In the middle of the run, however,
the y error becomes extremely large. What is happening here?
Welcome to the influence of geometry. The large errors in the y component are
due to the poor geometry that exists when the user crosses the x-axis. At this point the
Radionavigation Kalman filtering 217
0.8
0.6
0.4
y position in meters
0.2
–0.2
–0.4
–0.6
–0.8
–1
–1 –0.5 0 0.5 1
x position in meters ×104
user and both DMEs are all in a line on the x-axis (see Figure 15.2). As a result, the y
geometry (y dilution of precision, YDOP) becomes infinite (conversely, the XDOP is
less than 1 since we have redundancy in the x direction). Given the H matrix defined
in Equations (15.7) and (15.8), the DOPs can be computed as follows:
XDOP = G(1, 1) YDOP = G(2, 2) (15.26)
where G = (H T H )−1
Figures 15.6 and 15.7 illustrate the DOPs for the nominal flight path that starts
at (0,−10,000) and ends at (0,+10,000) meters with the DME transponders located at
(−10,000,0) and (+10,000,0).
At both the beginning and the end of the run, the crossing angle between the lines-
of-sight from the user to the DME transponders is 90 degrees and thus the XDOP
and YDOP are both equal to 1. In the middle, XDOP has decreased to its minimum
value of √12 and YDOP approaches infinity. At the very middle, we note the two DOP
plots have a gap. This is due to the fact that when the nominal position and two DME
transponders are all in a row, the G matrix is singular and its inverse does not exist.
Regarding the minimum XDOP, recall that the standard deviation of the estimation
error of the sample mean is inversely proportional to the square-root of the number
Ordinary Least Squares Performance
40
30
20
x estimation error in meters
10
–10
–20
–30
–40
0 50 100 150 200
run time in seconds
Figure 15.4 X-coordinate estimation errors with ordinary least squares for the
trajectory shown in Figure 15.3 with the DME transponder
arrangement illustrated in Figure 15.2 and ranging measurement
noise with a standard deviation of 15 m
500
y estimation error in meters
–500
–1,000
–1,500
–2,000
0 50 100 150 200
run time in seconds
Figure 15.5 Y-coordinate estimation errors with ordinary least squares for the
trajectory shown in Figure 15.3 with the DME transponder
arrangement illustrated in Figure 15.2 and ranging measurement
noise with a standard deviation of 15 m
Radionavigation Kalman filtering 219
0.95
0.9
x dilution of precision
0.85
0.8
0.75
0.7
0 50 100 150 200
run time in seconds
Figure 15.6 X dilution of precision for the flight path illustrated in Figure 15.2
80
70
60
y dilution of precision
50
40
30
20
10
0
0 50 100 150 200
run time in seconds
Figure 15.7 Y dilution of precision for the flight path illustrated in Figure 15.2
220 Fundamentals of inertial navigation systems and aiding
of measurements. In the middle of the run, the two DME range measurements
essentially constitute redundant measurements of the x-coordinate of the user.
With independent white Gaussian measurement errors, the standard deviations
of the position errors are related to the standard deviation of the ranging measurement
errors as follows:
Since the measurement error standard deviation was 15 m and the XDOP ranged
from about 0.7 to 1, the x position errors shown in Figure 15.4 are consistent. Similarly,
given the YDOP shown in Figure 15.7, the y position errors (Figure 15.5) are also
consistent.
Given the horrible y geometry, however, one wonders how much better the
Kalman filter will do? Remarkably well as a matter of fact. The x and y estimation
errors are illustrated in Figures 15.8 and 15.9. The upper dashed line in Figure 15.8
is the square-root of the (1,1) element of the estimation error covariance matrix (P + )
and the lower dashed line is its negative. Similarly, the dashed lines in Figure 15.9
30
20
x estimation error in meters
10
–10
–20
–30
–40
0 50 100 150 200
run time in seconds
Figure 15.8 X coordinate Kalman filter estimation errors for the trajectory shown
in Figure 15.3 with the DME transponder arrangement illustrated in
Figure 15.2. The upper dashed line is the square-root of the (1,1)
element of the estimation error covariance matrix and the lower
dashed line is its negative. The dashed lines thus illustrate the Kalman
filter’s estimate of the standard deviation of its own estimation error
Radionavigation Kalman filtering 221
100
50
y estimation error in meters
–50
–100
–150
–200
0 50 100 150 200
run time in seconds
Figure 15.9 Y coordinate Kalman filter estimation errors for the trajectory shown
in Figure 15.3 with the DME transponder arrangement illustrated in
Figure 15.2. The dashed lines are the filter’s estimated error standard
deviation
are derived from the (2,2) element of P + . The dashed lines thus illustrate the Kalman
filter’s estimate of the standard deviation of its own estimation error.
Comparison of the OLS performance (Figures 15.4 and 15.5) with the Kalman
filter (Figures 15.8 and 15.9) reveals very similar results for x but an order of mag-
nitude difference for y. The Kalman filter is affected by the poor geometry but not
nearly as much as the OLS estimator. At this point, we must pose the obvious question:
“Why?” What is the magic the Kalman filter brings to the situation?
The answer is that the Kalman filter is exploiting its ability to make and utilize
predictions. We recall that estimation boils down to weighted sums of predictions and
measurements. Least squares only processes the measurements, and if the geometry
between the measurements and the solution is bad then least squares is stuck with it.
On the other hand, the Kalman is not stuck with just the measurements. The Kalman
has its own prediction capability, and because of that it is able to do much better than
least squares.
We recall that the filter is weighting the measurements and the predictions accord-
ing to the statistical error measures on each, and somehow it is able to know that it
should de-weight the measurements when the geometry is bad. At the point where
222 Fundamentals of inertial navigation systems and aiding
the vehicle crosses the x-axis and the YDOP approaches infinity, the Kalman filter
somehow is aware and places weight on the prediction and not on the measurement.
How does this happen? Recall the Kalman update equation:
x̂+ = x̂− + K(z − H x̂− ) = (I − KH )x̂− + Kz (15.28)
where the time indices have been dropped for the purposes of clarity.
The quantity (K · H ) is the effective Kalman gain in “state space” (i.e., the solu-
tion domain, which in this example is the position domain). Recall also that the
Kalman gain itself is a function of the H matrix. Thus the Kalman filter gain and
update are inherently accounting for the geometry. We see in (15.28) that (I − KH )
weights the prediction. If (K · H ) is zero, all weight is on the prediction. If (K · H ) is 1,
all weight is on the measurement. Thus, (K · H ) is effectively the relative weighting
placed on the measurement.
For this example, both K and H , and thus their product, are all 2×2 matrices.
Designating the product of the two matrices as KH , the (1,1) and (2,2) elements are
plotted in Figure 15.10. The plot demonstrates that, indeed, in the middle of the run
the filter places zero weight on the measurements (KH (2,2)) for the estimation of y
while simultaneously maximizing its weight on the measurements (KH (1,1)) for the
0.8
0.7
0.6
0.5
KH(1,1)
K*H
KH(2,2)
0.4
0.3
0.2
0.1
0
0 50 100 150 200
run time in seconds
Figure 15.10 Effective Kalman gain for the trajectory shown in Figure 15.3 with
the DME transponder arrangement illustrated in Figure 15.2. The
(1,1) and (2,2) elements represents the weights being placed on the
measurements in the formation of the estimates of the x-coordinate
and y-coordinate, respectively
Radionavigation Kalman filtering 223
In the previous case study, an a priori known nominal trajectory, with true position
deviations described by a simple random walk process, allowed us to construct a linear
system equation. In general, however, a nominal vehicle trajectory is not known in
advance. This complicates matters since general motion is a non-linear function of
acceleration. To put it simple, turns cause the vehicle dynamics to be non-linear. In
later chapters, we will see how integration with an inertial system allows us to form
a so-called “complementary filter” and eliminate the non-linear system dynamics.
First, however, it is good to explore the trade-offs involved in designing a Kalman
filter for a stand-alone radionavigation system.
Since we have no a priori known reference trajectory, we will form one “on the
fly” (i.e., in real-time) by extrapolating our current estimate. We will estimate both
position and velocity (offsets) in the filter and will model some noise on the velocity
states to account for disturbances. This will, of course, not work well during turns
but we will explore that shortly. First, let us design the filter. Then we will explore its
performance. The linearized system equation is similar to what we had in a previous
chapter for the simplified radar problem:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
xpos 1 t 0 0 xpos 0
⎢ xvel ⎥ ⎢0 1 0 0 ⎥ ⎢ xvel ⎥ ⎢wxvel ⎥
⎢ ⎥ =⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ypos⎦ ⎣0 0 1 t ⎦ ⎣ypos⎦ + ⎣ 0 ⎦ (15.29)
yvel k+1 0 0 0 1 yvel k wyvel
where the state vector consists of the offsets of x and y position and velocity from
the nominal position and velocity and perturbing noise is modeled on the velocity
states. Given a current estimate of the total state (position and velocity), we use the
state transition matrix from the system equation to derive the algorithm to form the
nominal state for the next moment in time:
⎡ ⎤ ⎡ ⎤⎡ ⎤
Xposnom 1 t 0 0 Xposest
⎢ Xvelnom ⎥ ⎢0 1 0 0 ⎥ ⎢ Xvelest ⎥
⎢ ⎥ =⎢ ⎥⎢ ⎥ (15.30)
⎣Yposnom ⎦ ⎣0 0 1 t ⎦ ⎣Yposest ⎦
Yvelnom k+1 0 0 0 1 Yvelest k
where “nom” refers to nominal and “est” refers to estimate. Note that the quantities
in (15.30) are total quantities and not incremental quantities. Similar to Equation
224 Fundamentals of inertial navigation systems and aiding
(15.12), the total estimate is obtained by adding the state vector estimate (which
consists of incremental quantities) onto the nominal:
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
Xposest Xposnom xposest
⎢ Xvelest ⎥ ⎢ Xvelnom ⎥ ⎢ xvelest ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣Yposest ⎦ = ⎣Yposnom ⎦ + ⎣yposest ⎦ (15.31)
Yvelest k Yvelnom k yvelest k
This use of the filter’s estimate to form the nominal point of linearization is why this
architecture is known as an “extended Kalman filter” commonly abbreviated “EKF.”
The Kalman filter’s results are being extended to form the point of linearization.
The noise vector in Equation (15.29) can be shown [1] to yield a system noise
covariance matrix given by:
⎡ 3 ⎤
S t3 S t2
2
0 0
⎢ t 2 ⎥
⎢S St 0 0 ⎥
Q=⎢ 2 ⎥ (15.32)
0 S t3 S t2 ⎦
3 2
⎣ 0
0 S t2 St
2
0
where t is the Kalman cycle/update interval and S, for our purposes, is a scaling
parameter. Later we will vary it to see the impact on the filter performance.
The initial prediction of the state vector, x̂− 1 , is set to all zeros since all a priori
information about the state has been incorporated into the nominal state. The initial
prediction error covariance matrix, P1− , may be specified as a diagonal matrix with
values sufficiently large so as to ensure the filter does not place too much reliance on
the initial prediction.
Given the state vector shown in Equation (15.29), we can write the measurement
equation by expanding the H matrix defined previously in Equation (15.7):
⎡ ⎤
xo −x1 xpos
ρ1 ( ρ1o ) 0 ( yoρ−y 1
)0 ⎢ ⎢ xvel ⎥
⎥ ν1
= xo −x2 1o
⎣ypos⎦ + ν2 (15.33)
ρ2 ( ρ2o ) 0 ( yoρ−y
2o
2
) 0
yvel
where ν1 and ν2 are the DME ranging measurement noise/errors. Thus the H matrix
has the same non-zero elements as before but the columns of zeros are needed to
accommodate the velocity states. For the current case, we will again simulate the
DME ranging measurement error as being independent Gaussian noise with a standard
deviation of 15 m and thus our R matrix is the same as it was in the previous case
(defined in Equation (15.25)).
Finally, since our estimated state vector is used to predict ahead to form the
nominal state (Equations (15.31) and (15.30)), the state vector prediction is reset to
zeros before going back to the top of the loop:
T
x̂−
k+1 = 0 0 0 0 (15.34)
At first, this seems a bit odd but it is needed since all of the information in the
estimated state was already propagated ahead to form the predicted nominal state.
[You may also note that forming the Kalman update (e.g., Equation (15.28)) with
the state prediction being always a vector of zeroes is numerically inefficient. This is
Radionavigation Kalman filtering 225
true and alternative formulations have been derived accordingly [1]. Specifically, the
algorithm can be reformatted such that the filter estimates total quantities (i.e., position
and velocity) directly rather than estimating incremental quantities and having to add
them to the nominal in order to form the total estimate.] However, even though the
state prediction is zeros, the prediction error covariance matrix is not. It continues to
be computed as normal.
We will now investigate the impact of non-linear vehicle dynamics on the EKF. A
simulated flight path is constructed consisting of a straight path to the east followed by
a 180 degree left turn and then a straight path back to the west as shown in Figure 15.11.
In order to focus on the non-linear dynamics and not the radionavigation system
geometry, we will simulate the DME transponders at (−50 km, 50 km) and (50 km,
50 km). This makes both XDOP and YDOP approximately equal to 1 throughout the
entire flight path.
With the scaling parameter (S) in Equation (15.32) set to 225 (i.e., (15)2 ), the
Kalman filter performance is illustrated in Figures 15.12–15.14. The results are clearly
noisy. The velocity is especially noisy but this is not surprising given the noise level on
the ranging measurements. The results are not particularly inspiring and we wonder
if we could possibly do better. By decreasing the magnitude of the values in the
Q matrix, we can achieve more filtering by getting the filter to place more weight
on its predictions. The results of setting the S parameter to 1 are shown in Figures
15.15–15.17. Although better performance is achieved in the straight segments, there
3,500
3,000
2,500
2,000
y position in meters
1,500
1,000
500
–500
–1,000
–1,500
true
3,500
estimated
3,000
2,500
2,000
y position in meters
1,500
1,000
500
–500
–1,000
–1,500
Figure 15.12 True simulated flight path and Kalman filter results with Q set to
‘large’ values
60
40
x pos err [m]
20
0
–20
–40
–60
0 50 100 150
60
40
y pos err [m]
20
0
–20
–40
–60
0 50 100 150
run time in seconds
Figure 15.13 Kalman filter errors in estimated position with Q set to ‘large’ values
Radionavigation Kalman filtering 227
100 estimated
true
50
x vel [m/s]
–50
–100
0 50 100 150
150
estimated
100 true
y vel [m/s]
50
–50
0 50 100 150
run time in seconds
Figure 15.14 True and Kalman filter estimated velocity with Q set to ‘large’ values
4,000
true
estimated
3,000
2,000
y position in meters
1,000
–1,000
Figure 15.15 True flight path and Kalman filter estimates with Q set to ‘small’
values
228 Fundamentals of inertial navigation systems and aiding
60
40
x pos err [m]
20
0
–20
–40
–60
0 50 100 150
60
40
y pos err [m]
20
0
–20
–40
–60
0 50 100 150
run time in seconds
Figure 15.16 Kalman filter errors in estimated position with Q set to ‘small’ values
100 estimated
true
50
x vel [m/s]
–50
–100
0 50 100 150
100
estimated
80
true
60
y vel [m/s]
40
20
0
0 50 100 150
run time in seconds
Figure 15.17 True and Kalman filter estimated velocity with Q set to ‘small’ values
Radionavigation Kalman filtering 229
is a large lag in the filter response during the turn that results in large bias errors. By
placing too much weight on the (constant velocity) prediction, the filter ignores the
measurements when they start to tell the filter that the vehicle is turning. Since we
have set Q too small, the filter thinks the “diverging” measurements are just noise. If
we optimally tune Q (in between these extremes), we would find that the Kalman filter
performs just slightly better than an OLS estimator. As shown earlier, the Kalman
filter has the advantage of optimally accounting for the geometry, but in this case,
the geometry is good throughout the entire flight path and thus the filter’s advantage
would not be apparent. It would certainly be desirable to achieve low-noise estimates
throughout the entire flight trajectory. As we will see later, the best way to achieve
this is to integrate the radionavigation system with an inertial navigation system. We
have a couple of major topics that need to be covered before we get there and in the
next chapter we will extend the DME EKF to GNSS.
Reference
[1] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
This page intentionally left blank
Chapter 16
GPS-only Kalman filtering
In the previous chapter, we introduced the linearized Kalman filter and the extended
Kalman filter in the context of two-dimensional radionavigation-based positioning
(specifically, multilateration DME). We can now apply these concepts to GNSS. It
is useful to study GNSS-only Kalman filtering to understand its performance and
limitations. Many GNSS receivers output a position solution produced by a Kalman
filter and, within some inertial integration schemes, the system outputs three separate
solutions: a GNSS-only solution, an inertial-only solution, and a GNSS-inertial inte-
grated solution. Since our purpose here is not to delve into the details that differentiate
the various GNSSs, we will focus our development primarily on GPS.
where clkph is the clock phase offset, clkfr is the clock frequency offset, wca is the
clock acceleration white noise, and wcf is the clock frequency white noise. From this
continuous-time state equation, we need to determine the discrete-time state vector,
state transition matrix and system noise covariance matrix. These will subsequently
be utilized within the larger Kalman filters.
It is common for the clock states to be expressed (and estimated) in range and
range-rate units. Recall the pseudorange bias due to the receiver clock offset is simply
the receiver clock phase offset multiplied by a constant (the speed of light: c); similarly
the pseudorange-rate bias due to clock frequency offset is simply the clock frequency
offset multiplied by another constant (the carrier wavelength: λ = fcc ). Thus, the clock
bias is typically expressed in units of meters.
bu = c · clkph (16.2)
White
Noise
Wcf
Clock Clock
White frequency phase
Noise offset offset
S –1 S –1
Wca
Figure 16.1 Continuous-time model for the GPS receiver clock phase and
frequency offset
GPS-only Kalman filtering 233
and the clock frequency offset (which is also the clock bias rate) in units of meters-
per-second:
c
b·u = clkfr (16.3)
fc
where the “u” represents “user” (i.e., the receiver). The discrete-time state vector for
the two-state clock model is thus:
T
xk = bu b·u (16.4)
From the system dynamics matrix specified in Equation (16.1), it can be shown
that the corresponding discrete-time state transition matrix is given by:
1 t
k = (16.5)
0 1
The system noise covariance matrix is derived in the books by Brown and Hwang
[1] and Groves [3] (see, e.g., lower-right 2 × 2 submatrix in Equation (9.152) of
Groves). The result is:
⎡ 3 2
⎤
sph t + (t) sfr (t) sfr
Qk = ⎣ ⎦
3 2
(16.6)
(t)2
2
sfr sfr t
where sph is the spectral density of the phase offset and sfr is the spectral density of the
frequency offset. Groves ([3, p. 418] ) notes that typical values for the temperature-
compensated crystal oscillators (TCXOs) commonly used in GNSS receivers are
2 2
sph ≈ 0.01 ms and sfr ≈ 0.04 ms3 .
states that is then weighted and combined with the weighted measurements to form
the estimate. We will discuss this further as we explore some examples.
White Delta
Noise Position
S –1
Figure 16.2 Continuous-time model for each dimension of position in the 5-state
model. The white noise input is in the velocity domain and the position
output is a random walk process. The output is actually “delta
position” since at each update the filter is estimating the position
offset from the nominal position
GPS-only Kalman filtering 235
The 5-state model is only appropriate for stationary or extremely low dynamic
platforms since the system equation does not account for any vehicle dynamics.
The purpose of using a random walk model for stationary position components
is to create non-zero Q values such that the filter does not completely ignore the
measurements. If Q is zero, eventually the filter will place all weight on its own pre-
dictions. In the process of doing so, numerical instabilities may also result. Since the
delta position states are modeled as being statistically independent, the corresponding
portion of the covariance matrix is diagonal only and consists of the integration of
the noise spectral density over the update interval. Since the noise spectral density is
also modeled as a constant, the integration is simply the spectral density multiplied
by the time interval. The total Q matrix is then given by combination of the position
state components with (16.6) [1]:
⎡ ⎤
sp t 0 0 0 0
⎢ 0 sp t 0 0 0 ⎥
⎢ ⎥
Qk = ⎢⎢ 0 0 s t 0 0 ⎥ (16.10)
p
⎥
⎣ 0 ⎦
3 2
0 0 sph t + (t) 3
s fr
(t)
2
s fr
(t)2
0 0 0 2
sfr sfr t
where sp is the spectral density of the position noise. Since the purpose of non-zero
Q is to maintain numerical stability and prevent the filter from completely ignoring
2
the measurements, sp is typically small. Values on the order of 0.1 ms are acceptable.
The system equation has thus provided us with the state vector and state transition
matrix (Equation (16.8)) and the system noise covariance matrix (Equation (16.10)).
To determine the measurement equation, we will proceed in a manner very similar to
that which we used for DME-based positioning in the previous chapter. We start with
the non-linear equation that relates position to the pseudorange between the user and
the ith satellite:
PRi = (xu − xi )2 + (yu − yi )2 + (zu − zi )2 + bu (16.11)
where, again, “u” refers to user (or whatever platform the receiver is on), xi , yi , and zi
are the coordinates of the ith satellite and bu is the receiver clock phase offset (clock
“bias”) in units of range (bu = c · clkph ). Expanding Equation (16.11) in a Taylor
Series expansion about a nominal user state (xo , yo , zo , bo ) and retaining only the
zeroth and first-order terms results in the following approximation:
xo − xi y o − yi
PRi ≈ PRio + (xu − xo ) + (yu − yo )
rio rio
zo − zi
+ (zu − zo ) + 1 · (bu − bo ) (16.12)
rio
where
PRio = (xo − xi )2 + (yo − yi )2 + (zo − zi )2 + bo (16.13)
and
rio = (xo − xi )2 + (yo − yi )2 + (zo − zi )2 (16.14)
236 Fundamentals of inertial navigation systems and aiding
Define the difference between the nominal and true user state as:
⎡ ⎤ ⎡ ⎤
x xu − xo
⎢y ⎥ ⎢ yu − yo ⎥
⎢ ⎥=⎢ ⎥ (16.15)
⎣ z ⎦ ⎣ zu − zo ⎦
b bu − b o
Substituting (16.15) into (16.12) yields:
xo − xi y o − yi z o − zi
PRi ≈ PRio + x + y + z + 1 · b (16.16)
rio rio rio
A linear equation in the unknowns (position and clock deltas) is created by moving the
zeroth order term (which is a constant) to the left side of the equation. First we define
the difference between the measured pseudorange and the pseudorange computed
between the satellite and the nominal position:
PRi = PRi − PRio (16.17)
With (16.17), moving the zeroth order term in (16.16) yields the linear equation:
xo − xi y o − yi z o − zi
PRi = x + y + z + 1 · b (16.18)
rio rio rio
Since there are four unknowns in (16.18), we need at least four pseudorange
measurements. Gathering N instances of (16.18) yields:
⎡ ⎤ ⎡ xo −x1 ⎤
PR1 ( r1o ) ( yor−y 1
) ( zor−z 1
) 1 ⎡ ⎤
⎢ PR ⎥ ⎢
1o 1o
⎥ x
⎢ 2⎥ ⎢ ( xor−x 2
) ( yor−y 2
) ( zor−z 2
) 1⎥ ⎢ ⎥
⎢ . ⎥=⎢ . ⎢ 2o 2o 2o ⎥ ⎢y ⎥
⎢ . ⎥ ⎢ . .. .. .. ⎥ ⎣ z ⎦ (16.19)
⎣ . ⎦ ⎣ . . . .⎥⎦ b
PRN ( xor−xN ) ( yor−yN ) ( zor−zN ) 1
No No No
error covariance matrix can be determined on the basis of the OLS error covariance
matrix:
POLS = σrng
2 T
([Hpos Hpos ])−1 (16.28)
2
where it has been assumed that the variance of all pseudorange measurements (σrng )
are equal. [A higher fidelity result can be obtained if a weighted least squares (WLS)
solution is formed (instead of an OLS) using the variances of each of the pseudor-
anges.] The result provided by Equation (16.28) can be used to populate the upper left
4×4 submatrix of the 5-state Kalman filter initial prediction error covariance matrix.
The remaining row and column can be set to zeros other than P0− (5, 5) which should
be set according to the expected initial receiver clock frequency error.
One important point to keep in mind when computing quantities such as Equations
(16.13) and (16.14) is the satellite motion (which was not an issue for DME since
the ground transponders are mounted in concrete). Each satellite position needs to
be computed at the signal time-of-transmission but the pseudorange measurements
(and the position solution) are valid at the signal time-of-reception. For near-Earth
receivers, there is an approximately 70 ms difference between the two. Since the
satellites are traveling several kilometers per second, the difference is not trivial. For
users on the equator, there will be an east position error of approximately 30 m if the
rotation of the Earth during this time period is not taken into account. Thus, the satellite
positions used in these computations need to be computed at the time-of-transmission
but then expressed in the earth-centered earth-fixed (ECEF) coordinate system at the
time-of-reception. This is accomplished with a simple rotation matrix. This earth
rotation correction is frequently ignored in computer simulations (obviously both in
the generation of the simulated measurements and in the measurement processing).
Figures 16.3 and 16.4 illustrate the results of a simulation of a stationary GPS
receiver implementing an OLS position solution and the extended Kalman filter
described above. Pseudorange measurements were simulated with noise, multipath,
ionospheric delay and tropospheric delay. The pseudorange noise was simulated with
a standard deviation of 1 m. With respect to the nominal values, the total simulated
tropospheric delay was reduced by 90 per cent and the total simulated ionospheric
delay was reduced by 50 per cent to simulate the effects of the application of a stan-
dard tropospheric correction model along with the broadcast ionospheric correction
model. Multipath error was simulated by a first-order Gauss–Markov process with a
standard deviation of 1.6 m and a time-constant of 2 min.
We see that the Kalman filter shows substantial noise reduction over the OLS
solution but it does not reduce the “biases” (the multipath and atmospheric delays).
This is not surprising since these bias-like errors were not modeled in the filter. Why
did we not model them in the filter? In a word, they are not “observable” (a topic we
will explore more in a later chapter). Nevertheless the Kalman filter is still providing
benefit. In addition to the noise reduction, it is important to remember the filter takes
the satellite geometry into account. Before leaving this example, we should also make
note of the fact that the atmospheric bias-like errors impact the vertical position and
clock solutions significantly more so than the horizontal solution. This is a typical
16
east
14 north
up
12 clock
10
position error in meters
–2
–4
4.2 4.22 4.24 4.26 4.28 4.3
GPS time of day in seconds ×104
Figure 16.3 Ordinary least-squares position errors for a simulated stationary GPS
receiver. The receiver clock offset (also known as a clock phase offset
or a clock bias) is expressed in units of distance via implicit
multiplication by the speed of light within the position solution
16
east
14 north
up
12 clock
10
position error in meters
–2
–4
4.2 4.22 4.24 4.26 4.28 4.3
GPS time of day in seconds ×104
Figure 16.4 Extended Kalman filter position errors for a simulated stationary GPS
receiver. The raw measurements are identical to those in Figure 16.3
240 Fundamentals of inertial navigation systems and aiding
result when HDOP is small (the satellites are roughly evenly spread in azimuth and
thus the bias errors cancel out somewhat).
where wax , way , and waz are the acceleration white noise inputs depicted in
Figure 16.5 and wcf and wca are the clock model noise terms described earlier. From
the continuous-time state equation, we can derive the Kalman system equation. How-
ever, the key elements for the filter design are the state transition matrix and the system
noise covariance matrix. Since the system dynamics matrix (F = the 8×8 matrix in
Figure 16.5 Continuous-time model for each dimension of velocity and position in
the 8-state model. The white noise input is in the acceleration domain,
the velocity is a random walk process and the position is an integrated
random walk process
GPS-only Kalman filtering 241
Equation (16.29)) is constant over the update interval (t), the state transition matrix
can be obtained numerically:
= eFt (16.30)
where 0ixj refers to a matrix of zeros with i rows and j columns. The lower right 2×2
submatrix in (16.32) is the same as was previously discussed. As shown in Groves [3],
the acceleration noise spectral density matrix, Sae , expressed in the GPS earth (e) frame
(i.e., earth-centered earth-fixed coordinates) is given by:
⎡ ⎤
SaH 0 0
Sae = Cne ⎣ 0 SaH 0 ⎦ Cen (16.33)
0 0 SaV
where Cen is the earth-to-nav direction cosine matrix (DCM), Cne = (Cen )T , SaH is the
horizontal acceleration spectral density and SaV is the vertical acceleration spectral
2 2
density. As noted by Groves [3], SaH is on the order of 1 ms3 for marine vessels, 10 ms3
2
for automobiles and 100 ms3 for fighter aircraft. SaV is very small for marine and land
vehicles and is tuned primarily for numerical stability. For low to medium dynamic
vehicles such as most civil aircraft, SaV should be tuned according to the expected
vertical acceleration profile.
We now go on to the Kalman measurement equation to obtain the observation
vector, data matrix and measurement noise covariance matrix. Equation (16.22) can
be easily expanded to incorporate the three velocity states:
242 Fundamentals of inertial navigation systems and aiding
⎡ ⎤
⎡ ⎤ x
⎡ ⎤ ( xor−x 1
) ( yor−y 1
) ( zor−z 1
) 0 0 0 1 0 ⎢ ⎥
⎢ y ⎥ ⎡ ⎤
PR1 ⎢ xo −x1o 1o 1o
⎥ ⎢ z ⎥ ν1
⎢ PR2 ⎥ ⎢ 0⎥ ⎢ ⎥
y −y z −z
⎥ ⎢ ẋ ⎥ ⎢ ν2 ⎥
2 o 2 o 2
( ) ( r2o ) ( r2o ) 0 0 0 1
⎢ ⎥ ⎢ r2o ⎥+⎢ ⎥
⎢ .. ⎥ = ⎢ . .. .. .. .. .. ..
⎥⎢ ⎢
.. ⎥ ⎢ ẏ ⎥ ⎣ .. ⎥
⎣ . ⎦ ⎢ ⎢ .. . . . . . . .⎥ ⎢ ⎥ .⎦
⎣ ⎦ ⎢ ż ⎥
PRN xo −xN yo −yN zo −zN ⎢ ⎥ νN
( rNo ) ( rNo ) ( rNo ) 0 0 0 1 0 ⎣ b ⎦
b·
(16.34)
The data matrix (H ) is thus given by the N ×8 matrix in (16.34) and the observation
vector (z) on the left-hand side of equation (16.34) is the same N -element vector
derived previously for the 5-state filter from the pseudorange measurements and the
nominal state (see Equations (16.17) and (16.19)). Accordingly, the measurement
noise covariance matrix is the same as before (Equation (16.23)).
In the same manner as was used with the 5-state filter, the total estimate is
formed by adding the estimated deltas to the nominal states. Also, as before, the state
transition matrix can be used to extrapolate the current estimate in order to form the
next nominal state. Finally, again as before, since the total estimate was used to form
the next nominal state, the state prediction is reset to zeros for the next moment in time
and the associated prediction error covariance matrix is computed in the usual way.
For the very first execution of the Kalman loop, the ordinary least-squares (OLS)
solution can be used to determine the position and clock phase values of the initial
nominal state. The clock frequency offset and velocity states can be initialized at zero
or a few consecutive OLS position and clock estimates can be used to form crude
initial estimates. As before, the initial prediction error covariance matrix can be deter-
mined on the basis of the OLS error covariance matrix. The main diagonal elements
associated with the velocity states (P − (4, 4) through P − (6, 6)) can be conservatively
set to the square of the maximum possible velocity of the platform (at the time when
the filter is initialized).
Figures 16.6–16.8 show the results of the 8-state filter with a simulated F-16
flight path. The dog-leg flight path simulates the F-16 initially flying east at 200 m/s,
executing a 180 degree 1-g left turn and then proceeding back to the west (all at
constant velocity). For the purposes of computing the system noise covariance matrix
(Equations (16.32) and (16.33)), the horizontal acceleration spectral density (SaH )
2 2
was set to 50 ms3 and the vertical acceleration spectral density (SaV ) was set to 10 ms3 .
The simulated noise on the pseudoranges was independent white Gaussian with a
variance of 1 m2 , and thus R was set as a diagonal matrix with the main diagonal
elements all set to 1.
Reasonable performance is obtained given the noisy and biased C/A-code mea-
surements. The horizontal velocity error excursions observed in Figure 16.8 occur
during the turn and are the direct result of mismodeling in the filter. Specifically, the
model (Figure 16.5) does not account for deterministic acceleration in the flight
profile. The presence of sustained non-zero-mean acceleration is inappropriately
10,000
6,000
4,000
2,000
–2,000
Figure 16.6 True and estimated trajectories with a simulated F-16 flight path. The
trajectory starts at the origin. True velocity is 200 m/s throughout and
the left turn is executed at 1-g acceleration
30
25
20
position error in meters
15
10
0
east
north
–5 up
clock
–10
0 50 100 150 200
run time in seconds
Figure 16.7 8-state Kalman filter position errors for the flight path depicted in
Figure 16.6. GPS C/A-code measurements were simulated with
thermal noise, multipath, ionosphere, and tropospheric delay (iono
reduced by 50 per cent and tropo reduced by 90 per cent to simulate
the effects of standard correction models)
244 Fundamentals of inertial navigation systems and aiding
5
east error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
5
north error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
vertical error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
run time in seconds
Figure 16.8 8-State Kalman filter velocity errors for the flight path depicted in
Figure 16.6
treated as noise by the filter and divergence results for the duration of the turn.
Thus the filter is only appropriate for low-dynamic vehicles (e.g., automobiles, but
not race cars). There are two potential solutions when considering medium-dynamic
trajectories. One is to expand the filter by another three states to model acceleration
explicitly. As described in [1], a first-order Gauss–Markov model is needed for the
acceleration states since acceleration is not sustained in any practical vehicle (i.e.,
a random walk process would be inappropriate since it leads to long-term non-zero
values). Thus, an 11-state model can be derived that significantly reduces the velocity
error excursions exhibited by the 8-state filter. However, for any vehicle capable
of medium dynamics, a superior solution can be obtained by utilizing the Doppler
(e.g., pseudorange-rate) and/or carrier-phase measurements provided by the receiver.
GPS receivers measure the pseudo-Doppler-shifted carrier of the received signal. The
term “pseudo” is used since the observable consists of the true Doppler shift plus the
receiver’s clock frequency error. The pseudo-Doppler can be converted to units of
velocity through multiplication by the nominal carrier wavelength. The result is thus
a pseudo-range-rate:
The 2N ×8 matrix in (16.48) is the H matrix for the 8-state filter with pseudor-
ange and pseudorange-rate measurements. The vector of delta pseudorange and delta
pseudorange-rate observations is the measurement vector z. The measurement noise
covariance matrix is the covariance of the noise vector on the right side of (16.48). In
most practical implementations, the covariances between the observations is ignored
thus yielding a diagonal matrix:
⎡ 2 ⎤
σPR1 0 · · · 0 0 ··· 0
⎢ .. ⎥
⎢ 0 . ··· 0 0 ··· 0 ⎥
⎢ ⎥
⎢ ⎥
⎢ 0 . . . σPR 2
0 0 ··· 0 ⎥
R=⎢ ⎢
N ⎥
⎥ (16.49)
⎢ 0 ... 0 σ 2
0 · · · 0 ⎥
⎢ PRR1 ⎥
⎢ ⎥
⎣ 0 ... 0 0
..
. ··· 0 ⎦
0 ··· 0 0 · · · · · · σPRR
2
N
The noise variances are dependent upon the carrier-to-noise ratio and the receiver
architecture (i.e., tracking loop orders and bandwidths). Pseudorange noise standard
deviations are on the order of 1 m if the code tracking loop is unaided and on the order
of 0.2 m if it is aided by the carrier tracking loop. The pseudorange-rate noise stan-
dard deviation is on the order of 0.05–0.1 m/s. For the same flight path shown earlier
(Figure 16.6), 8-state filter results utilizing pseudorange-rate measurements along
with pseudorange measurements are depicted in Figures 16.9 and 16.10. Comparison
of Figures 16.8 and 16.10 shows that inclusion of the pseudorange-rate measurements
eliminates the acceleration-induced errors in the velocity estimates. For the sake of
completeness, it should be noted that the pseudorange-rate measurements were simu-
lated with a higher level of noise than is typical (standard deviation of approximately
0.28 m/s). Nevertheless, the performance is significantly better than with pseudorange
measurements alone.
The simulated pseudorange-rate measurements for this simulation were derived
from simulated carrier-phase measurements made at the pseudorange epoch and
50 msec prior to the pseudorange epoch. Pseudorange-rate was computed by
differencing the two carrier-phase measurements and dividing by the time interval.
A true pseudo-Doppler measurement, however, is an average of measured Doppler
over some time interval. Regardless of how you compute pseudorange-rate, however,
it is not an instantaneous observation. We must remember that it is impossible to
make instantaneous frequency measurements. The easiest way to understand this is
to consider a sinusoid of unknown frequency. At least two zero-crossings must be
timed in order to estimate a frequency. In other words, a single data point (say, one
zero-crossing) is insufficient. Thus, the best we can do is to measure frequency over
some finite interval of time. In practice, then, we actually measure average frequency
over some time interval.
The pseudorange-rate measurement, then, is an average value rather than an
instantaneous one. Also, its time of validity is best defined as the middle of the
measurement interval. In the simulation just described, the pseudorange-rate is valid
30
25
20
position error in meters
15
10
0
east
north
–5 up
clock
–10
0 50 100 150 200
run time in seconds
Figure 16.9 8-State Kalman filter results, utilizing both pseudorange and
pseudorange-rate measurements, for the flight path depicted in Figure
16.6. The measurements were simulated with the same errors used in
the pseudorange-only simulation (Figures 16.7 and 16.8)
5
east error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
5
north error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
vertical error [m/s]
–5
0 20 40 60 80 100 120 140 160 180 200
run time in seconds
Figure 16.10 Velocity estimation errors for the 8-state filter (Figure 16.9) using
both pseudorange and pseudorange-rate measurements
GPS-only Kalman filtering 249
References
[1] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
[2] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
[3] Groves P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation
Systems. 2nd ed. Boston, MA: Artech House; 2013.
This page intentionally left blank
Chapter 17
Introduction to inertial aiding
17.1 Introduction
We will begin our study of inertial aiding within the context of a one-dimensional
problem. Specifically, we are assuming that we are instrumenting a vehicle that is
on a perfectly flat, perfectly straight track. Real examples of this are the rocket sleds
operated by the United States military in the desert southwest of the country. The sleds
are equipped with rockets that enable the sled to accelerate very quickly to very high
speeds and travel a few miles before running into water that causes braking action to
slow it down. They test various sensors with these sleds. Although real rocket sleds
have some lateral motion (sway and vibration), we are going to consider an idealized
simplified sled that only moves in one dimension: on a perfectly flat, perfectly straight
track (as you will see, we will also take extensive liberties with the length of the track).
Although the real tracks have sensors on the tracks themselves for highly-precise
position determination, we are going to assume we have an inertial navigation system
on the sled itself. Since it is moving in just one dimension, we only need one sensor: an
accelerometer. As long as the accelerometer is mounted parallel to the track, velocity
is the result of integrating specific force once and distance along the track is obtained
from an additional integration. We will then make the scenario a bit more interesting
by simulating errors in the accelerometer. Finally, we will simulate an external aiding
source and will input its measurements into a Kalman filter that will estimate the
inertial errors so that they can be corrected.
1
Acceleration
m/s2
0.5
0
0 20 40 60 80 100 120 140 160 180 200
40
m/s
20 Velocity
0
0 20 40 60 80 100 120 140 160 180 200
6,000
Distance
4,000
m
2,000
0
0 20 40 60 80 100 120 140 160 180 200
time in seconds
m
● A0 = 0; a period of constant acceleration (1 s2
) occurs from t = 30 sec to
t = 60 sec
● Total simulated trajectory: 200 sec
The acceleration, velocity, and position profiles of Trajectory 1 are depicted in
Figure 17.1.
8,000
distance
6,000
m
4,000
2,000 true
INS
0
0 20 40 60 80 100 120 140 160 180 200
60
velocity
40
m/s
20
true
INS
0
0 20 40 60 80 100 120 140 160 180 200
time in seconds
Figure 17.2 Along-track distance and velocity (truth and INS output) for the
trajectory depicted in Figure 17.1 for an accelerometer with a
10 milli-g bias
2,500
2,000
1,000
500
0
0 20 40 60 80 100 120 140 160 180 200
25
20
15 velocity error
m/s
10
0
0 20 40 60 80 100 120 140 160 180 200
time in seconds
Figure 17.3 Inertial distance and velocity errors with a 10 milli-g accelerometer
bias for the simulation depicted in Figure 17.2
254 Fundamentals of inertial navigation systems and aiding
where s(t) is the desired signal (quantity) of interest. The noise on measurement
system 1 (n1 ) is composed of low-frequency errors and the noise on measurement
system 2 is composed of high-frequency errors. The negative sign on n1 is just a
mathematical convenience (as we will see shortly) and does not affect the results. If
it bothers you, just remember that the negative of noise is still noise.
We can isolate the noise terms by differencing the measurements:
ε = m2 (t) − m1 (t) = n1 (t) + n2 (t) (17.3)
Thus, the observable formed by the difference of the two measurements consists
of the sum of the errors (this is why n1 was arbitrarily given a negative sign; although
n2 − n1 is still a “sum” of noise terms, it is easier to think of a sum with a plus sign).
Notice that the true signal has canceled out.
Now you may wonder how getting rid of the desired signal can be a good thing.
Just hold on, we are not done yet. Since n1 has a low pass characteristic and n2 has
a high pass characteristic, we can isolate n1 by running the difference (ε) through a
low-pass filter. That allows us to isolate one of the errors. What good is that? Since
we have now estimated the error in the measurement of sensor 1, we can use it to
correct the measurements from sensor 1 and reduce the overall error considerably.
This is depicted in Figure 17.4. In the upper left is the measurement from sensor 1
(truth minus n1 ). In the lower left is the measurement from sensor 2 (truth plus n2 ).
These two measurements are input to the summing junction that performs the subtrac-
tion. The output of the summing junction is the sum of the two measurement errors.
The sum is input to a low-pass filter and the output is approximately equal to n1 .
Having isolated the sensor 1 error, it can be subtracted off of the raw sensor 1 output
in order to correct the output and, ideally, yield the true value.
Introduction to inertial aiding 255
+ s(t)
s(t) – n1(t)
+
–
s(t) + n2(t) Filter
+
n1(t)
n1(t) + n2(t)
– +
Kalman
Radar
Radar Filter
Position
Estimate of
Z = [INS position] – [Radar position] INS position, velocity,
and acceleration error
We use the complementary filter architecture for navigation system integration but
we enhance it significantly by replacing the simple low-pass filter with a multi-state
Kalman filter. Instead of just isolating the output errors of one sensor, the Kalman
filter is also able to estimate the underlying error sources inside the sensor (or sensors).
For our sled track example we will assume that, in addition to the inertial system,
there is a radar providing independent measurements of distance along the track. The
filter architecture, as applied to our sled track example, is illustrated in Figure 17.5.
The radar will be simulated as having independent white Gaussian measurement
error with a standard deviation of 5 m. Additionally, the radar is mounted such that
the measurements are perfectly parallel with the track and thus provide a completely
256 Fundamentals of inertial navigation systems and aiding
independent measurement of the distance (or position or range) of the vehicle along
the track.
As shown in Figure 17.5, the Kalman filter is providing estimates of inertial
position and velocity error so that the output of the inertial system can be corrected
(since this is a one-dimensional example, “position” is the same as distance-along-
track). Since the accel bias is the driver of the inertial velocity and position errors, it
needs to be estimated as well. The continuous-time state vector is thus:
⎡ ⎤
perr (t)
x = ⎣ verr (t) ⎦ (17.4)
abias (t)
The derivatives of the three state variables are given by the following equations (with
the assumption that the accel bias is a perfect constant):
d
abias (t) = 0 (17.5)
dt
d
verr (t) = abias (t) (17.6)
dt
d
perr (t) = verr (t) (17.7)
dt
The individual derivatives can be combined in the continuous-time state equation:
⎡ ⎤⎡ ⎤
0 1 0 perr (t)
ẋ = Fx = ⎣0 0 1⎦ ⎣ verr (t) ⎦ (17.8)
0 0 0 abias (t)
Since the continuous-time system dynamics matrix (F) is a constant, the discrete-time
state transition matrix can be computed via:
= eFt (17.9)
Strictly speaking, F need only be constant over the Kalman filter cycle (loop) interval
(t) but in this case F is always a constant. In this simple case, there is also a
closed form solution and thus the discrete-time Kalman filter system equation for
this example is:
⎡ ⎤ ⎡ ⎤
perr 1 t 12 (t)2 ⎡ perr ⎤ ⎡ ⎤
0
⎣ verr ⎦ ⎢ ⎥
= ⎣0 1 t ⎦ ⎣ verr ⎦ + ⎣0⎦ (17.10)
abias k+1 0 0 1 abias k 0
where we see that the system noise vector is identically equal to zero. In this simple
example where the accel bias is a pure constant and there are no other errors, this
noise vector assumption is correct (and implies that Q is all zeros). Later we will
explore more realistic scenarios but this simple one is a good place to start.
The system equation gives us half of the terms we need to design the filter.
Specifically: the state vector (x), the state transition matrix () and the system noise
Introduction to inertial aiding 257
covariance matrix (Q). To complete the design, we need to specify the measurement
equation. Since this is a complementary filter architecture, the “measurement” or
“observable” that is input to the Kalman filter is the difference between the INS
position and the “position” (distance) measured by the radar:
z = posins − posradar (17.11)
Equation (17.11) is the observable that will be input to the Kalman filter. For the sake
of deriving the measurement equation, however, we model the measurements as the
sum of the true position and the measurement errors. Thus:
Given our definition of the state vector in this example, the Kalman filter
measurement equation is thus:
⎡ ⎤
perr
z k = 1 0 0 ⎣ verr ⎦ + radarerr (17.15)
abias k
where the first matrix in (17.15) is the H matrix (i.e., the data matrix) and the last
term in the equation is the measurement noise vector (ν). Note that the two terms
in (17.15) are scalars in this example. The negative sign on the radar error has been
ignored since the sole purpose of the measurement noise vector is to enable us to define
the measurement noise covariance matrix R. The sign is irrelevant since it does not
have an impact on the covariance (actually, just the variance in this case since the
error is a scalar). Since we specified earlier that the radar has Gaussian measurement
noise with a standard deviation of 5 m, the measurement noise covariance matrix is
simply:
R = [(5)2 ] = [25] (17.16)
In actual practice, the middle expression in Equation (17.16) is a commonly used form
since it explicitly shows the standard deviation. Thus, the measurement equation has
enabled us to define the other half of the terms we need for the filter. Specifically: the
measurement vector (z), the data matrix (H ) and the measurement error covariance
matrix (R).
Recalling “Step 0” of the Kalman filter algorithm, we need to determine the initial
prediction for the state vector and the initial value of the prediction error covariance
matrix. Since the state vector consists of inertial system errors, and since we have no
a priori knowledge of these errors, our best initial prediction is simply zeroes:
⎡ ⎤
0
x̂−
1 =
⎣0⎦ (17.17)
0
258 Fundamentals of inertial navigation systems and aiding
Obviously the predictions given by (17.17) have uncertainty associated with them. The
primary components of the initial prediction error covariance matrix are the variances
of the errors of the elements in the initial state prediction. For this simple example,
we will assume the radar is used to initialize the position of the inertial and thus the
radar error (σradarerr = 5) dictates the initial inertial position
√ error. The variance of the
inertial velocity error can be, very conservatively, set to ( 10 ms )2 and the variance of
the accelerometer bias is conservatively set to (1 sm2 )2 . As is conventionally done, the
initial prediction error covariances (i.e., the off-diagonal elements) are ignored and
thus the matrix is set to:
⎡ ⎤
25 0 0
P1− = ⎣ 0 10 0⎦ (17.18)
0 0 1
Pk+ = (I − Kk Hk )Pk−
ELSE
x̂+ −
k = x̂ k
Pk+ = Pk−
END
x̂− +
k+1 = k x̂ k
−
Pk+1 = k Pk+ Tk + Qk
Thus, if no aiding data is available, the estimate is set equal to the prediction and
the estimation error covariance is set equal to the prediction error covariance. The
prediction steps for the next moment in time (i.e., the steps after “END”) are executed
Introduction to inertial aiding 259
at all times. When using Equation (17.9) to compute the state transition matrix, it
is important to remember the time interval (t) corresponds to the (high) rate at
which the Kalman loop is executed (and not the rate of the aiding data). Finally, it
should be noted that the above-described coasting procedure in some cases is unduly
computationally expensive since the prediction error covariance matrix is only needed
at the time of a Kalman update. In such cases alternative formulations can be used
which propagate the covariance matrix over the entire update interval.
0.5
0
m/s2
estimate
–0.5 truth
–1
0 50 100 150 200
time in seconds
Figure 17.6 Kalman filter accelerometer bias estimate for the rocket sled example.
Note that for this simulation, the accelerometer bias is a pure constant
and thus Q has been set to all zeros
8
4
m/s
–2
–4
0 50 100 150 200
time in seconds
Figure 17.7 Error in the Kalman-corrected inertial velocity for the rocket sled
example
25
aiding source error
corrected INS error
20
15
10
meters
–5
–10
–15
0 50 100 150 200
time in seconds
Figure 17.8 Error in the Kalman-corrected inertial position (i.e., distance) along
with the error of the aiding source (radar)
Introduction to inertial aiding 261
(distance) error and the radar measurement error. The filter clearly has eliminated the
drift of the inertial-only position error (Figure 17.3) and is significantly less noisy than
the radar measurement error. Since our purpose here is to introduce the concept of
inertial-aiding, we will not dwell on so-called filter “tuning” issues (i.e., performance
optimization).
It is important to remember that the complementary filter structure is allowing
the position and velocity output to retain the unbiased characteristics of the aiding
source while also retaining the reduced noise characteristics of the inertial system.
Remember also that there are nonlinear system dynamics going on at the same time.
The vehicle is accelerating in the middle of this profile and yet we are able to run a
linear Kalman filter and produce good results because of the complementary filter
structure. The filter is estimating the errors and not the total state (i.e., position and
velocity) of the vehicle. To the extent that the errors can be modeled in a linear way,
the complementary Kalman filter is very well suited for estimating them.
We set Q to all zeroes in the above example because there was no uncertainty in the
system dynamics (recall that in the Kalman filter for this example, the system consists
of the state vector of inertial errors). As we discussed before, specifying zero system
uncertainty will cause the filter eventually to think that its own predictions are perfect
and it would then place zero weight on the measurements. Of course, in reality, an
accelerometer bias is not a true bias but rather it is a slowly varying random process.
There are other errors as well in an actual accelerometer, but for now we will increase
the realism somewhat by showing what happens when the accelerometer bias has
some variation over time.
First-order Gauss–Markov processes are commonly used to model inertial sensor
errors in the Kalman filter (see the Appendix for a review of this type of random
process). For our simple sled-track example, modeling the accel bias as a first-
order Gauss–Markov process necessitates that we modify the continuous-time state
Equation (17.8) to:
⎡ ⎤⎡ ⎤ ⎡ ⎤
0 1 0 perr (t) 0
ẋ = Fx + η = ⎣0 0 1 ⎦ ⎣ verr (t) ⎦ + ⎣ 0 ⎦ (17.19)
−1
0 0 τacc abias (t) ηacc
where τacc is the time-constant of the first-order Gauss–Markov process and ηacc is the
continuous-time white noise input. There are only two changes that need to be made to
the previously described (constant accel bias) Kalman filter to accommodate the first-
order Gauss–Markov model of the accel bias: the state transition matrix and the system
noise covariance matrix. The state transition matrix can be obtained by evaluating
262 Fundamentals of inertial navigation systems and aiding
Equation (17.9) using the system dynamics matrix (F) from Equation (17.19). A first-
order approximation can be obtained by using the first two terms of the Taylor Series
of the matrix exponential:
Thus, the first-order approximation of the state transition matrix obtained from
(17.19) is:
⎡ ⎤
1 t 0
≈ ⎣0 1 t ⎦ (17.21)
0 0 1 − τt
acc
qk = σGM
2
(1 − e−2βt ) (17.23)
where σGM2
is the variance of the first-order Gauss–Markov process, β is the inverse
of the time-constant of the first-order Gauss–Markov process, and t is the sam-
pling interval of the first-order Gauss–Markov process. Recall that additional details
regarding this process are given in an appendix at the end of this book.
To illustrate the aforementioned concepts, we will modify the previous simula-
tion such that the accelerometer bias is simulated using a first-order Gauss–Markov
process with a variance of 0.015 (standard deviation of approximately 0.1225 sm2 ) and a
time-constant of 3,000 sec. To demonstrate optimum performance, the time-constant
in the Kalman filter ( F(3,3) ) is matched to the time constant of the simulated accel
bias and the non-zero element of Q is set equal to the value computed by (17.23) with
the sampling interval set to 1 milli-sec (note: for this example, qk is 10−8 sm2 ).
Given the long-time constant of this Gauss–Markov process (3,000 sec), the
trajectory we used previously is too short (only 200 sec) to be able to see the long
term variations in the accel “bias.” Thus, a new simulated vehicle trajectory is needed
and we will modify the previous one slightly. The period of 1 sm2 acceleration is started
at t = 130 sec and ends at t = 160 sec and the total length of the profile is extended to
1,500 sec (Note: the length of the run is not realistic for an actual sled track).
Figures 17.9–17.11 show the results of the simulation. Although not perfect, the
Kalman filter’s estimate of the accel bias does quite well in following the true bias.
The velocity and position errors both converge but are clearly more noisy than was
the case for the previous example.
Introduction to inertial aiding 263
0.25
0.2
0.15
0.1
m/s2
0.05
–0.05
–0.1
estimate
truth
–0.15
0 500 1,000 1,500
time in seconds
Figure 17.9 Kalman filter accelerometer bias estimate for the rocket sled example
with the accelerometer bias simulated and modeled as a first-order
Gauss–Markov process with a 3,000 sec time-constant
2.5
1.5
1
m/s
0.5
–0.5
–1
–1.5
0 500 1,000 1,500
time in seconds
Figure 17.10 Error in the Kalman-corrected inertial velocity for the first-order
Gauss–Markov accel bias example
264 Fundamentals of inertial navigation systems and aiding
20
aiding source error
corrected INS error
15
10
5
meters
–5
–10
–15
–20
0 500 1,000 1,500
time in seconds
Figure 17.11 Error in the Kalman-corrected inertial position (i.e., distance) along
with the error of the aiding source (radar) for the first-order
Gauss–Markov accel bias example
0.5
0
m/s2
estimate
–0.5 truth
–1
0 500 1,000 1,500
time in seconds
Figure 17.12 Kalman filter accelerometer bias estimate for the rocket sled
example with the accelerometer bias simulated as a pure constant
but with an unmodeled scale factor error
8
4
m/s
–2
–4
0 500 1,000 1,500
time in seconds
Figure 17.13 Error in the Kalman-corrected inertial velocity for the unmodeled
scale factor error example. The true acceleration in the profile is
non-zero from 130 to 160 sec
40
radar error
corrected INS error
20
0
meters
–20
–40
–60
–80
0 500 1,000 1,500
time in seconds
Figure 17.14 Error in the Kalman-corrected inertial velocity for the unmodeled
scale factor error example. The true acceleration in the profile is
non-zero from 130 to 160 sec
Introduction to inertial aiding 267
then gradually decays. The velocity error has a profound impact on the position error
(Figure 17.14). Although the simulated scale factor error was unrealistically large, the
simulation clearly indicates the negative impact of unmodeled errors in the Kalman
filter.
There are two main approaches to deal with unmodeled errors in the Kalman filter.
The first approach is to inflate key elements of the system noise covariance matrix. The
second approach is to model explicitly the previously unmodeled errors. We will take
a look at each approach in turn.
By inflating the Q matrix, we are telling the filter that there is uncertainty in the
system that is not taken into account by the state transition matrix. In the current
example, there are three states: position error, velocity error and accelerometer bias.
Although the true accelerometer bias is being simulated as a pure constant, we can
account for the presence of the scale factor error by adding system noise on the accel
bias state. Thus, instead of Q being a matrix of all zeros, we make Q(3,3) a non-zero
value (10−8 for the simulation results shown here).
The results are shown in Figures 17.15–17.17. We see that the results are noisy.
That should not be surprising. When we increase Q, we are telling the filter that there
is some inherent system uncertainty and as a result it is not going to be able to filter
as much. It is not going to be able to smooth the results as well. The errors exhibit
excursions during the time period of the true acceleration (130–160 sec) and thus is
the time period when the scale factor error manifests itself (recall Equation (17.24)).
However, unlike the previous example where the scale factor error was completely
ignored, we see that with the inflated Q the errors converge back to zero instead of
diverging even after the true acceleration has stopped.
0
m/s2
estimate
–0.5 truth
–1
0 500 1,000 1,500
time in seconds
Figure 17.15 Kalman filter accelerometer bias estimate for the rocket sled
example with the accelerometer bias simulated as a pure constant
but with a scale factor error accommodated through increased
system noise covariance
4
m/s
–2
–4
0 500 1,000 1,500
time in seconds
Figure 17.16 Error in the Kalman-corrected inertial velocity for the scale factor
error with inflated Q example. The true acceleration in the profile is
non-zero from 130 to 160 sec
Introduction to inertial aiding 269
25
radar error
20 corrected INS error
15
10
5
meters
–5
–10
–15
–20
0 500 1,000 1,500
time in seconds
Figure 17.17 Error in the Kalman-corrected inertial position (i.e., distance) along
with the error of the aiding source (radar) for the scale factor error
with inflated Q example. The true acceleration in the profile is
non-zero from 130 to 160 sec
where τab and τasf are the time-constants of the first-order Gauss–Markov process
models for the accel bias and accel scale factor error, respectively, and ηab and ηasf
are the continuous-time white noise inputs for the Gauss–Markov processes.
First consider the system dynamics matrix (the 4 × 4 matrix in Equation (17.25)).
Note that the upper left 3 × 3 is identical to what we had previously for the case of a
time-varying accel bias. What happens if the accel bias is truly a constant? Just make
the time constant (τab ) a very large value. In reality, the accel bias is going to have
some variation and it is very commonly modeled as a Gauss–Markov process.
The fourth column and the fourth row of the system dynamics matrix deal with
the accel scale factor error. We can see there are only two nonzero elements. As
mentioned above, the scale factor error itself is modeled as a first-order Gauss–
Markov process with a time constant of τasf . Note the (2,4) element contains the true
value of acceleration. Why? Because the derivative of the velocity error is equal to
the accel bias plus the scale factor error multiplied by the true value of acceleration.
Now you are probably thinking, “Wait a minute. If I knew the true value of
acceleration then my problem would be solved and I wouldn’t need the Kalman
filter.” That is true. We have to use an estimate of the true acceleration instead. With
navigation-grade instruments, it suffices to use the raw accelerometer measurement
itself. Alternately, the Kalman-corrected accelerometer values can be used (after the
filter has converged, of course).
270 Fundamentals of inertial navigation systems and aiding
Since the system dynamics matrix is now time-varying (due to the (2,4) element),
the state transition matrix is also time-varying and thus cannot be pre-computed. It
has to be computed (using some approximation of Equation (17.9)) each time the
Kalman loop is executed. The Q matrix is a 4 × 4 and the (3,3) and (4,4) elements can
be determined from Equation (17.23) based on the estimated variance of the accel
bias and scale factor error for the particular sensor being used.
A variation of the previous simulation, created to test the scale factor estimation,
utilizes a vehicle trajectory of 1,500 sec duration with a constant 2 sm2 acceleration from
200 to 230 sec and a 1 sm2 acceleration from 1,100 to 1,130 sec. In order to demonstrate
the ideal performance of the scale factor error estimation, both the accelerometer bias
and scale factor errors are simulated as pure constants (acceleration white noise was
added, though, to increase realism). However, the filter models both the accel bias
and scale factor errors as first-order Gauss–Markov processes with time-constants of
3,000 sec.
The results are shown in Figures 17.18–17.21. The accelerometer bias estimate
converges quickly and remains so for the rest of the run. The accelerometer scale
factor error estimate does not converge until the non-zero true acceleration occurs
starting at t = 200 sec. After convergence, the system noise (Q) driving the Gauss-
Markov process of the scale factor error state causes the estimate to gradually drift
away from the truth. When the next true acceleration occurs starting at t = 1,100 sec,
the estimate re-converges and then gradually starts to drift again. Figure 17.20 shows
0.8
estimate
truth
0.6
0.4
m/s2
0.2
–0.2
–0.4
0 500 1,000 1,500
time in seconds
Figure 17.18 Kalman filter accelerometer bias estimate for the rocket sled example
with the accelerometer bias and scale factor errors simulated as pure
constants. The scale factor error is explicitly estimated by the filter
1.2
estimate
truth
1
0.8
SF error in ratio
0.6
0.4
0.2
–0.2
0 500 1,000 1,500
time in seconds
Figure 17.19 Kalman filter accelerometer scale factor error estimate for the rocket
sled example with the accelerometer bias and scale factor errors
simulated as pure constants. The periods of non-zero true
acceleration occur from 200 to 230 sec and from 1,100 to 1,130 sec
0
m/s
–1
–2
–3
–4
0 500 1,000 1,500
time in seconds
Figure 17.20 Error in the Kalman-corrected inertial velocity. Scale factor error is
being estimated by the filter. The periods of non-zero true
acceleration occur from 200 to 230 sec and from 1,100 to 1,130 sec
272 Fundamentals of inertial navigation systems and aiding
20
aiding source error
corrected INS error
15
10
5
meters
–5
–10
–15
–20
0 500 1,000 1,500
time in seconds
Figure 17.21 Error in the Kalman-corrected inertial position (i.e., distance) along
with the error of the aiding source (radar). Accelerometer scale
factor error is being estimated by the filter. The periods of non-zero
true acceleration occur from 200 to 230 sec and from 1,100 to
1,130 sec
that the velocity converges but does exhibit some increased noise during the periods
of acceleration. Finally, Figure 17.21 shows the position error is well behaved.
17.13 Conclusions
We have demonstrated that aiding of the inertial system with external measurements
in a complementary Kalman filter architecture works very well if we have good error
models. The presence of unmodeled errors, however, can cause filter divergence.
We can accommodate unmodeled errors by increasing the system noise covariance
matrix or by explicitly modeling and estimating these errors. In practice, however,
some unmodeled errors always exist and thus some inflation of the Q matrix is always
necessary for stable performance.
References
[1] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
[2] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
Chapter 18
Inertial aiding in two dimensions
18.1 Introduction
In an earlier chapter, we explored how the Kalman filter does an excellent job of
taking the radionavigation system geometry into account when forming its estimates
but does not do well in handling nonlinear system dynamics. In the previous chapter,
we introduced the concept of the complementary filter and applied it to a simple
one-dimensional aided-inertial navigation problem. Since the filter in the aided case
is estimating inertial errors, instead of the total aircraft state, the non-linearities
arising from a dynamic trajectory were not a problem. An aided-inertial architecture
is founded on the principle that the inertial navigation system does an excellent job
of determining the position, velocity and attitude of the vehicle in the short term and
thus the Kalman filter is not needed for that task. The purpose of the aiding is to
prevent the inertially determined vehicle state from drifting off over the long term.
In this chapter, we extend the inertial aiding concept to two dimensions. We
will use a two-dimensional radionavigation system (DME–DME) to aid a simplified
inertial navigation system. We will be estimating inertial errors and one way to view
this is that the stand-alone inertial position solution provides the “nominal” trajectory
used to linearize the system and measurement equations to make them suitable for the
Kalman filter. This implies that the inertial errors may be modeled linearly. In order
to introduce some key concepts in this chapter, we will use a very simple inertial error
model. In the next chapter, we will develop a significantly more detailed inertial error
model but the fact remains that the model must be linear in order to be suitable for
the Kalman filter. We will discover in a later chapter that once the inertial error grows
sufficiently large the linearity assumption breaks down. We will also discover that the
typical solution to this problem is to feedback the estimated errors as corrections to
the inertial system thus keeping the inertial errors small.
For the moment, we will keep things simple. Before we can apply the comple-
mentary filter architecture to INS and DME, however, we must deal with the fact that
the two systems do not provide measurements in the same domain. Recall that in the
sled track example both the inertial system and the radar provided measurements of
along-track distance. This was important since the Kalman filter observable (i.e., the
“z” vector) was formed by subtracting the range measurements from each system.
However, we cannot do this directly with INS and DME. The INS provides estimates of
position, velocity and attitude. The DME, on the other hand, provides measurements
274 Fundamentals of inertial navigation systems and aiding
of line-of-sight distance (i.e., range) between the vehicle and each ground transpon-
der. Thus one system provides position-domain information whereas the other system
provides range-domain information and of course there is a non-linear relationship
between the two. Nevertheless, we must find a way to difference the inertial data with
the DME–DME data.
There are two primary ways to do this: (a) convert the INS data into a
range-domain equivalent; or (b) first compute a position solution using the DME
measurements. The former is referred to as “tight-coupling” and utilizes the aiding
system data in its native domain. The later is referred to as “loose-coupling” and
utilizes the aiding system data after it has been used to compute a position solution.
We will explore each in turn.
+
INS Σ
position,
velocity, INS-estimated position –
attitude
position-to-range
conversion inertial position,
velocity and
+ attitude errors
–
range Kalman
DME Σ
measurements Filter
attitude errors and sensor errors). Accordingly, the measurement equation can be
adapted from Equation (15.33):
⎡ ⎤ ⎡ins_x_pos_err ⎤
xINS −xDME1
0
yINS −yDME1
0 ⎢
ρ1 ⎢ ρ1INS ρ1INS ⎥ ⎢ ins_x_vel_err ⎥
⎥ ν1
=⎣ ⎦ ⎣ins_y_pos_err ⎦ + ν
ρ2 xINS −xDME2
0
yINS −yDME2
0 2
ρ2INS ρ2INS ins_y_vel_err
(18.3)
where, as before, ν1 and ν2 are the DME ranging measurement errors. The measure-
ment error covariance matrix is thus the same as in Chapter 15 (a diagonal matrix with
elements of 225 for the case of independent white Gaussian noise with a standard
deviation of 15 m).
In order to ease into the topic and keep things initially simple, we will also obtain
the system equation by adapting equation (15.29):
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
ins_x_pos_err 1 t 0 0 ins_x_pos_err 0
⎢ ins_x_vel_err ⎥ ⎢0 1 0 0⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ =⎢ ⎥ ⎢ ins_x_vel_err ⎥ + ⎢wxvel ⎥ (18.4)
⎣ins_y_pos_err ⎦ ⎣0 0 1 t ⎦ ⎣ins_y_pos_err ⎦ ⎣ 0 ⎦
ins_y_vel_err k+1 0 0 0 1 ins_y_vel_err k wyvel
where wxvel and wyvel account for unmodeled effects on the inertial velocity error.
This linear model of inertial error is a poor approximation. Accelerometer errors,
for example, give rise to quadratic position errors. We will live with the approximation
for the moment, though, to focus on other aspects of the integration. A more detailed
inertial error model will be presented in a subsequent chapter. The system noise
covariance matrix (Q) has the same form as before (Equation 15.32) but the scaling
term can be greatly reduced since it is only accounting for inertial error growth and
not vehicle dynamics.
For the simulation presented herein, we will use the same nonlinear flight path
used in the DME–DME EKF (Fig. 15.11). In order to generate non-trivial iner-
tial errors over the very short flight, accelerometer biases of 300–500 micro-gs
were simulated along with gyro biases of 0.1–0.3 degree/hour. Gyro white noise of
0.05–0.1 deg/root-hour was also simulated. The resulting inertial east and north posi-
tion errors are plotted in Figure 18.2. Note that a 200-m bias has been added to both
errors in order to simulate the effect of a longer-term inertial drift.
With the scaling parameter (S) in the Q matrix set to 0.01, the INS/DME Kalman
filter performance is illustrated in Figures 18.3–18.6. In comparison to the DME-
only results presented in Chapter 15, the integration of INS with DME is clearly
superior. Low-noise is achieved without vehicle dynamics-induced biases. The only
performance issue of concern is the presence of a low-frequency error oscillation
that is most noticeable in the x position error (Figure 18.4). This, however, is due to
the non-linear inertial position error (Figure 18.2) that is not properly modeled by
the Kalman filter (Equation (18.4)). As mentioned earlier, the oversimplified inertial
error model represented by Equation (18.4) will be replaced in a subsequent chapter
276 Fundamentals of inertial navigation systems and aiding
250
200
INS position error [m]
150
100
50
x
y
0
0 50 100 150
run time [sec]
truth
3,500
estimate
3,000
2,500
2,000
y position in meters
1,500
1,000
500
–500
–1,000
–1,500
Figure 18.3 True flight path and tightly coupled DME/INS Kalman filter results
Inertial aiding in two dimensions 277
60
60
40
y pos err [m]
20
0
–20
–40
–60
0 50 100 150
run time in seconds
100
50
x vel [m/s]
–50 estimate
truth
–100
0 50 100 150
100
estimate
50
truth
x vel [m/s]
60
40
20
0
0 50 100 150
run time in seconds
Figure 18.5 True velocity and tightly-coupled DME/INS Kalman filter results
278 Fundamentals of inertial navigation systems and aiding
–10
x vel error [m/s]
–20
–30
–40
0 50 100 150
5
y vel error [m/s]
–0
–10
–15
–20
0 50 100 150
run time in seconds
with one that is much more detailed. Finally, the transient that occurs in the beginning
of the velocity error (Figure 18.6) could be reduced through filter tuning (specifically,
optimizing the initial prediction error covariance matrix).
where the 2×4 matrix is the data matrix (H ) and ν1 and ν2 are the multi-DME position
solution errors.
The R matrix is the covariance of the multi-DME position solution error. For
independent white Gaussian noise ranging errors, the position error covariance matrix
is given by:
R = σrng
2 T
(HDME HDME )−1 (18.7)
where σrng 2
is the variance of the DME ranging error and HDME was defined in
Equation (15.7) for the two-DME case. It is important to note that the data needed to
compute (18.7) may not necessarily be available when designing the Kalman filter.
For example, the interface on the radionavigation unit (a scanning DME interrogator
in our case) may not necessarily provide the data needed to compute the H matrix.
In some cases, only a position solution and a figure-of-merit (FOM) are provided.
Furthermore, the accuracy of the FOM may be marginal in some cases. As a result,
there may be situations in which some crude approximation of R may be all that is
realizable.
It is also crucially important that the integrated navigation Kalman filter designer
know whether the position solution (out of the radionavigation unit) is computed with
an ordinary-least squares estimator or with recursive estimator such as a Kalman fil-
ter. If the solution is computed with a least squares estimator, then every data point is
statistically independent. This is the ideal situation since the Kalman filter assumes
that each data set (z) input is statistically independent. Conversely, if the radionav-
igation position solution is formed with a Kalman filter, then the output must be
subsampled (i.e., decimated) to a lower data rate. For instance, if the radionavigation
filter’s time constant is 10 sec, then only one sample can be input to the integrated
navigation filter every 20–30 sec (i.e., 2–3 time-constants). This situation of having
multiple Kalman filters in sequence is known as the “cascaded filter problem” [1].
Equations (18.5)–(18.7) define the Kalman filter parameters (z, H and R) that
distinguish the loosely coupled architecture from the tightly coupled architecture.
Although the radionavigation geometry changes slightly over the flight path, for
the simulation results that follow R is approximated with a diagonal matrix with
elements of 225 (which assumes a ranging error standard deviation of 15 m, unity
DOPs, and ignores the off-diagonal covariance values). With all other aspects of the
simulation identical to that described earlier for the tightly coupled architecture, the
loosely coupled results are shown in Figures 18.7–18.10. In this example, the loosely
coupled architecture provides nearly identical results to those of the tightly coupled
architecture.
280 Fundamentals of inertial navigation systems and aiding
truth
3,500 estimate
3,000
2,500
2,000
y position in meters
1,500
1,000
500
0
–500
–1,000
–1,500
Figure 18.7 True flight path and loosely coupled DME/INS Kalman filter results
60
40
x pos err [m]
20
0
–20
–40
–60
0 50 100 150
60
40
y pos err [m]
20
0
–20
–40
–60
0 50 100 150
run time in seconds
100
50
x vel [m/s]
–50 estimate
truth
–100
0 50 100 150
100
estimate
80 truth
x vel [m/s]
60
40
20
0
0 50 100 150
run time in seconds
Figure 18.9 True velocity and loosely coupled DME/INS Kalman filter results
–10
x vel error [m/s]
–20
–30
–40
0 50 100 150
30
y vel error [m/s]
20
10
–10
0 50 100 150
run time in seconds
3,500
3,000
2,500
DME 1 DME 2
2,000
y position in meters
1,500
1,000
500
0
–500
–1,000
–1,500
Figure 18.11 Location of the two DME ground transponders to generate extremely
high YDOP values over the course of the flight path
Inertial aiding in two dimensions 283
The loosely coupled architecture utilizes the position estimate formed by the
radionavigation system. Given the horrible geometry, we would expect the OLS posi-
tion estimator to perform poorly and, as shown in Figure 18.12, this is indeed the
case.
Since the accuracy of the OLS solution is so poor, it would be expected that
the loosely coupled architecture will not perform well. However the filter uti-
lizes the geometry information provided through the R matrix Equation (18.7) to
reduce the weight on the measurements. The results (Figures 18.13–18.16) show that
the filter does this rather successfully.
A close analysis of the loosely coupled filter performance would show the results
are significantly affected by the use of the poor OLS position results to compute the
H matrix in Equation (18.7). The wildly wrong position results (Figure 18.12) cause
the computed YDOP to be much lower than the truth. As a result, the filter places too
much weight on the measurements. Better performance could have been achieved by
using the Kalman-corrected position output to compute H and then R.
Under the same geometry, the tightly coupled filter results are shown in
Figures 18.17–18.20. Despite the bad geometry, the filter appropriately weights the
measurements and shows good performance.
4,000 truth
estimate
3,000
y position in meters
2,000
1,000
–1,000
Figure 18.12 True flight path and ordinary least squares position estimation
results
284 Fundamentals of inertial navigation systems and aiding
truth
3,500 estimate
3,000
2,500
2,000
y position in meters
1,500
1,000
500
–500
–1,000
–1,500
Figure 18.13 True flight path and loosely coupled DME/INS Kalman filter results
with bad geometry
60
40
x pos err [m]
20
0
–20
–40
–60
0 50 100 150
100
0
y pos err [m]
–100
–200
–300
–400
0 50 100 150
run time in seconds
Figure 18.14 Loosely coupled DME/INS Kalman filter position errors with bad
geometry
100
50
x vel [m/s]
0
–50 estimate
truth
–100
0 50 100 150
100
estimate
80 truth
y vel [m/s]
60
40
20
0
0 50 100 150
run time in seconds
Figure 18.15 True velocity and loosely coupled DME/INS Kalman filter results
with bad geometry
10
x vel error [m/s]
–10
–20
0 50 100 150
10
y vel error [m/s]
–10
–20
0 50 100 150
run time in seconds
Figure 18.16 Loosely coupled DME/INS Kalman filter velocity errors with bad
geometry
4,000
truth
estimate
3,000
y position in meters
2,000
1,000
–1,000
Figure 18.17 True flight path and tightly coupled DME/INS Kalman filter results
with bad geometry
60
x estimation error in meters
40
20
0
–20
–40
–60
0 50 100 150
200
y estimation error in meters
150
100
50
–50
0 50 100 150
run time in seconds
Figure 18.18 Tightly coupled DME/INS Kalman filter position errors with bad
geometry
100
50
x vel [m/s]
0
–50 estimate
truth
–100
0 50 100 150
100
estimate
50 truth
y vel [m/s]
60
40
20
0
0 50 100 150
run time in seconds
Figure 18.19 True velocity and tightly coupled DME/INS Kalman filter results
with bad geometry
10
x vel error [m/s]
–10
–20
0 50 100 150
10
y vel error [m/s]
–10
–20
0 50 100 150
run time in seconds
Figure 18.20 Tightly coupled DME/INS Kalman filter velocity errors with bad
geometry
288 Fundamentals of inertial navigation systems and aiding
Reference
[1] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® Exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
Chapter 19
Inertial error modeling
19.1 Introduction
At this point, we have established almost all of the necessary background finally to
design a Kalman filter to aid the inertial system with GPS. The one remaining item is
the determination of the inertial error model. Recall that the GPS/INS complementary
Kalman filter estimates the errors in the INS. It does not estimate the total position,
velocity and attitude of the vehicle. In order to design the Kalman filter, we need
to define the system equation that models how the state variables change over time.
The states are the inertial position error, inertial velocity error, inertial attitude error,
and some related parameters that we will describe later. So before we can start the
Kalman filter design, we need a model that describes how the inertial errors behave.
The three commonly used reference frames in inertial navigation error analysis were
described as early as 1963 by Pinson [1] and more recently (i.e., in the era of strapdown
systems) in 1993 by Siouris [2] and in 2007 by Pue [3]. Before we define them, let us
first consider the notional true and computed positions depicted on a portion of the
Earth as illustrated in Figure 19.1. The “computed position” is the position computed
by the inertial navigation system. The true and computed positions are obviously
separated by the inertial system position error.
Figure 19.1 also illustrates two of the reference frames needed for the error
analysis. For the sake of illustration convenience, east-north-up (ENU) frames are
shown (as opposed to NED frames, just for the sake of visual clarity). Regardless of
the convention chosen, the “True” frame is the frame located at the true position and
is aligned with the reference directions. The “Computer” frame is the frame located
at the computed position and is aligned with the reference directions (at the computed
position).
A two-dimensional depiction of the three reference frames is shown in
Figure 19.2. The third frame is the so-called “Platform” frame or p-frame. In a gim-
baled system, the platform frame is the frame defined by the accelerometers that are
mounted on the physical gimbaled platform (ignoring non-orthogonality of the accel
axes). In a strapdown system, the platform frame is the reference frame computed
290 Fundamentals of inertial navigation systems and aiding
Computed Position
Latitude Error
True Position
Longitude
Error
Figure 19.1 Depiction of the true position and inertial system-computed position
along with an east-north-up coordinate frame at each [3]
ame
t-fr p-frame
p-frame
Φ c-fr
ame
Ψ
δθ
Figure 19.2 Depiction of the angular relationships between the True (t), Platform
(p) and Computer (c) frames. The t-frame is located at the true
position and the c-frame is located at the computed position. δ is the
vector angular position error. φ is the vector angular difference
between the t-frame and the p-frame and thus is the total computed
attitude error. ψ is the vector angular difference between the c-frame
and the p-frame. The total attitude error, φ, is the sum of δ and ψ [3]
by the inertial system (e.g., the computed navigation frame or computed n-frame).
This is not to be confused with the aforementioned c-frame. The p-frame is the actual
orientation of the actual accelerometer triad (in a gimbaled system) and is obviously
located at the true position of the vehicle. The c-frame is a frame which is locally-level
at the (erroneously) computed position. Figure 19.2 depicts the three angular vectors
that relate the three frames:
T
δ = δx δy δz (19.1)
T
φ = φx φy φz (19.2)
T
ψ = ψx ψ y ψz (19.3)
Inertial error modeling 291
where the “T ” denotes vector transpose (not the True frame). δ is the vector angular
position error and is the angular difference between the True and Computer frames. φ
is the vector attitude error and is the angular difference between the True and Platform
frames. ψ is the angular difference between the Platform and Computer frames and
has a physical significance that we will explore shortly. Although all three angular
vectors are errors, the “δ” is only used in the case of the angular position error since
the true position angles are sometimes denoted by:
T
= x y z (19.4)
This is the convention we will use but it is not universal, unfortunately, and some
authors will denote the position error with . Furthermore, Equation (19.1) provides
some potential for confusion since a similar symbol is used to denote the incremental
angular measurements provided by the gyros (e.g., the “delta thetas”). In this book,
the convention is that incremental angular measurements are denoted θ (with an
upper case “delta” and a lower case “theta”). Generally this potential ambiguity may
be resolved by the context in which the symbols are being used.
As mentioned above, the error in the inertially determined attitude (φ) is the
difference between the true frame and the platform frame. Similarly, the angular
position error (δ) is the difference between the true frame and the computer frame.
But what is the purpose of the so-called “psi-angle” (ψ)? Since the psi-angle is the
difference between the platform frame and the computer frame, it follows that:
φ = δ + ψ (19.5)
In other words, the total attitude error can be viewed as consisting of two components.
δ is the component of attitude error that is strictly due to position error. Note that
the computer frame is locally level and correctly points in the reference directions
(e.g., ENU or NED) but is nevertheless rotated with respect to the true frame. Thus,
ψ is the remainder of the attitude error. As we will see shortly, ψ is driven by the
errors in the gyros (whereas δ is not a direct function of the gyro errors). Thus, it can
be said that δ is the component of attitude error due to position error and ψ is the
component of attitude error that is due to gyro error. This approach decouples some
of the error equations and makes the analysis a little bit simpler. It is a commonly
used technique.
If you are still struggling with the notion of “attitude error due to position error,”
consider the following: assume an inertial navigation system is mounted in a stationary
vehicle and is perfect in every way except for one level accelerometer. The gyros are
perfect, the initialization is perfect, the knowledge of gravity is perfect, et cetera (for
the sake of this example, ignore Earth rotation). But one of the level accelerometers
has a bias. So what happens over time? The INS erroneously computes that it is
moving in the direction of the accelerometer bias. Due to Earth curvature, transport
rate gets applied to the computed navigation frame (i.e., the INS adjusts what it
thinks is local level). In a gimbaled system, torquing commands are computed that
physically torque the platform (in this case, erroneously away from the true local
level). In a strapdown case, the INS adjusts the body-to-nav direction cosine matrix
(or quaternion) to account for this perceived nav-frame rotation.
292 Fundamentals of inertial navigation systems and aiding
Now look back at Figure 19.2. Although the INS is located at the true position,
the accel bias, at some point, causes the INS to think that it is at the (erroneously) com-
puted position. Since the only error in the whole system is the accel bias, the computed
navigation frame is the c-frame shown in the figure. In this example, ψ = 0 since
there are no gyro errors. Thus in this example φ = δ and the c-frame and p-frame
are coincident. There is attitude error in this case, but it is due only to position error.
In general, of course, there will be both position errors and gyro errors. As a
result, in general the three reference frames are not coincident and all three angle
error vectors in (19.5) are non-zero.
There are two primary approaches to the development of the inertial error model.
One, sometimes referred to as the “perturbation” or “phi-angle” approach, derives the
equations for φ directly. This obviously has the advantage of providing the equations
that describe the total attitude error (it also provides a direct description of velocity
error among other advantages). An alternative, known as the “psi-angle” approach,
derives separate equations for ψ and for δ. The two can then be combined via
(19.5) to determine the total attitude error (as we will see, velocity error can then be
determined as well).
At first the psi-angle approach appears to be a longer way to achieve the same
result as the phi-angle approach. However, the psi-angle approach effectively de-
couples the error equations in such a way as to make them easier to code and debug.
This makes the psi-angle approach a good way to ease into the topic of inertial error
modeling. However, it must be emphasized that both approaches are widely used
throughout the industry. They are derived and compared in the seminal article by
Benson [4]. At this point in our study, the reader should simply be aware that the
phi-angle approach consists of a separate set of error equations that can be utilized
in the Kalman filter just as well as the psi-angle approach. For now, we will focus on
the psi-angle approach.
where δR is the vector of linear (not angular) components of position error and δV is
the vector of velocity error components. δf is the error in measured specific force. δg
is the error in computed gravity. δωib is the error in measured angular rate. The angular
rate term in (19.6) is transport rate and the angular rate term in the cross-product of
(19.8) is spatial rate.
The reader is referred to the references for the details of the derivations. Still, we
need to achieve some level of comfort with the results. As Benson describes [4], to
a first-order approximation, any given error quantity (e.g., ψ, δV , δR, δf , δω) may
be interchangeably expressed in any of the three frames (t, p, c). Thus, for example,
to first order: δV t = δV c . The first-order approximation holds very well so long as
the position angle errors and psi angle components are small (a good assumption for
nav-grade inertial navigation systems). Note also that the use of the true frame in
equation (19.6) is meant to indicate that the results are valid in any “true” frame (e.g.,
n-frame, w-frame, et cetera).
The use of the computer frame in Equation (19.7) is the direct result of the use
of the psi-angle error model. As shown by Benson [4], the perturbation error model
yields an expression directly for the velocity error expressed in the true frame. Strictly
speaking, the velocity error determined from the use of the psi-angle model must be
converted from the computer frame to the true frame for it to be useful. However, if the
position angle errors are small (i.e., the first-order approximation mentioned earlier),
there is little difference between the velocity error expressed in the computer frame or
the true frame. If the INS is operated over long periods of time without external aiding,
however, the position angle errors may no longer be small and the differences between
frames may no longer be negligible. Benson [4] provides simulation examples for a
high speed aircraft (592 knots) traveling either due east or due west at high latitude
(75 deg N) with either an east accelerometer bias of 100 micro-g or a north gyro bias
of 0.01 deg/hour. In each case, the difference in the north velocity errors computed
with the perturbation approach and the psi-angle approach becomes non-trivial after
approximately one- to two-tenths of an hour (the east velocity errors are identical for
both approaches for these scenarios). This is somewhat of an extreme case for aircraft
applications. Significant differences would take longer to manifest at lower latitudes
and/or lower true speed.
Four changes are needed in Equations (19.6)–(19.8) to make them more useful
for real-time error estimation in the Kalman filter of an aided-inertial system. The
first is the spatial rate term in Equation (19.8). In real-time, the system thinks the
INS is located at the computed position and thus computes spatial rate (the sum of
earth rate and transport rate) in the computer frame. It is, therefore, helpful to replace
(19.8) with an equivalent expression in which the platform-frame terms are replaced
with their equivalent computer-frame terms.
The second change is the replacement of ψ p with ψ c in Equation (19.7). As men-
tioned earlier, to first order the two are the same. Furthermore, the change maintains
the explicit coupling between (19.8) and (19.7).
The third change is in Equation (19.6) and involves expressing the equation
in the computer frame instead of the true frame. The relation holds as long as the
position angle errors are small. Further, it clarifies the direct coupling between (19.6)
294 Fundamentals of inertial navigation systems and aiding
and (19.7). More specifically, as will be developed later, the Kalman filter exploits
(19.7) in its estimation of the velocity error. The velocity error, in turn, is coupled to
(19.6) that is exploited in the estimation of position error. Again, the use of the error
equations in the Kalman filter will be developed later. With the aforementioned three
(of four) changes, the error equations take a form similar to that derived by Pue [3]:
c
δ Ṙ = −ωcec × δRc + δV c (19.9)
c
δ V̇ = Cbc δf b + δg − ψ × f −
c c c
(2ωiec + ωec
c
) × δV c
(19.10)
c
ψ̇ = −ωcic × ψ c − Cbc δωbib (19.11)
The fourth and final change deals with the fact that, in real time, the system does
not have access to the body-to-computer DCM. The presence of gyro errors causes
the system only to have access to the body-to-[estimated local level frame] DCM.
Frequently the chosen local level reference frame is the navigation (or wander frame)
and thus the system only has access to the body-to-estimated-nav DCM. As long as
ψ is small (a good assumption for nav-grade IMUs), then:
latitude and zero altitude can be used, for example. Since the Earth is best described
by an ellipsoid with two orthogonal radii of curvature, the geometric mean radius of
the Earth at 45 degrees latitude can also be used. For more precision, the local values
for gravity and earth radii may be used. Strictly speaking, altitude can be included in
the denominator of the horizontal terms (in addition to the vertical). However, to first
order this is not necessary.
Equation (19.13) can be derived from the horizontal and vertical single-channel
error models for the INS described in an earlier chapter. The horizontal model (which
yielded Schuler oscillations) shows the feedback path consists of the attitude error
multiplied by the nominal value of gravity. Since (19.13) (and 19.10) are being eval-
uated in the computer frame, however, the attitude error is equal to the position angle
error (). To first order, the horizontal components of position angle error are
given by RδR0 . Recall also that the negative sign is needed to account for the negative
feedback of gravity in the horizontal channel. The vertical component of (19.13) may
be obtained directly from the INS vertical channel error analysis.
⎡ ⎤ ⎡ ⎤⎡ ⎤
δ Ṙ [−ωcec ×] I 0 δR
⎢ ⎥ ⎢ ⎥
⎣δ V̇ ⎦ = ⎣ W [−(2ωcie + ωcec )×] [ f c ×] ⎦⎣δV ⎦
ψ̇ 0 0 [−(ωcie + ωcec )×] ψ
⎡ ⎤⎡ ⎤
0 0 0 0
+ ⎣0 Cbc 0 ⎦⎣ δf b ⎦ (19.14)
0 0 −Cbc δωbib
where “0” is a 3×3 matrix of zeros, “I ” is a 3×3 identity matrix, W is the 3×3
matrix from (19.13) and the terms in square brackets with the × at the end are the
skew-symmetric matrix forms (also known as cross-product form) of the respective
vectors. The first term after the equal sign is thus a 9×9 matrix. It is the core of the
inertial error model. A more compact form of (19.14) is:
296 Fundamentals of inertial navigation systems and aiding
⎡ ⎤ ⎡ ⎤
δ Ṙ [−ωcec ×] I 0 ⎡ ⎤
⎢ ⎥ ⎢ ⎥ δR
⎣δ V̇ ⎦ = ⎢ [−(2ωcie + ωcec )×] [ f ×] ⎥⎣δV ⎦
c
⎣ W ⎦
ψ̇ ψ
0 0 [−(ωcie + ωcec )×]
⎡ ⎤
0 0
⎥ δf
b
⎢ c
+ ⎣Cb 0 ⎦ (19.15)
δωib
b
0 −Cbc
Equation (19.14) or (19.15) can be abbreviated in conventional state-space form as:
ẋ = FINS x + G u (19.16)
where x is the state vector consisting of the position error vector, velocity error vector
and psi-angle vector; FINS is the aforementioned 9×9 matrix; G is the input connection
matrix consisting of two instances of the body-to-computer DCM; and u is the input
vector consisting of the accelerometer error vector and gyro error vector.
Under the assumption that FINS is time-invariant, the discrete-time solution of
(19.16) is given by [5]:
xd [k + 1] = xd [k] + Gd ud [k] (19.17)
where
xd [k] = x[kT ] (19.18)
ud [k] = u[kT ] (19.19)
=e FINS T
(19.20)
T
Gd = eFINS λ G dλ (19.21)
0
the “d” refers to the discrete-time and T = the discrete-time interval (i.e., sampling
period).
Strictly speaking, the assumption of time-invariance is false. The components of
both the earth-rate and transport-rate vectors will change over time. More importantly,
the specific-force vector components will change appreciably during any kind of
acceleration (e.g., turns). We can, however, approximate FINS as being constant over a
sufficiently short time interval. Care must be taken, then, in choosing an appropriate
“T ” for the given vehicle dynamics. For static cases in which only sensor errors are
being modeled, time intervals on the order of 1–10 sec are acceptable.
The two discrete-time matrices in (19.17) can be approximated by:
2
FINS T2 F3 T 3
≈ I + FINS T + + INS + ··· (19.22)
2! 3!
N j
FINS T j+1
Gd ≈ G (19.23)
j=0
(j + 1)!
Inertial error modeling 297
where the total number of terms used is a design choice dependent upon the required
level of accuracy. Typically the total is less than 10. If T is sufficiently small, the two
matrices can be approximated with as few as two terms.
From Equation (19.14), we see that we can specify/simulate certain levels of
accelerometer and gyro errors (via ud ) and we can iteratively compute (19.17) in a
simulation to see how these errors impact the inertially derived position, velocity and
attitude. However, the results provided by the discrete-time state vector need some
modifications to put them into a more usable form.
The total attitude error is given by (19.5) but the first three elements of the state
vector are δR and not δ. For example, to do the conversion assuming δR has been
specified in the ENU frame (and thus no wander angle):
δR(2)
δ(1) = −
R
δR(1)
δ(2) =
R
δ(3) = tan (Lat)δ(2) (19.24)
Having specified the position angle error vector, the earth-to-nav DCM estimated by
the INS is given by:
Ĉen = Cec = Cnc Cen = (I − [δ×])Cen (19.25)
where the “hat” indicates an estimated quantity. From this DCM, the estimated latitude
and longitude values can be extracted and then compared to the truth to compute the
error.
Equation (19.5) can be used to compute the total attitude angle error vector (φ)
given δ (computed from δR) and ψ (obtained from the state vector). The total
attitude error can then be determined by first computing the estimated body-to-nav
DCM:
Ĉbn = Cnp Cbn = (I − [φ×])Cbn (19.26)
Estimated Euler angles can be extracted from this DCM and then compared to the
truth to compute the error.
Finally, note also that since the velocity error components are given in local-level
coordinates, they can be used directly (with the aforementioned assumption that the
position errors are sufficiently small such that the velocity error components are the
same in both the computer-frame and the true-frame).
The following plots illustrate the results of using the state-space inertial error model
to simulate a 0.01 deg/hour east gyro bias. Figure 19.3 shows the position and velocity
errors over a 4-hour period. As we would expect with an east gyro bias, the dominant
impact is on the latitude. We see a Schuler oscillation that rides on top of a longer
298 Fundamentals of inertial navigation systems and aiding
term variation. In addition, there is cross coupling due to earth rate. The presence of
earth rate causes a cross coupling between the east and north errors and so, although
the error starts off dominant in the north-south direction, eventually it cross couples
into east-west and we start to pick up longitude error over time as well. This is the
identical result we saw with the so-called “whole value” simulation discussed in the
earlier Inertial Error Simulation chapter. We also see identical behavior in the attitude
error (Figure 19.4). Figure 19.5 depicts the level components of δ. Recall that in
addition to its role as the angular position error vector, it is also the component of
attitude error due to angular position error.
Figure 19.6 shows the components of ψ. You can see they slowly vary over the
course of this simulation. Recall they are being driven by the gyro error. A gyro
bias is being simulated but the components of ψ are not increasing at a constant rate
because of the Coriolis term in the psi angle Equation (19.11). As mentioned above, a
side-by-side comparison of the results produced with the state-space error model and
a full inertial system simulation (under various input conditions) would show good
agreement. However, the first-order assumptions built into the state-space model will
gradually lose validity as the state variables grow over time.
0
Position Error (km)
–1
north
–2 east
–3
–4
0 0.5 1 1.5 2 2.5 3 3.5 4
0.2
Velocity Error (m/s)
–0.2
–0.4 north
east
–0.6
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in Hours
Figure 19.3 Inertial error state-space model position and velocity error results for
a stationary platform at 45 degrees North latitude and zero altitude
with an east gyro bias of 0.01 deg/hour
Inertial error modeling 299
0.1
0
Attitude Error in milli-radians
–0.1
–0.2
–0.3
–0.4 roll
pitch
yaw
–0.5
0 0.5 1 1.5 2 2.5 3 3.5 4
time in hours
Figure 19.4 Inertial error state-space model Euler angle components for a
stationary platform at 45 degrees North latitude and zero altitude with
an east gyro bias of 0.01 deg/hour
0.7
0.6
0.5
Theta Error in milli-radians
0.4
0.3
0.2
0.1
–0.1
dthetax
–0.2
dthetay
–0.3
0 0.5 1 1.5 2 2.5 3 3.5 4
time in hours
Figure 19.5 Inertial error state-space model position angle errors for a stationary
platform at 45 degrees North latitude and zero altitude with an east
gyro bias of 0.01 deg/hour
300 Fundamentals of inertial navigation systems and aiding
0.4
psix and psiy in milli-radians
0.2
0 psix
psiy
–0.2
–0.4
–0.6
0 0.5 1 1.5 2 2.5 3 3.5 4
0
psiz in milli-radians
–0.05
–0.1
–0.15
–0.2
–0.25
0 0.5 1 1.5 2 2.5 3 3.5 4
Time in hours
Figure 19.6 Inertial error state-space model psi-angle components for a stationary
platform at 45 degrees North latitude and zero altitude with an east
gyro bias of 0.01 deg/hour
References
[1] Pinson J. Inertial guidance for cruise vehicles. In: Leondes C, editor. Guidance
and Control of Aerospace Vehicles. New York, NY: McGraw-Hill; 1963.
[2] Siouris G. Aerospace Avionics Systems—A Modern Synthesis. San Diego, CA:
Academic Press; 1993.
[3] Pue A. Integration of GPS with Inertial Navigation Systems [Short Course
Notes]. NavtechGPS; 2007.
[4] Benson D. A comparison of two approaches to pure-inertial and Doppler-
inertial error analysis. IEEE Transactions on Aerospace and Electronic Systems.
1975;AES-11(4):288–290.
[5] Kamen E, Heck B. Fundamentals of Signals and Systems using MATLAB® .
Upper Saddle River, NJ: Prentice-Hall; 1996.
Chapter 20
GNSS-aided INS: loose coupling
20.1 Introduction
We start off considering a simplified case in which the aiding source only provides
a position solution and, furthermore, the errors of the aiding source consist of inde-
pendent white Gaussian noise. As a result, we can derive the continuous-time state
equation from the inertial error state-space model presented in the previous chapter
(repeated here for convenience):
⎡ ⎤ ⎡ ⎤⎡ ⎤
δ Ṙ [−ωcec ×] I 0 δR
⎢ ⎥ ⎢ ⎥⎢ ⎥
δ
⎣ ⎦V̇ = ⎣ W [−(2ω c
ie + ω c
ec )×] [ f c
×] δV
⎦⎣ ⎦
ψ̇ 0 0 [−(ωcie + ωcec )×] ψ
⎡ ⎤⎡ ⎤
0 0 0 0
+ ⎣0 Cbc 0 ⎦⎣ δf b ⎦ (20.1)
0 0 −Cbc δωbib
Since the gyro and accel errors are unknown in a real system, they must be incor-
porated into the state vector as additional variables that must be estimated. Although
302 Fundamentals of inertial navigation systems and aiding
complete gyro and accel error models include scale factor errors, temperature effects,
acceleration, and jerk-dependencies as well as noise, first-order approximations fre-
quently ignore these and focus only on the so-called “bias” errors. At this point,
we should remind ourselves that gyro and accel “bias” errors are more correctly
“bias-like” errors (although nobody uses this term). They are bias-like insofar as they
vary slowly with time. The slower the variation, the more bias-like they are. All of
this is justification for the fact that these “bias” errors are typically modeled with a
time-varying stochastic process rather than a pure constant.
As was described in an earlier chapter (see also the appendix on random
processes), the gyro and accel bias errors are typically modeled with first-order
Gauss–Markov processes. By incorporating the gyro and accel errors into the state
vector, and modeling them with first-order Gauss–Markov processes, we can modify
Equation (20.1) to yield the following continuous-time system equation:
⎡ ⎤ ⎡ ⎤
δ Ṙ [−ωcec ×] I 03x3 03x3 03x3 ⎡ δR ⎤
⎢ δ V̇ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ W [−(2ωcie + ωcec )×] [ f c ×] Cbc 03x3 ⎥⎢ δV ⎥
⎢ ⎥ ⎢ ⎥⎢⎢
⎥
⎥
⎢ ψ̇ ⎥ = ⎢ ⎢ 03x3 03x3 [−(ωcie + ωcec )×] 03x3 −Cbc ⎥ ⎥⎢⎢ ψ ⎥
⎢ ⎥ ⎢ ⎥⎢ b ⎥
⎢ ˙b ⎥ ⎢ ⎥
⎣ δf ⎦ ⎣ 03x3 03x3 03x3 −1
τacc
I 03x3 ⎥
⎦⎣ δf ⎦
δ ω̇ib
b 03x3 03x3 03x3 03x3 τ−1 I
gyr
δωbib
⎡ ⎤
03x1
⎢0 ⎥
⎢ 3x1 ⎥
⎢ ⎥
+⎢
⎢03x1 ⎥
⎥ (20.2)
⎢η ⎥
⎣ acc ⎦
ηgyr
where ηacc and ηgyr are the Gaussian white noise inputs for the first-order Gauss–
Markov models and all I s are 3×3 identity matrices.
The upper left 9×9 submatrix in (20.2) is the core inertial error model and it will
be convenient, later, to give it a name. Thus, we define:
⎡ ⎤
[−ωcec ×] I 03x3
⎢ ⎥
FINS = ⎣ W [−(2ωcie + ωcec )×] [ f c ×] ⎦ (20.3)
03x3 03x3 [−(ωcie + ωcec )×]
Equation (20.2) can thus be rewritten as:
⎡ ⎤ ⎡ ⎤
δ Ṙ 03x3 03x3 ⎡ ⎤ ⎡ ⎤
⎢ δ V̇ ⎥ ⎢ ⎥ δR 03x1
c
⎢ ⎥ ⎢ FINS Cb 03x3 ⎥⎢ δV ⎥ ⎢03x1 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ ψ̇ ⎥ = ⎢ 3x3 −Cb ⎥
c ⎢ ⎥ ⎢0 ⎥
⎢ ⎥ ⎢ 0 ⎥⎢ ψb ⎥ + ⎢ 3x1 ⎥ (20.4)
⎢ ˙ b ⎥ ⎢0 ⎥⎣ ⎦ ⎣ηacc ⎦
⎣ δ f ⎦ ⎣ 3x3 03x3 03x3 τacc I 03x3 ⎦ δf
−1
δωib
b ηgyr
δ ω̇b 03x3 03x3 03x3 03x3 τ−1 gyr
I
ib
GNSS-aided INS: loose coupling 303
Over sufficiently short intervals of time (i.e., such that the specific-force vector
and angular rates can be considered constant), the discrete-time solution of Equation
(20.2) yields the usual discrete-time system equation:
xk+1 = k xk + wk (20.5)
where the state transition matrix is given by
k = eFk t (20.6)
and where Fk is the 15×15 system dynamics matrix given in Equation (20.2). Recall
that the matrix exponential is frequently approximated by the first few terms of the
Taylor series expansion. The system noise vector in Equation (20.2) is unknown but
it is assumed that its covariance, Qk , is known or, at least, can be well approximated.
Equations (20.2)–(20.6) completely specify the system equation and thus specify
the state vector, the state transition matrix and the system noise covariance matrix. The
measurement equation enables us to specify another three terms. Recall the generic
form of the measurement equation:
z k = Hk xk + ν k
is assumed that the initial state vector is completely unknown, but is assumed to be
zero mean, the initial prediction is given simply by:
x̂−
T
1 = 0 0 ··· 0 (20.9)
The initial prediction error covariance matrix, P1− , can be approximated simply as
a diagonal matrix in which the non-zero elements are given by the estimated vari-
ance of the state variables. Assuming the GNSS receiver is used to initialize position,
the initial position error variances can be roughly estimated based on DOPs and
something similar can be done for velocity as well. If the platform is approximately
stationary (i.e., ignoring wind buffeting, etc.) the velocity error variances will be
quite small. Psi-angle variances can be approximated based on the known level-
ing/gyrocompassing performance of the INS and, finally, the gyro and accel bias
variances can be initialized based either on manufacturer specifications or lab test
data. Recall that we are concerned here with the residual bias errors that are left after
all calibration/compensations have been applied.
where FINS was defined in (20.3) and τpos is the time-constant of the first-order
Gauss-Markov process modeling the GNSS position-bias errors (δRGNSS ) and ηgnss
is the Gaussian white noise driving the GNSS position-bias Gauss–Markov process
(the other variables are the same as in Equation (20.4)). The time-constants can be set
in accordance with the expected variations in atmospheric (and possibly multipath)
errors (e.g., ∼ 1,000–3,000 sec). In the case of a receiver utilizing dual-frequency
ionospheric corrections, and assuming tropospheric delay is well modeled and cor-
rected, the residual GNSS position errors may be dominated by relatively higher
frequency multipath error and the time constant may be reduced accordingly. The val-
ues of the diagonal elements of the Q matrix are set in accordance with the modeled
Gauss–Markov processes.
Since we have expanded the state vector, the measurement Equation (20.8) will
need to be modified accordingly. The measurement error now consists of the sum of
the inertial position error, the GNSS position-bias, and the GNSS position noise:
⎡ ⎤
δR
⎢ δV ⎥
⎢ ⎥ ⎡ ⎤
⎢ ⎥ νx
⎢ ψ ⎥
z = I3×3 03×12 I3×3 ⎢ ⎥ + ⎣ νy ⎦
⎢ δf b ⎥ (20.11)
⎢ ⎥ ν
⎢ b ⎥ z
⎣ δωib ⎦
δRgnss
Thus the H matrix is now 3×18 with identity matrices occupying the first three and
last three columns (all other columns are all zeros).
This expansion of the filter to 18 states accommodates the non-noise components
of the GNSS position error. However, in order to deal with constellation changes, the
software must reset the last three rows and columns of the prediction error covariance
matrix at the time of the constellation change. These rows and columns correspond
to the GNSS position bias states and resetting them amounts to zeroing them out and
resetting the main diagonal components to their original values. This has the effect of
causing the filter to apply the “jumps” in the measurement vector to the position bias
states. As we will see shortly, if the position bias states are not included in the filter,
these measurement vector jumps will be erroneously applied to all of the other state
variables.
will re-run the second scenario but with the prediction error covariance reset. This
will allow us to see the dramatic performance improvement that is achieved.
The simulated flight trajectory for this case study involves an F-16 performing
a series of s-turns as it makes five step climbs∗ up from the surface to a maximum
altitude of 3,000 m and then makes four step descents down to 1,000 m (Figure 20.1).
The climbs, descents, and turns provide “observability” into the states the Kalman
filter is trying to estimate. We will discuss the very important topic of observability
in a subsequent chapter.
In order to generate some meaningful inertial errors during the relatively short
run, a tactical-grade IMU was simulated. Accel biases ranging from 300 to 500 micro-
g were simulated on the three axes along with gyro biases of 0.08–0.15 deg/hour.
Although the sensor biases were simulated as perfect constants, the time constants of
the bias states in the filter were set to 1,000 sec.
A nominal 24-satellite GPS constellation was simulated and there were six
satellites visible throughout the run. Ionospheric delay, tropospheric delay, and noise
30
east [km]
20
10
0
0 2 4 6 8 10 12 14 16 18
30
north [km]
20
10
0
0 2 4 6 8 10 12 14 16 18
3,000
2,000
up [m]
1,000
0
0 2 4 6 8 10 12 14 16 18
run time in minutes
∗
Step climbs/descents involve a series of climbs/descents to intermediate altitudes with a period of level
flight in between each step.
GNSS-aided INS: loose coupling 307
were simulated on the GPS pseudorange measurements. The pseudorange noise was
simulated with a standard deviation of one meter.
5
east pos err [m]
–5
0 2 4 6 8 10 12 14 16
5
north pos err [m]
–5
0 2 4 6 8 10 12 14 16
time [min]
–0.5
0 2 4 6 8 10 12 14 16
0.5
north vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
0.5
up vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
time [min]
1
roll err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
pitch err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
yaw err [mrad]
–1
0 2 4 6 8 10 12 14 16
time [min]
x [micro-g] 0
–500
0 2 4 6 8 10 12 14 16
500
y [micro-g]
–500
0 2 4 6 8 10 12 14 16
500
z [micro-g]
–500
0 2 4 6 8 10 12 14 16
time [min]
0.2
x [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
0.2
y [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
0.2
z [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
time [min]
Figure 20.6 Error in gyro bias estimates. 18-State loosely coupled GPS/INS filter
310 Fundamentals of inertial navigation systems and aiding
10
east [m]
–10
0 2 4 6 8 10 12 14 16
10
north [m]
–10
0 2 4 6 8 10 12 14 16
40
20
up [m]
–20
0 2 4 6 8 10 12 14 16
time [min]
Figure 20.7 Error in the GPS-computed position. From t = 8 min to t = 9 min the
number of visible satellites is reduced from 6 to 4
5
–5
0 2 4 6 8 10 12 14 16
5
north pos err [m]
–5
0 2 4 6 8 10 12 14 16
time [min]
0.5
east vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
0.5
north vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
0.5
up vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
time [min]
–1
0 2 4 6 8 10 12 14 16
1
pitch err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
yaw err [mrad]
–1
0 2 4 6 8 10 12 14 16
time [min]
500
x [micro-g]
–500
0 2 4 6 8 10 12 14 16
500
y [micro-g]
–500
0 2 4 6 8 10 12 14 16
500
z [micro-g]
–500
0 2 4 6 8 10 12 14 16
time [min]
0.5
x [deg/hr]
–0.5
0 2 4 6 8 10 12 14 16
0.5
y [deg/hr]
–0.5
0 2 4 6 8 10 12 14 16
0.5
z [deg/hr]
–0.5
0 2 4 6 8 10 12 14 16
time [min]
Figure 20.12 Error in gyro bias estimates. 18-State loosely coupled GPS/INS filter
without reset of the prediction error covariance
Resetting is straight-forward. Simply zero out the entire row/column and then reset
the main diagonal element to its original large value. However, it must be done
every time a satellite drops out of or is added into the computed solution. For the
example here, the reset has to be performed when the number of visible satellites
is reduced (at t = 8 min) and when the number of visible satellites is increased
(at t = 9 min).
The results are shown in Figures 20.13–20.17 and a dramatic performance
improvement may be seen when comparing against the previous scenario. Relatively
minor glitches are observed in certain error components but the rest behave nearly
identically to the case without a change in the number of visible satellites.
5
east pos err [m]
–5
0 2 4 6 8 10 12 14 16
5
north pos err [m]
–5
0 2 4 6 8 10 12 14 16
time [min]
–0.5
0 2 4 6 8 10 12 14 16
0.5
north vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
0.5
up vel err [m/s]
–0.5
0 2 4 6 8 10 12 14 16
time [min]
1
roll err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
pitch err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
yaw err [mrad]
–1
0 2 4 6 8 10 12 14 16
time [min]
–500
0 2 4 6 8 10 12 14 16
500
y [micro-g]
–500
0 2 4 6 8 10 12 14 16
500
z [micro-g]
–500
0 2 4 6 8 10 12 14 16
time [min]
0.2
x [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
0.2
y [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
0.2
z [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
time [min]
Figure 20.17 Error in gyro bias estimates. 18-State loosely coupled GPS/INS filter
with reset of the prediction error covariance
GNSS-aided INS: loose coupling 317
behind real time. There are at least three potential solutions. One is to perform the
Kalman update at the time of validity of the observable, apply it to the stored INS
solution at the time of validity, and then use the stored INS sensor data to extrapolate
the inertial solution forward to real time. The second is to perform the Kalman update
just mentioned but propagate the predicted state vector (i.e., estimated inertial errors)
forward to real time and apply the corrections to the current INS solution. Third,
we can revise the measurement equation in order to account for the time delay. This
is significantly more complicated but has the advantage of performing the Kalman
update with the most recent inertial solution.
20.5.4 Q tuning
Up to this point, we have modeled the system noise to accommodate the accelerom-
eter and gyro bias states (along with the GNSS position bias states). Noise was only
modeled on the states that drive the position, velocity, and attitude errors. In real-
ity we actually need to model some noise on all of the states in order to account
for un-modeled error sources. For example, un-modeled scale factor errors can be
accommodated by increasing the Q on the velocity and attitude states. It is possible
to explicitly model the scale factor states, but at some point the state vector can no
longer be expanded. The Kalman filter cannot be made artificially large because it
will take an excessive amount of time to converge and there is a tradeoff known as the
curse of dimensionality. Essentially the estimation error increases as the total number
of states increases. Thus, in the end, there will be some amount of un-modeled error
and some tweaking of the Q is needed in order to ensure stable filter performance.
20.5.5 R tuning
In a loosely coupled INS/GNSS, the measurement error covariance matrix is a function
of the estimated pseudorange noise errors and the appropriate dilution of precision
(DOP). The pseudorange noise errors can be estimated on the basis of receiver-
measured carrier-to-noise ratios and satellite elevation angle. To first order, the
GNSS-aided INS: loose coupling 319
pseudorange noise varies inversely with the sine of the elevation angle. DOP can
be used to scale the noise from the range-domain to the position-domain. In prac-
tice, the values in the R matrix may need to be inflated somewhat to account for
un-modeled/mis-modeled errors.
Reference
[1] Pue A. Integration of GPS with Inertial Navigation Systems [Short Course
Notes]. NavtechGPS; 2007.
This page intentionally left blank
Chapter 21
GNSS-aided INS: tight coupling
21.1 Introduction
As we have discussed in previous chapters, tight-coupling utilizes the measurement
data from the aiding source (as opposed to loose coupling that utilizes processed data).
In the case of a GNSS receiver, pseudorange and delta-range (or possibly carrier-
phase) measurements are processed by the integration filter rather than position and
velocity. This requires information about the individual satellite position and velocity
be fed to the filter since it has to form the inertial equivalent of the pseudorange in
order to compute an observable corresponding to the difference between the INS and
GNSS outputs.
The inertial error states and sensor bias states are the same as in the loosely
coupled filter. The two GNSS receiver clock states are the same clock phase and
frequency error states described in the earlier chapter about GNSS-only filtering. As
with the GNSS position bias states of the loosely coupled filter, the pseudorange bias
states of the tightly coupled filter serve to absorb the discontinuity of the measure-
ments at the time of a constellation change (specifically when measurements from a
new satellite are added). To a certain extent, these states can also partially estimate
bias errors due to atmospheric delays and multipath. Again, as was the case for the
position bias states, the range bias states use first-order Gauss-Markov models. The
continuous-time system equation is thus given by:
322 Fundamentals of inertial navigation systems and aiding
⎡ ⎤ ⎡ ⎤
δ Ṙ 03x3 03x3 0 0 0 0 0 ⎡ δR ⎤ ⎡ 03x1 ⎤
⎢ δ V̇ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ FINS Cbc 03x3 0 0 0 0 0 ⎥⎢ δV ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥⎢⎢
⎥ ⎢ 03x1 ⎥
⎥ ⎢ ⎥
⎢ ψ̇ ⎥ ⎢ 03x3 −Cbc 0 0 0 0 0⎥
⎢ ⎥ ⎢ ⎥⎢⎢
ψ ⎥ ⎢ 03x1 ⎥
⎥ ⎢ ⎥
⎢ b ⎥ ⎢ ⎥
⎢ δ f˙ ⎥ ⎢03x3 03x3 03x3 −1
I 03x3 0 0 0 0 0 ⎥⎢ ⎢ δf b ⎥
⎥
⎢η ⎥
⎢ ⎥
⎢ ⎥ ⎢ τacc ⎥⎢
⎢ b ⎥ ⎢03x3 −1
0 0⎥ b ⎥ ⎢ acc ⎥
⎢ δ ω̇ib ⎥ ⎢ 03x3 03x3 03x3 τgyr
I 00 0 ⎢
⎥ ⎢ ib ⎥ ⎢ gyr ⎥
δω ⎥ ⎢ η
⎥
⎢d ⎥ ⎢ ⎥
⎢ b ⎥ = ⎢01x3 01x3 01x3 01x3 01x3 0 1 0 0 0 ⎥⎢ b ⎥ +⎢ ⎥
⎢ dt ⎥ ⎢ ⎥⎢⎢
⎥ ⎢ wcf ⎥
⎥ ⎢ ⎥
⎢d ⎥ ⎢ 0 0⎥
⎢ dt b· ⎥ ⎢01x3 01x3 01x3 01x3 01x3 0 0 0 ⎥⎢⎢ b· ⎥⎥
⎢ wca ⎥
⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ δ ṗr1 ⎥ ⎢01x3 01x3 01x3 01x3 01x3 0 0 τ−1 0 0 ⎥⎢ ⎢ δpr ⎥ ⎢η ⎥
1⎥ ⎢ pr1 ⎥
⎢ ⎥ ⎢ ⎥⎢
⎥⎢ . ⎥ ⎢ ⎥
pr
⎢ . ⎥ ⎢ . .. .. .. .. .. .. ..
⎢ . ⎥ ⎢ .. . . . . . . 0 . 0⎥ . ⎥ ⎢ .. ⎥
⎣ . ⎦ ⎣ ⎦⎣ . ⎦ ⎣ . ⎦
δ ṗrN 01x3 01x3 01x3 01x3 01x3 0 0 0 0 τ−1
pr
δprN ηprN
(21.1)
where FINS is the 9×9 core inertial error dynamics submatrix described in the pre-
vious chapter, I is a 3×3 identity matrix, δpri is the ith pseudorange bias state and
the various ηs are the white noise inputs for the Gauss–Markov processes. Note the
upper left 15×15 submatrix is identical to that of the loosely coupled filter. The total
system dynamics matrix (F) in (21.1) has dimensions (17 + N × 17 + N ) where N
is the maximum number of satellites tracked by the GNSS receiver. As discussed in
the previous chapter, the state transition matrix is obtained using = eFt (or an
approximation thereof) over short-time intervals such that F can be considered to be
constant.
For short covariance propagation intervals, the system noise covariance matrix,
Q, is frequently approximated by a diagonal matrix with non-zero elements speci-
fied according to the stochastic models of the associated state variables (see Section
14.2.6 and Equation (14.82) in [1]). As we have discussed in earlier chapters, the
gyro biases and accel biases are all modeled as first-order Gauss–Markov pro-
cesses. For tightly coupled filters, the range bias states may be modeled in this way
as well.
As an example, we will consider the pseudorange bias state. Assume the combi-
nation of low-frequency GNSS pseudoranging errors (tropospheric delay, ionospheric
delay, multipath and satellite clock, and ephemeris error) can be modeled with
a first-order Gauss–Markov process with a variance of 18 m2 (standard devia-
tion of 4.24 m) and a time constant of one hour (3,600 sec). The variance of the
continuous-time model white noise input is given by (see Appendix on stochastic
processes):
2
q= E[x2 ] (21.2)
τ
GNSS-aided INS: tight coupling 323
where the subscript u denotes true user position. Performing a Taylor Series expansion
of (21.4) with respect to the position estimated by the INS and retaining only the zeroth
and first-order terms results in:
xINS − xi yINS − yi
rtruei ≈ rINSi + (xu − xINS ) + (yu − yINS )
rINSi rINSi
zINS − zi
+ (zu − zINS ) (21.5)
rINSi
where:
and the subscript INS denotes the user position as estimated by the INS. The com-
ponents of the unit vector from the estimated INS position to the satellite are
given by:
xi − xINS
uxi = (21.7)
rINSi
yi − yINS
uyi = (21.8)
rINSi
zi − zINS
uzi = (21.9)
rINSi
324 Fundamentals of inertial navigation systems and aiding
rtruei + b̂u ≈ rINSi + b̂u − uxi (xu − xINS ) − uyi (yu − yINS ) − uzi (zu − zINS )
(21.11)
Now we define the INS-equivalent pseudorange as:
PRINSi = rINSi + b̂u (21.12)
which allows us to rewrite (21.11) as:
rtruei + b̂u ≈ PRINSi − uxi (xu − xINS ) − uyi (yu − yINS ) − uzi (zu − zINS ) (21.13)
The measured GNSS pseudorange from the ith satellite is related to the true range by:
where bu is the true receiver clock offset, γ is the sum of the bias-like errors (atmo-
spheric delays and multipath) and ν is the measurement noise. Solving (21.14) for
the true range and substituting into (21.13) yields:
PRmeasi + (b̂u − bu ) − γi − νi ≈
PRINSi − uxi (xu − xINS ) − uyi (yu − yINS ) − uzi (zu − zINS ) (21.15)
PRmeasi + bu − γi − νi ≈
PRINSi − uxi (xu − xINS ) − uyi (yu − yINS ) − uzi (zu − zINS ) (21.17)
The range-domain observable for our tightly coupled filter can now be formed as the
difference between the INS “pseudorange” and the GNSS measured pseudorange:
zi = PRINSi − PRmeasi (21.18)
GNSS-aided INS: tight coupling 325
To be clear, (21.18) is the formula by which the actual observable is formed. To deter-
mine how it relates to the state vector, we need to form the theoretical measurement
equation. Thus we model the observable by isolating the two pseudorange terms of
(21.17) on the left hand side and substituting (21.18):
zi = uxi (xu − xINS ) + uyi (yu − yINS ) + uzi (zu − zINS ) + bu − γi − νi (21.19)
If we define the components of the error of the estimated INS position as:
δRx = xINS − xu (21.20)
δRy = yINS − yu (21.21)
δRz = zINS − zu (21.22)
Then substitution of Equations (21.20)–(21.22) into (21.19) yields the desired
linearized measurement equation:
zi = −uxi δRx − uyi δRy − uzi δRz + bu − γi − νi (21.23)
Now let us recall the “pseudorange bias” states (δpr) from the continuous-time system
equation (Equation (21.1)). We noted earlier that these states serve two purposes. One
is to deal with the case of new satellites being added into the solution. The second
is to account for the bias-like GNSS errors. By defining δpr = γ , we can rewrite
(21.23) as:
zi = −uxi δRx − uyi δRy − uzi δRz + bu − δpri − νi (21.24)
We can now write the Kalman measurement equation for a single observation ((21.24))
in terms of the state vector given in Equation (21.1):
⎡ ⎤
δR
⎢ δV ⎥
⎢ ⎥
⎢ ⎥
⎢ ψ ⎥
⎢ b⎥
⎢ δf ⎥
⎢ ⎥
⎢ b⎥
⎢ δωib ⎥
⎢ ⎥
⎢ b ⎥
⎢ ⎥
zi = −ui 01x12 1 0 · · · 0 −1 0 · · · 0 ⎢ ·⎥
⎢ b ⎥ + νi (21.25)
⎢ ⎥
⎢ δpr1 ⎥
⎢ ⎥
⎢ .. ⎥
⎢ . ⎥
⎢ ⎥
⎢ δpr ⎥
⎢ i⎥
⎢ . ⎥
⎢ . ⎥
⎣ . ⎦
δprN
where ui is the unit vector from the user to the ith satellite: ui = [uxi uyi uzi ]. The
“1” (after the twelve zeros) multiplies the receiver clock offset (b) and the “−1”
multiplies the ith pseudorange bias (δpri ). Note the sign change on the measurement
noise has been done to put (21.25) in the usual form and has no effect (since the
relevant filter design variable is the measurement error covariance).
326 Fundamentals of inertial navigation systems and aiding
–5
0 2 4 6 8 10 12 14 16
5
north pos err [m]
–5
0 2 4 6 8 10 12 14 16
10
up pos err [m]
–10
0 2 4 6 8 10 12 14 16
time [min]
0.2
east vel err [m/s]
–0.2
0 2 4 6 8 10 12 14 16
0.2
north vel err [m/s]
–0.2
0 2 4 6 8 10 12 14 16
0.2
up vel err [m/s]
–0.2
0 2 4 6 8 10 12 14 16
time [min]
–1
0 2 4 6 8 10 12 14 16
1
pitch err [mrad]
–1
0 2 4 6 8 10 12 14 16
1
yaw err [mrad]
–1
0 2 4 6 8 10 12 14 16
time [min]
–500
0 2 4 6 8 10 12 14 16
500
y [micro-g]
–500
0 2 4 6 8 10 12 14 16
500
z [micro-g]
–500
0 2 4 6 8 10 12 14 16
time [min]
x [deg/hr] 0
–0.2
0 2 4 6 8 10 12 14 16
0.2
y [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
0.2
z [deg/hr]
–0.2
0 2 4 6 8 10 12 14 16
time [min]
Figure 21.5 Error in gyro bias estimates. Tightly coupled GNSS/INS filter
20
SV 1 [m]
10
PR err
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
10
SV 2 [m]
5 PR err
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
15
SV 3 [m]
10
PR err
5
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
time [s]
Figure 21.6 Pseudorange bias estimates for satellites 1–3. Tightly coupled
GNSS/INS filter. The total pseudorange errors (PR err) consisting of
atmospheric delays and measurement noise are depicted along with
the filter estimate
330 Fundamentals of inertial navigation systems and aiding
20
SV 4 [m]
10
PR err
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
15
SV 5 [m]
10
PR err
5
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
15
SV 6 [m]
10
5 PR err
Rng Bias Est
0
0 100 200 300 400 500 600 700 800 900 1,000
time [s]
Figure 21.7 Pseudorange bias estimates for satellites 4–6. Tightly coupled
GNSS/INS filter. The total pseudorange errors (PR err) consisting of
atmospheric delays and measurement noise are depicted along with
the filter estimate
through the lever arm, to the position of the GNSS antenna. The ‘INS’ terms in, for
example, Equations (21.6)–(21.9) must be the computed INS position components
translated to the position of the GNSS antenna. Since the vehicle attitude typically is
not constant, the accuracy of this translation is limited in part by the accuracy of the
INS attitude determination.
References
22.1 Introduction
Although H is filled mostly with zeros, the prediction error covariance matrix
(P − ) contains not only the prediction error variances of the states, which are on the
main diagonal, but also has the covariances on the off-diagonal elements. As we will
see shortly, those covariances are the key to the observability question. So where do
they come from? Recall that typically we initialize the prediction error covariance
matrix as a diagonal matrix. Somehow the off-diagonal elements get populated. How
does that happen? Recall the prediction error covariance equation:
−
Pk+1 = k Pk Tk + Qk (22.2)
Although Q can have off diagonal elements, it is not uncommon, particularly for
navigation-grade inertial systems, to approximate Q with a diagonal matrix. Thus the
only way to obtain off-diagonal elements in the prediction error covariance matrix is
through the state transition matrix and the estimation error covariance matrix. The state
transition matrix is obtained from the system dynamics matrix where the off-diagonal
elements embody the coupling between the states. Additionally, the estimation error
covariance matrix is a function of the Kalman gain. Recall the Kalman gain equation:
Kk = Pk− HkT (Hk Pk HkT + Rk )−1 (22.3)
We know that H relates measurement space to state space. The first term in the
denominator of (22.3) is the prediction error covariance converted from state space
to measurement space. That is why we can add that term to R (which is obviously
in measurement space). The numerator, since it does not have the leading H like the
denominator, acts similarly but plays an additional role in allowing the total K to con-
vert measurement space back into state space in the Kalman update equation. For the
moment, just recall that the Kalman gain essentially is the ratio of the state prediction
uncertainty (i.e., error covariance) to the sum of the state prediction uncertainty and
the measurement uncertainty (i.e., error covariance).
We will focus on the example of a loosely coupled GPS/INS filter for the ease of
explanation but the results are applicable to tight coupling as well. Recall that the GPS
position bias states are primarily used to ease the transition that occurs when satellites
are added to or dropped from the GPS position solution. Assuming the number of
satellites in the solution has not changed in a while, we can thus ignore the non-zero
elements in the last three columns of H (Equation (22.1)). With that in mind, recall
the Kalman update equation:
x̂k = x̂− −
k + Kk (z k − Hk x̂ k ) (22.4)
which can be rewritten as:
x̂k = x̂− −
k + Kk (z k − z k ) (22.5)
where z −
k is the predicted measurement vector (i.e., the measurement vector as
predicted from the state prediction):
−
z−
k = Hk x̂ k (22.6)
For the loosely coupled filter, the term inside the parentheses in equation (22.5) is
a 3x1 vector and the Kalman gain is an 18×3 matrix. In order for the filter to estimate
Aided INS: observability and feedback 335
the 18 elements of the state vector, K must have non-zero elements throughout the 18
rows of its three columns. Now consider the numerator of the Kalman gain Equation
(22.3) and remember that H is only non-zero in its first three columns (recall we have
dropped the position bias states). Thus, it is the first three columns of the prediction
error covariance matrix that yield the non-zero elements in K.
Let us now return to Equation (22.5). The term in parentheses is the actual
measurement minus the predicted measurement. That term is called the “innovations”
since it is the new information provided to the filter. It is not the whole measurement
that is new but, rather, it is only the portion of the measurement that we were not
able to predict that is the new information. Thus, the Kalman gain weights the new
measurement information and adds it to its prediction to form the estimate. Therefore
in order to take, for example, position differences, and then use them to estimate
attitude error, gyro biases, accel biases, etc., there have to be non-zero elements in
the Kalman gain relating the observations to all those different states. That is why I
call it the “magic Kalman gain.” It relates measurements to states that do not have
direct relationships. Keep in mind, the key is the fidelity of the state models used to
form the state transition matrix.
We can now better understand the temporal nature of the filter’s initial transient
(that is a fancy way to say the filter takes time to converge). It takes time for the off-
diagonal elements in the prediction error covariance matrix to build up. Specifically,
it requires a time-dependent relationship between the states as is described in the
state transition matrix. Remember that we are estimating more states than we have
measurements and that can only be done by exploiting the additional information
obtained by processing multiple sets of measurements over time.
22.3 Observability
Furthermore, not only is there a requirement for a time-dependent relationship, but
as we will see, the vehicle trajectory is a critical factor in the observability of some
states. Recall the psi-angle inertial error model:
c
δ Ṙ = −ωcec × δRc + δV c (22.7)
c
δ V̇ = Cbc δf b + δg c − ψ c × f c − (2ωiec + ωec
c
) × δV c (22.8)
c
ψ̇ = −ωcic × ψ c − Cbc δωbib (22.9)
With GNSS aiding, the measurement vector z is either position and velocity differ-
ences (loose coupling) or range and range rate differences (tight coupling). Inertial
attitude and instrument errors are observed through the position and velocity errors
that they produce in the inertial system solution. For the case of loose coupling, we are
observing position and velocity errors and yet we want to be able to estimate attitude
and inertial sensor errors. Without even looking at the equations, we know implicitly
based on our undergraduate physics that accelerometer biases are going to produce
linear velocity error growth, at least in the short term, and then quadratic position
336 Fundamentals of inertial navigation systems and aiding
error growth. You knew that before you read this book. However, what about gyro
biases and attitude errors?
Consider the error equations. A constant gyro bias produces linear growth in
the psi-angle (Equation (22.9)) and the linear psi-angle growth produces quadratic
growth in velocity error (Equation (22.8)) and thus cubic growth in the position error
(all of this is in the short-term prior to Schuler effects).
Consider now the cross-product term in Equation (22.8). We see that not only
is the velocity error growth a function of the attitude error (psi-angle), but it is also
dependent on the specific force. Obviously if the specific force is zero, it does not
matter what the psi-angle is, there will be no velocity error growth regardless. Now
consider straight and level flight. In that case, the only sensed specific force is the
reaction to gravity and that lies solely in the vertical direction (to first order). There
is no horizontal component. Now remember the result of the cross-product is always
orthogonal to the plane containing the two input vectors. Recall further that the
cross-product of two collinear vectors is zero. This means that in straight and level
flight, where the specific force is solely in the vertical direction, only the horizontal
components of the attitude error (pitch and roll) will give rise to velocity error growth.
Yaw error is not observable in straight-and-level flight since the yaw error is collinear
with the specific force vector and thus the cross-product is zero.
Given this cross-product relationship, heading (and/or yaw) error will only cause
velocity error growth when the vehicle is experiencing acceleration in the horizontal
plane. Of course, in practice, significant acceleration in the direction of flight is
impractical. When an aircraft is at cruise altitude the throttle is typically left alone.
Sure, you could throttle back and forth but nobody is going to do that, in part, because
it is unnecessarily hard on the engines. Thus, the only practical way to achieve heading
observability at cruise altitude is to perform turns. Every once in a while the vehicle has
to perform an s-turn. Navigation-grade INS manufacturers frequently have to educate
their customers on this issue. For customers with long distance missions (e.g., oceanic
crossings) who are unwilling to adapt their flight profiles (e.g., commercial flights),
horizontal error growth due to poorly estimated heading error has to be accepted.
Vehicle maneuvers have beneficial effects on other states as well. For exam-
ple, attitude errors and accel biases are not separately observable at constant vehicle
attitude. Accel biases lead to erroneous velocities and transport rates and Schuler
oscillations. However, attitude errors (specifically roll and/or pitch) do so also due
to gravity coupling. This is clear from Equation (22.8). A constant accel bias and a
constant roll or pitch error (manifested in a constant psi-angle) lead to linear veloc-
ity error growth (in the short term). Thus, if the true attitude is constant, there will
be no observable difference between the attitude error and the accel bias. The filter
will partially estimate the attitude error and partially estimate the accelerometer bias
in accordance with the prediction error covariance associated with each state. Thus,
neither the attitude errors nor the accelerometer biases are estimated perfectly dur-
ing constant-attitude flight. However, they become separately observable when the
vehicle attitude changes since this impacts the cross-product of the psi-angle with the
specific force vector along with the projection of the accel biases into the navigation
frame.
Aided INS: observability and feedback 337
Given what we have discussed about straight and level flight, attitude error does
not contribute to vertical velocity error (since the specific-force vector is vertical, atti-
tude errors will only manifest velocity error in the horizontal direction). The remaining
vertical velocity error sources are vertical accel bias, gravity model error, and Corio-
lis. Assuming the velocity errors are kept small via feedback of the Kalman correction
(see the next section in this chapter), the Coriolis component of vertical velocity error
will also be small. This leaves the combination of vertical accel bias and gravity mod-
eling error. As a result, the vertical accelerometer bias state (absorbing also the gravity
modeling error) is the most observable of the three accel biases and thus it is the most
easily estimated. One consequence of this is that if the integrated system has to coast at
some point, due loss of aiding, the system vertical error growth will be small relative
to the horizontal error growth. This is non-intuitive since we know the free inertial
solution has an unstable vertical channel. Nevertheless, it is the most observable.
A topic closely related to observability is state selection. Specifically, what states
should we choose to put into our filter? The nine core inertial error states (three
dimensions of position, velocity and attitude) are needed in most applications but
after that the choice is dependent upon the application, the IMU sensors and the
aiding sensors. For example, if the length of the primary “mission” is short (e.g.,
less than 15 min) and the gyros are of sufficient quality, estimation of accel biases is
required but there may be little benefit to estimating the gyro biases. The reader may
recall that we estimated scale factor error in one of the sled track examples in an earlier
chapter but we did not do so in either the loosely coupled or tightly coupled examples
of the previous two chapters. This was done partially to reduce the complexity of the
new material. However, in a real scenario, the observability of scale factor error states
will be a function of the dynamics of the trajectory. For example, gyro scale factor
error on a slow-moving marine vehicle will be much less observable than it is on an
aerobatic aircraft. Similarly, non-orthogonality errors (e.g., x-dimension acceleration
being incorrectly sensed by the y-accelerometer) may not be observable if other sensor
errors (e.g., bias and noise) are relatively larger and if the vehicle dynamics are low.
In most cases, simulations are needed to determine which states should be included.
As we conclude this introduction to observability, the reader desiring to dig deeper
is referred to two additional resources. Groves’ book on integrated navigation [1] has
an excellent discussion on this topic. The reader is also referred to the article by
Rhee et al. [2]. It provides a very rigorous mathematical treatment of observability
in GPS/INS.
Therefore, in order to sustain operation over long periods of time (where “long”
is a function of the quality of the IMU sensors), the error states have to be fed back
as corrections to the basic inertial processing. In this way, the inertial errors are kept
small and the linearity assumption in the error model is kept valid. In other words,
we cannot just run the inertial all by itself and let it drift off indefinitely. The Kalman
filter error estimates must be used to correct the position, velocity, and attitude update
processing. We must also take the accelerometer and gyro error estimates and use
them to correct the delta-thetas and delta-Vs that are going into the inertial position,
velocity, and attitude updating.
This is all done in software. The hardware is not affected in any way by the
feedback. In the first few decades of GPS/INS integration on military platforms, it was
common practice to output three parallel solutions: INS only (e.g., “free inertial”),
GPS only and GPS/INS. Both free inertial and aided inertial data could be output
simultaneously, even with feedback, since the processing was all done in software.
After feedback, all of the Kalman filter state vector elements are reset to zeros.
Thus the linearized complementary Kalman filter has been turned into an extended
Kalman filter. Remember in an extended Kalman filter the linearization is based on
the estimates obtained from the filter itself. That is exactly what is happening under
feedback.
It should be noted that although the state vector is zeroed out after each Kalman
update, the software must separately maintain the total values of the estimated sensor
errors. These are needed to correct the gyro and accel measurements before they are
used in the position/velocity/attitude updating. For example, when the filter estimates
gyro bias, it is actually estimating the change in gyro bias over the update interval.
This estimate is added to the total gyro bias estimate and the total is used to correct
the raw gyro measurement (and obviously the same is needed for the accelerometers).
A couple of notes of caution: when implementing feedback, there is a risk of
closed loop instability. It is generally safe to wait for the filter to converge before
instituting feedback but feedback can be started earlier if great care is taken in tuning
the initial prediction error and system noise covariance matrices to control the transient
behavior of the filter output. In addition, if the filter is loosely coupled and if the GPS
receiver has its own Kalman filter, then the updates must be performed at a sufficiently
low rate such that the input observations can be considered uncorrelated.
20
–20
North [km]
–40
–60
–80
–100
–120
–300 –250 –200 –150 –100 –50 0 50
east [km]
Figure 22.1 Ground track of simulated trajectory. Flight starts at the origin of the
coordinate system
500
east vel [knots]
–500
0 5 10 15 20 25 30 35 40 45 50
500
north vel [knots]
–500
0 5 10 15 20 25 30 35 40 45 50
run time [minutes]
and the left turn to the straight south segment starts at approximately 34 min into the
flight. The altitude profile (Figure 22.3) shows the vehicle is executing step-climbs
during the initial turns.
Figures 22.4–22.8 illustrate the performance obtained from a GPS-aided INS
with a loosely coupled Kalman filter without the implementation of feedback. In
order to eliminate any artifacts resulting from less-than-perfectly modeled/estimated
GPS errors, the only GPS errors simulated were thermal noise. Since the IMU sensor
biases were simulated as perfect constants, it is not surprising that the filter does well
in most of the state estimates in this case. Nevertheless, the vertical components of
most of the errors degrade significantly after the initiation of the aforementioned left
turn to the south segment. The linearity assumptions in the filter have been violated
and it is also not surprising that the effects are observed first in the vertical components
(recall the instability of the vertical channel). If lower-grade IMU sensors had been
simulated, the effects would have been observed sooner and in some of the horizontal
components as well.
Figures 22.9–22.13 illustrate the performance obtained when feedback of the
corrections is implemented. The previously observed excursions of the vertical com-
ponents have been eliminated. Additionally, we can also note the impact of the
previously described effects of vehicle dynamics on the state estimates and covari-
ances. For example, in Figure 22.11, we see that although the Kalman’s estimated
error standard deviations are growing for all three components of attitude, they are
an order of magnitude larger for the yaw component. Furthermore, close scrutiny
4.5
3.5
3
altitude [km]
2.5
1.5
0.5
0
0 10 20 30 40 50
run time [minutes]
2
east [m]
0
–2
0 5 10 15 20 25 30 35 40 45
2
north [m]
–2
0 5 10 15 20 25 30 35 40 45
20
up [m]
10
0 5 10 15 20 25 30 35 40 45 50
time in minutes
0.1
east [m/s]
–0.1
0 5 10 15 20 25 30 35 40 45
0.1
north [m/s]
–0.1
0 5 10 15 20 25 30 35 40 45
1
up [m/s]
–1
0 5 10 15 20 25 30 35 40 45
time in minutes
0.01
roll [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
0.01
pitch [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
0.01
yaw [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
time in minutes
10
x [micro-g]
–10
0 5 10 15 20 25 30 35 40 45
10
y [micro-g]
–10
0 5 10 15 20 25 30 35 40 45
0
z [micro-g]
–500
–1,000
–1,500
0 5 10 15 20 25 30 35 40 45 50
time in minutes
0.02
x [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
0.02
y [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
0.02
z [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
time in minutes
2
east [m]
–2
0 5 10 15 20 25 30 35 40 45
2
north [m]
–2
0 5 10 15 20 25 30 35 40 45
2
up [m]
–2
0 5 10 15 20 25 30 35 40 45
time in minutes
–0.1
0 5 10 15 20 25 30 35 40 45
0.1
north [m/s]
–0.1
0 5 10 15 20 25 30 35 40 45
0.1
up [m/s]
–0.1
0 5 10 15 20 25 30 35 40 45
time in minutes
0.01
roll [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
0.01
pitch [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
0.01
yaw [deg]
–0.01
0 5 10 15 20 25 30 35 40 45
time in minutes
10
x [micro-g]
0
–10
0 5 10 15 20 25 30 35 40 45
10
y [micro-g]
–10
0 5 10 15 20 25 30 35 40 45
10
z [micro-g]
–10
0 5 10 15 20 25 30 35 40 45
time in minutes
0.02
x [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
0.02
y [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
0.02
z [deg/hr]
–0.02
0 5 10 15 20 25 30 35 40 45
time in minutes
of the errors shows that the pitch and roll errors are still being estimated during the
straight west segment (from 10 min to 34 min) whereas the yaw error is not being
estimated (notice the smoothness of the growth of the yaw estimation error during
this segment). However, once the left turn to the south has been performed, the yaw
error is quickly estimated and corrected by the filter.
Similarly, Figure 22.12 shows the horizontal accelerometer biases are not
being estimated during the bulk of the straight west segment whereas the vertical
accelerometer bias is being estimated the entire time. In particular, notice how the
x-accelerometer bias is not quite estimated perfectly (note the offset during the straight
west segment) but after the turn the filter has captured it. Recall that attitude errors
and accelerometer biases are not separately observable during constant-attitude flight
(e.g., straight-and-level flight). Lastly, the gyro bias estimation error plots (Figure
22.13) show horizontal gyro biases are estimated well once the filter has converged
but that last turn is needed to improve the vertical gyro estimate.
References
[1] Groves P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation
Systems. 2nd ed. Boston, MA: Artech House; 2013.
[2] Rhee I, Abdel-Hafez MF, Speyer JL. Observability of an integrated GPS/INS
during maneuvers. IEEE Transactions on Aerospace and Electronic Systems.
2004;40(2):399–416.
[3] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
[4] Van Loan CF. Computing integrals involving the matrix exponential. IEEE
Transactions on Automatic Control. 1978;23(3):491–493.
[5] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: With MATLAB® Exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
Chapter 23
Baro-inertial vertical channel
23.1 Introduction
As we have shown previously, the vertical channel of the inertial system is unstable.
In fact, if you go back to legacy gimbal systems from the 1950s, it was not uncommon
for there to be no vertical channel. They did not even have a vertical accelerometer. A
gimbal platform was mechanized with two orthogonal accelerometers in the horizontal
plane and that was it. It was thought that there was just no point in mechanizing the
vertical channel.
Nevertheless, eventually it was realized that there were benefits to having an
inertial vertical channel. Specifically, applications with a need for accurate vertical
velocity drove this development. In the defense community, weapon delivery is one
example where precise vertical velocity is important. There was thus a need to be
able to stabilize the inertial vertical channel and the best available aiding sensor, prior
to the advent of GNSS, was the barometric altimeter. Even to this day, aiding with a
barometric altimeter is still utilized due to the fact that its availability is essentially
100% (limited only by the maintainability of the altimeter itself).
As was the case with satellite-based systems such as GPS, the main idea is that
the barometric altimeter (“baro”) provides long-term stability. Although the baro will
in general exhibit bias-like error in its altitude estimate, that error does not grow as a
function of time as do inertial errors. Note that as with the use of the term in inertial
sensors, “bias” is understood to be a very low frequency, non-zero mean error com-
ponent. Its variation is a function of weather changes. There is also some noise in the
baro output. Finally, the baro exhibits lag in its output. Specifically, sudden changes
in true altitude are not immediately reflected in the baro output. Since the inertial
system has excellent dynamic response, proper integration will result in an aided
vertical channel with stabilized vertical velocity, high data rate and low data latency.
Before discussing the Kalman filter mechanization, we will consider some legacy
fixed-gain filters and will examine their strengths and weaknesses.
exhibits primarily high-frequency errors. In practice, this is never perfectly the case
but we can nevertheless apply it where the assumptions are reasonable. In the present
case, the inertial error is low-frequency whereas the baro error is a combination of
high frequency error (noise) and a slowly changing bias.
Figure 23.1 [1] is an example of a second-order, fixed gain, complementary
filter. The vertical accelerometer is compensated by gravity, any known accel bias and
Coriolis corrections. Across the top of the figure, we see that the compensated vertical
accelerometer measurement is integrated into vertical velocity and then integrated
again to get altitude (along with the necessary initializations).
The bottom half of the figure depicts the aiding from the barometric altimeter.
On the lower right, the indicated altitude and the baro altitude are differenced to form
the observation. The difference is filtered by G1 (s) to form an estimate of the inertial
vertical velocity error and is also separately filtered by G2 (s) to form an estimate
of the inertial vertical acceleration error. Although it is not obvious at first glance,
a mathematical analysis of this loop can be done to demonstrate that it is in fact a
complementary filter.
The simplest forms of G1 and G2 are constants and in feedback loop parlance are
referred to as “gains.” As with any feedback control system, the gains are chosen based
on the desired transient response (e.g., critically damped) that the designer is trying to
achieve. A wide variety of compensation algorithms have been developed since baro
stabilization of the inertial vertical channel was invented in the late 1950s [2]. Some
algorithms were developed with gains that were dependent upon the magnitude of
vertical velocity. For example, a military aircraft in a very steep dive may rapidly pass
through atmospheric variations that are not accounted for by the standard barometric
altitude computation. One approach to deal with this is to adapt the loop gain in
accordance with the vertical velocity. In the open literature, one of the most advanced
variable gain filters developed along these lines was described by Ausman ([3]).
Initial
Gravity, accel bias, vertical Initial
and Coriolis corrections velocity altitude
Corrected
+ 1 + 1 altitude
Vertical
Accel + S S
– –
G2(s) G1(s)
+
Baro altitude
where τbb is the time-constant of the Gauss–Markov process that is simulating the
slowly varying baro bias (in practical terms this may be tens of minutes) and ε3 (t) is
the driving white noise. The state equation is thus:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
ẋ1 0 1 0 x1 0
⎣ẋ2 ⎦ = ⎣0 0 0 ⎦ ⎣x2 ⎦ + ⎣ε2 ⎦ (23.4)
ẋ3 0 0 − τ1bb x3 ε3
The discrete-time solution of (23.4) gives us the Kalman system equation for this
example:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
x1 1 t 0 x1 0
⎣x2 ⎦ = ⎣0 1 0 ⎦ ⎣x2 ⎦ + ⎣w2 ⎦ (23.5)
− 1 t
x3 k+1 0 0 e τbb x3 k w3 k
where the 3×3 matrix is the state transition matrix and covariance matrix of the system
noise vector is given by [4]:
⎡ t 3 ⎤
A 3 A t2
2
0
⎢ t 2 ⎥
Q = ⎣A 2 At 0 ⎦ (23.6)
− 2t
0 0 σ2 1 − e τbb
where A is the power spectral density of the accelerometer white noise process ε2 (t)
and σ is the standard deviation of the first-order Gauss–Markov process being used
to model the baro bias.
Turning our attention now to the Kalman measurement equation, the observation
is formed by differencing the baro and inertial altitude estimates:
z = hINS − hbaro (23.7)
In order to determine the Kalman measurement equation, we first expand (23.7) by
recognizing that each estimate is the sum of the truth and the sensor error:
z = (htrue + δhINS ) − (htrue + δhbaro ) (23.8)
Which, of course, simplifies to:
z = δhINS − δhbaro (23.9)
Given our state vector, the Kalman measurement equation may now be written by
inspection:
⎡ ⎤
x1
zk = 1 0 −1 ⎣x2 ⎦ + vk (23.10)
x3
where the 1×3 matrix is H . vk models the baro measurement noise. The baro bias is
being estimated in x3 so vk accounts for whatever high frequency error exists in the
baro altitude measurement. For the Kalman filter, R is a scalar equal to the variance
of vk .
Baro-inertial vertical channel 351
constant of the accel bias should be set in accordance with the performance of the
sensor. For nav-grade units, this is generally on the order of an hour. Generically, we
can simply state:
1
δ ȧz = − δaz + εacc (23.17)
τacc
where τacc is the accel bias time constant and εacc is the driving white noise.
Setting the time constants for the two baro states is arguably as much art as it is
science since their variation is, of course, a function of the local weather. Ausman
suggested values on the order of 10,000 seconds (approximately 2.78 hours) but
longer or shorter periods could be justified depending upon the expected atmospheric
conditions. Ausman also suggested making the time constant a function of horizontal
velocity. His rationale was that high speeds (e.g., jet aircraft) would likely move the
vehicle through weather systems more quickly. Thus, his state equations for the two
baro states are:
1 1 vh
k̇0 = − + + εk0 (23.18)
τatm 2 vref
1 1 vh
δ ḣ0 = − + + εh0 (23.19)
τatm 2 vref
where τatm is the nominal time-constant of the sea-level baro scale factor error and bias
states, vh is the horizontal velocity, vref is the reference horizontal velocity, and εk and
εh0 are the driving white noise. Ausman suggested setting vref to approximately 300
knots (e.g., approximately 150 m/s). Note the terms in parentheses simply modify the
magnitude of the nominal time constant. For horizontal speeds less than vref , the time
constant will be proportionately longer and conversely for speeds higher than vref .
Having defined the state equations for each individual state, we can gather them
as follows:
⎡ ⎤ ⎡0 1 0 ⎤
0 0 ⎡δh ⎤ ⎡ 0 ⎤
δ ḣINS INS
⎢ δ v̇z ⎥ ⎢ 2g
0 0 ⎥ ⎥⎢ δvz ⎥ ⎢ ⎥
⎥ ⎢
0 1
⎢ ⎢ ⎥ ⎢ 0 ⎥
⎢ δ ȧz ⎥ = ⎢ ⎥⎢
R
⎢ 0 0 − 1
0 0 ⎥ δa ⎥ + ⎢ ε ⎥ (23.20)
⎢ ⎥ ⎥⎢
z ⎥ ⎢ acc ⎥
⎣ k̇0 ⎦ ⎢
τacc
⎣ 0 0 0 Fk0 0 ⎦ ⎣ k0 ⎦ ⎣εatm ⎦
δ ḣ0 0 0 0 0 F δh0 εatm
h0
where:
1 1 vh
Fk0 = Fh0 = − + (23.21)
τatm 2 vref
The 5×5 matrix in (23.20) is the system dynamics matrix (F) and since it is constant
over a Kalman update interval we can determine the state transition matrix as we have
done before:
= eFt (23.22)
where t is the Kalman update interval.
Baro-inertial vertical channel 353
Ausman recommended specifying the Q matrix as follows. For the inertial altitude
error state, a small amount of noise is modeled to account for “computer resolution.”
However, this suggestion was made based upon embedded hardware available in the
1980s. Nevertheless, even with modern computational capability, a small amount of
modeled noise is prudent simply to keep the filter “awake” in estimating these states.
For example:
where t is the filter update interval. For the inertial vertical velocity error, again, a
small amount of noise is modeled but an additional term, based on velocity change,
is suggested to account for unmodeled scale-factor error:
−6 −8 m 2
Q(2, 2) = t 10 + 10 (vz [k] − vz [k − 1]) (23.24)
s
For the vertical accel bias state, system noise is needed to account for bias shifts,
vibration effects and gravity modeling error. Ausman suggests a constant value to
account for the bias shifts and vibration effects along with a horizontal velocity-
dependent term to account for unmodeled changes in gravity vector as the vehicle
moves over the surface of the earth:
vh m 2
Q(3, 3) = t 2 + × 10−10 (23.25)
vref s2
It should be noted that the length scales of weather systems and gravity fields are
arguably different (gravity variations tend to happen over shorter lengths than weather
systems) so a different vref may be needed in, for example, (23.21) than in (23.25).
For the baro scale factor error state, a small amount of noise is suggested to
account for temporal variation and an additional vertical velocity-dependent term is
suggested to account for error in the assumed linear model of altitude dependency.
−8 vz 2 −6
Q(4, 4) = t 2 × 10 + × 10 (23.26)
vref
Note that since Q(4, 4) is a scale-factor term, there are no units. Finally, for the baro
bias state, there is again a constant term to account for temporal variation and a
horizontal velocity-dependent term to account for spatial variation:
vh
Q(5, 5) = t(0.1) 1 + m2 (23.27)
vref
Having defined the state vector, the state transition matrix and the system noise
covariance matrix, we are done with the Kalman system equation and can now turn
our attention to the Kalman measurement equation. We start by modeling the inertial
altitude as the sum of the truth and the inertial altitude error:
hINS = ht + δhINS (23.28)
354 Fundamentals of inertial navigation systems and aiding
where h̃INS is the Kalman-corrected inertial altitude. From (23.20), the state vector is:
⎡ ⎤
δhINS
⎢ δvz ⎥
⎢ ⎥
x=⎢ ⎢ δaz ⎥
⎥ (23.34)
⎣ k0 ⎦
δh0
Recall the generic form of the Kalman measurement equation is:
z = Hx + v (23.35)
In the current case, we have a scalar measurement. By comparing (23.33) with (23.34)
and (23.35), it follows that:
H = 1 0 0 h4 −1 (23.36)
where
h̃INS
h4 = −h̃INS 1− (23.37)
2hrev
The Kalman measurement noise covariance matrix (R, a scalar in the current case)
models a number of factors. As mentioned in the three-state design, R models the
high frequency baro measurement noise. For high dynamic vehicles and for additional
precision, a term can also be added to R to account for additional noise during periods
of high rates of climb or descent. Finally, a term can also be added to R to account for
lag in the baro output. Specific numbers are dependent upon the particular barometric
Baro-inertial vertical channel 355
altimeter being used and the expected vertical dynamics but the high frequency noise
component is generally on the order of 1 m2 assuming a 1-sec update interval.
The filter design is completed by specifying the initial prediction for the state
vector and the associated initial prediction error covariance matrix. Since the states
are initially unknown and assumed to be zero mean, the initial predicted state vec-
tor is simply all zeros. As is typically done in actual practice, the initial prediction
error covariance matrix is assumed to be diagonal (almost, see below). Ausman
recommended the following values:
where P1− (1, 1) and P1− (1, 5) have been set equal to each other with the assumption that
the inertial altitude has been initialized to the baro altitude. All of the aforementioned
values (Q, P, R) must be adjusted in accordance with the actual hardware being used
(the accelerometer, in particular).
To aid the filter during the initialization transient, it can be assumed that the
aircraft is initially parked at a location with a known altitude. Similarly, since baro
aiding of the vertical channel is frequently considered to be a back-up mode in case
of loss of GNSS, the filter can be initialized assuming GNSS altitude is available for
some initial period. As noted by Ausman [5], the only changes in the filter during
this initialization are in the observation, data matrix, and measurement variance.
Assuming an aircraft parked at a known location (that closely approximates the truth),
the observation is:
z = hINS − ht (23.44)
H= 10000 (23.45)
Since in reality, the altitude of the “known” location is not actually known per-
fectly (and this is especially true for something like GNSS), we need to model the
measurement error/noise. Given nominal GNSS performance, a reasonable value is:
R = (3 [m])2 (23.46)
356 Fundamentals of inertial navigation systems and aiding
0.06
truth
Kalman filter model
0.04
0.02
baro scale factor error
–0.02
–0.04
–0.06
0 2,000 4,000 6,000 8,000 10,000 12,000
altitude in meters
Figure 23.3 Baro scale factor error truth model and the linear model implemented
by the Kalman filter
Baro-inertial vertical channel 357
12,000
10,000
8,000
meters
6,000
4,000
2,000
0
0 5 10 15 20 25 30 35 40 45
run time [min]
500
450
400
350
300
meters
250
200
150
100
50
0
0 5 10 15 20 25 30 35 40 45
run time [min]
400
300
200
100
meters
–100
–200
–300
–400
0 5 10 15 20 25 30 35 40 45
run time [min]
1.5
0.5
meters/second
–0.5
–1
–1.5
–2
0 5 10 15 20 25 30 35 40 45
run time [min]
800
600
400
200
micro-g
–200
–400
–600
–800
0 5 10 15 20 25 30 35 40 45
run time [min]
Figure 23.8 Vertical accel bias estimation error and one-sigma covariance bounds
360 Fundamentals of inertial navigation systems and aiding
200
150
100
50
meters
–50
–100
–150
–200
0 5 10 15 20 25 30 35 40 45
run time [min]
Figure 23.9 Sea level baro bias estimation error and one-sigma covariance bounds
0.15
0.1
0.05
ratio
–0.05
–0.1
–0.15
0 5 10 15 20 25 30 35 40 45
run time [min]
Figure 23.10 Sea level baro scale factor error estimation error and one-sigma
covariance bounds
Baro-inertial vertical channel 361
References
[1] Kayton M, Fried W. Avionics Navigation Systems. 2nd ed. New York, NY: John
Wiley & Sons; 1997.
[2] Perkins KL, Palmer RR, Ausman JS, inventors; Inc. North American Aviation,
assignee. Vertical velocity measuring system. United States Patent US 3005348;
1961 Oct 24.
[3] Ausman JS. Baro-inertial loop for the USAF Standard RLG INU. NAVIGATION:
Journal of the Institute of Navigation. 1991;38(2):205–220.
[4] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: with MATLAB® Exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
[5] Ausman JS.A Kalman filter mechanization for the baro-inertial vertical channel.
In: Proceedings of the 47th Annual Meeting of the Institute of Navigation; 1991.
[6] Barham PM, Manville P. Application of Kalman Filtering to Baro/Inertial Height
Systems. Royal Aircraft Establishment; 1969. Technical Report 69131.
[7] U.S. Standard Atmosphere, 1976. National Oceanographic and Atmospheric
Administration; 1976. NOAA-S/T 76-1562.
This page intentionally left blank
Chapter 24
Inertial initialization—Part B
24.1 Introduction
In an earlier chapter, we introduced the topic of inertial initialization. We showed how
with a stationary vehicle the accelerometer outputs could be processed to determine
rough initial estimates of pitch and roll and, having done so, the gyro outputs could
be processed to determine a rough estimate of yaw or heading (or wander angle
depending on the chosen convention). Although it is common for the entire process
to be referred to as “alignment,” it is more precisely “leveling” and “alignment.”
Although enhanced versions of this kind of processing (with fixed gain filters) were
used in early strapdown systems (i.e., 1970s), it is more common in modern practice
to use a Kalman filter.
position) due to erroneous earth-rate compensation of the attitude. Recall that earth
rate has north and vertical components that are dependent upon latitude. Latitude
is assumed to be known since the vehicle is at a known location. However, since
yaw/heading is not known, the guessed (and certainly erroneous) initial yaw will
cause the earth rate compensation to be incorrect on all three axes. This will eventually
cause the estimated nav-frame to be not locally level and gravity will couple into the
estimated horizontal axes inducing Schuler oscillations.
We saw this in the earlier chapter on Inertial Error Simulation. In that chapter we
saw that an initial azimuth error of only 1 milli-radian would induce velocity errors of
more than 0.6 m/s given enough time for the Schuler oscillation to reach its maximum
value. In the current situation, the initial azimuth error is, by definition, not small.
Figure 24.1 shows, as an example, the position and velocity error growth over 60 sec
given an initial azimuth error of π4 radians.
The combination of the known stationary condition of the vehicle and the non-
zero computed velocity (and non-zero computed displacement) of the vehicle provides
the observable for the Kalman filter. The simplest example is the so-called “zero
velocity update” sometimes abbreviated as ZUPT. The velocity computed by the
“free inertial” processing is the observed velocity error and thus is the input to the
filter. The H matrix consists of zeros except for “1”s in the relevant rows/columns
(i.e., those corresponding to the velocity error states). Recall from the Observability
chapter that the filter exploits the known coupling between the states (encapsulated
0
Position Error (m)
–5
–10
north
east
–15
0 10 20 30 40 50 60
0
Velocity Error (m/s)
–0.2
–0.4
–0.6 north
east
–0.8
0 10 20 30 40 50 60
Time in seconds
Figure 24.1 Position and velocity error growth due to a large ( π4 radians) initial
azimuth error. A stationary vehicle was simulated at a latitude of
45 degrees. No sensor or other errors were simulated
Inertial initialization—Part B 365
are valid. “Fine alignment” is simply the use of the in-flight filter aided by ZUPTS.
The fine alignment process continues at least until the filter has determined that the
attitude error covariances are sufficiently small to permit normal operation within
the specification values of the system. The system may make an annunciation that
the inertial system is ready for the vehicle to start moving. Even after this the system
will continue to process ZUPTS (and thus refine the alignment even further) until the
threshold of the motion detection algorithm is triggered. At low and mid-latitudes,
3–5 min are typically required for fine alignment.
Reference
[1] Groves P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation
Systems. 2nd ed. Boston, MA: Artech House; 2013.
Chapter 25
Conclusion: inertial+
I have been in the field of navigation for over 35 years at the time of this writing
and along the way it has been my very great privilege to be able to work with some
truly outstanding navigation researchers. Two of them had the very same perspective
on navigation but worded it slightly different. One lamented the fact that the modern
phrase “GPS/INS,” or more recently “GNSS/INS,” was a misnomer since the purpose
of the GNSS is to aid the INS, not the other way around (and thus it should be
INS/GPS or INS/GNSS). The second colleague very eloquently stated that the future
of navigation is “inertial-plus.” Plus what? Plus whatever the current aiding source
happens to be. In the 1960s, it was fly-over fixes. In the 1970s, it was a Doppler
navigator or TACAN. Since the early 1990s, it has been GPS/GNSS. With concerns
over GNSS vulnerabilities, the future of aiding will likely be a combination of GNSS,
signals-of-opportunity, vision systems and who knows what else. Nevertheless, the
core is, and will be, INS.
The laws of physics provide the input and thus there is no need to rely on radio-
frequency signals that can be disrupted. Even the vertical channel can be stabilized
with a barometric altimeter which is also essentially immune to external disturbances
(particularly for aircraft at altitude). Inertial systems provide high data rates, low
data latencies, and high-quality attitude determination as a by-product of determin-
ing velocity and position. Their prime technical weakness is long-term drift, hence the
need for external aiding. At the time of this writing, the only non-technical problem
with navigation-grade inertial systems is SWAP-C (size, weight and power, and cost).
Significant research and development efforts have been expended toward develop-
ing chip-scale navigation-grade IMUs and it seems likely that production units will
become available well within the careers of the younger readers of this book.
Furthermore, quantum-based IMUs are also a hot topic of research. These tech-
nologies hold the promise of several orders of magnitude improvement in residual
bias errors. However, these technologies also have weaknesses regarding bandwidth
and will almost certainly need to be integrated with a “traditional” IMU to achieve
acceptable performance. Since the high bandwidth unit is the core, we are talking
about a strategic-grade IMU aiding a navigation-grade IMU! No matter how you
look at it, the future of navigation is inertial-plus!
This page intentionally left blank
Appendix A
Two important stochastic processes
The random walk and first-order Gauss–Markov processes are two of the most impor-
tant stochastic processes used to model inertial sensor errors. They are both used
extensively in aided-inertial Kalman filters.
Figure A.1 The continuous-time random walk process. The input, w(t), is Gaussian
white noise
370 Fundamentals of inertial navigation systems and aiding
2
Noise Value
–2
–4
–6
–8
0 100 200 300 400 500
Time (sec)
Figure A.2 Discrete-time white noise that subsequently will be used to generate
random walk and first-order Gauss–Markov processes. Data rate is
2 Hz
noise with a standard deviation of 2. The running integral of this white noise is given
in Figure A.3. You will note that, although it is a random process, it appears to be
drifting over time. The term “random walk” comes from the idea of trying to model
the path of somebody who is going down a very narrow alley and had too much to
drink so they have a random chance of taking one step forward or one step back at
every moment in time. As you can imagine, as time goes on the person gets farther
and farther away from the starting point.
This is certainly the case in the particular run shown in Figure A.3. What happens
if we do it all over again with a fresh set of random numbers? The path may not trend
negative. It may go positive or it may hang around the middle. It just depends on how
the random numbers play out. Figure A.4 shows the results for 1,000 realizations of the
random walk process. You can see that sometimes the process ends up going negative,
sometimes positive, and sometimes it stays in between. Figure A.4 shows clearly that
when looking over the entire ensemble, the standard deviation (or variance) of the
process grows with time. Note however that, when looking over the entire ensemble,
the mean value is zero. A brief look back at Figure A.3 shows, however, this is clearly
not the case for a particular realization.
If the previous statements seem a bit puzzling, remember that in the data shown
in Figure A.4, computing the ensemble mean or variance involves processing all of the
realizations for a particular moment in time. Conceptually, when looking at Figure A.4,
we are taking vertical slices of the data and then computing the mean and variance. We
observe that a vertical slice at, say, 100 sec, has a narrower range of values than does
a vertical slice at 500 sec. Thus, the variance is increasing with time. The mean value,
however, remains zero. Since the process is not stationary, statistics computed over
Two important stochastic processes 371
20
10
–20
–30
–40
–50
–60
0 100 200 300 400 500
Time (sec)
Figure A.3 An example of a random walk process. This example was created using
the white noise shown in Figure A.2
150
100
50
Process Value
–50
–100
–150
0 100 200 300 400 500
Time (sec)
Figure A.4 One thousand realizations of a discrete-time random walk process. The
input discrete-time white noise was generated at a 2 Hz sampling rate
with a standard deviation of 2
time will not yield the same result as ensemble statistics. For example, the mean value
(computed over time) of the random walk example shown in Figure A.3 clearly is not
zero even though the ensemble mean (as illustrated in Figure A.4) is. For a discrete-
time random walk process, the variance expression given by (A.3) is modified by the
sampling interval [2]:
E[xk2 ] = (q · t)tk (A.4)
372 Fundamentals of inertial navigation systems and aiding
35
30
25
Standard Deviation
20
15
10
5
simulation
theory
0
0 100 200 300 400 500
Time (sec)
Figure A.5 Ensemble standard deviation of the data illustrated in Figure A.4 along
with the theoretical value of a discrete-time random walk process
generated from 2 Hz discrete-time white noise with a standard
deviation of 2
where E[xk2 ] is the variance of the random walk process at time index k, q is the
variance of the discrete-time white noise input, t is the sampling interval and tk is
the discrete-time sampling time at time index k. Note the standard deviation is simply
the square-root of the expression given in (A.4).
Figure A.5 illustrates the ensemble standard deviation computed from the data
shown in Figure A.4 along with the theoretical value given by the square-root of
Equation (A.4). There is clearly good agreement and it would be even better if we
used a larger number of runs. This growth in standard deviation in proportion to the
square-root of time explains why, for example, gyro angle random walk is expressed
in terms of “degrees-per-root-hour.” Since the variance of a random walk process
grows linearly with time, the standard deviation of a random walk process grows with
the square-root of time.
Figure A.6 The first-order Gauss–Markov process. The input, w(t), is Gaussian
white noise and the time-constant is the inverse of β
given by the output of the summing junction. The continuous-time state equation is
thus:
ẋ(t) = −βx(t) + w(t) (A.5)
The mean and variance of the first-order Gauss–Markov process are given by [2]:
E[x] = 0 (A.6)
q
E[x2 ] = (A.7)
2β
where q is the variance of the continuous-time white noise input w(t). Note that, unlike
the random walk process, the variance of the first-order Gauss–Markov process is not
a function of time and is, in fact, a constant. It is a stationary random process.
In discrete time, the first-order Gauss–Markov process is given by [2]:
xk+1 = e−βt xk + wk (A.8)
where t is the time-step in the discrete-time process and the time-constant of the
process is:
1
τ= (A.9)
β
Solving (A.7) for q yields:
2
q = 2βE[x2 ] = E[x2 ] (A.10)
τ
The relationship between the continuous-time model white noise input and the
discrete-time model white noise input is given by [2]:
q
qk = [1 − e−2βt ] (A.11)
2β
where qk is the variance of the white noise input of the discrete-time model and t
is the time difference between the current sample and previous sample. Equation
(A.11) can be simplified by expanding the exponential term with a Taylor Series and
retaining only zeroth and first-order terms (valid for small t):
q
qk ≈ [1 − (1 − 2βt)] = qt (A.12)
2β
374 Fundamentals of inertial navigation systems and aiding
40
30
20
10
Process Value
–10
–20
–30
–40
–50
0 100 200 300 400 500
Time (sec)
60
40
20
Process Value
–20
–40
–60
0 100 200 300 400 500
Time (sec)
16
14
12
Standard Deviation
10
4
simulation
theory
2
0 100 200 300 400 500
Time (sec)
Figure A.9 Ensemble standard deviation of the data illustrated in Figure A.8 along
with the theoretical value of a discrete-time first-order Gauss–Markov
process with a 50-sec time-constant generated from 2 Hz discrete-time
white noise with a standard deviation of 2
we would say that the process has high serial correlation. White noise, on the other
hand, is completely unpredictable and therefore we would say that the serial corre-
lation is zero. In general, if we have a process that has some serial correlation then,
given a few data points in the process, it is possible to predict the next point with some
376 Fundamentals of inertial navigation systems and aiding
degree of accuracy. If we look at the data in Figure A.7, there is clearly a positive
trend in the data from t = 180 to t = 300 sec. If we observed the process from t = 200
to t = 250 sec, we could say with some certainty that the process would likely trend
positive over the next few tens of seconds. The time-constant (or correlation time)
provides an indication of the limit of our ability to predict ahead.
The time-constant can be estimated from the data itself by computing the
autocorrelation function. For a discrete-time process, xk , with N data points, the
autocorrelation function is given by:
1
N
R(τ ) = xk xk+τ (A.14)
Rmax k=1
where Rmax is the maximum value of R(τ ) and simply normalizes the function. τ is
known as the “lag” value. The autocorrelation function thus involves taking the data
and point-by-point multiplying it with a shifted version of itself and then summing
the result.
The theoretical normalized autocorrelation function of the first-order Gauss–
Markov process is given by [2]:
R(τ ) = e−β|τ | (A.15)
The average of the normalized autocorrelation functions of the ten realizations
shown in Figure A.8 is plotted in Figure A.10 along with the theoretical value.
The time-constant is defined by the lag at which the normalized autocorrelation
function decays to a value of e−1 (approximately 0.368). This value of e−1 is also
depicted in Figure A.10 and we see that the theoretical normalized autocorrelation
1.2
simulation
theory
1
0.8
Correlation Value
0.6
0.4
0.2
–0.2
–200 –150 –100 –50 0 50 100 150 200
lag value in seconds
function decays to this value at a lag of 50 sec. This should not be surprising since we
set β = 50
1
in Equation (A.15). However, note that the result obtained from the data
closely matches this theoretical value.
References
[1] Brown RG, Hwang PYC. Introduction to Random Signals and Applied Kalman
Filtering: With MATLAB® Exercises. 4th ed. Hoboken, NJ: John Wiley & Sons,
Inc.; 2012.
[2] Gelb A, editor. Applied Optimal Estimation. Cambridge, MA: The M.I.T. Press;
1974.
This page intentionally left blank
Appendix B
One-at-a-time measurement processing
0 · · · 0 rm
We will denote the ith row of the data matrix as hi and thus Hk may be written as:
⎡ ⎤
h1
⎢ h2 ⎥
⎢ ⎥
Hk = ⎢ . ⎥ (B.2)
⎣ .. ⎦
hm
The state vector estimate and the estimation error covariance matrix are built up
incrementally as the measurements are processed one at a time. Variables that are
internal to the one-at-a-time measurement processing loop are initialized as:
x̃0 = x̂−
k (B.4)
At a given time index, k, the loop over the measurements in the vector (z k ) is given by:
for i = 1:m,
Kki = P̃i−1 hTi / hi P̃i−1 hTi
x̃i = x̃i−1 + Kki zi − hi x̃i−1
P̃i = I − Kki hi P̃i−1
end
One-at-a-time measurement processing 381
Once the loop is completed, final estimation results are given simply by:
x̂+
k = x̃ m (B.6)
Pk+ = P̃m (B.7)
where the superscript “+” explicitly denotes an estimate (versus a prediction which
we denote by superscript “−”). As mentioned earlier, the computation of the state
prediction and prediction error covariance matrix are unchanged.
It should be noted that modern tools such as MATLAB® are so extremely efficient
in matrix processing (including inverses) that the computational advantages of the one-
at-a-time processing are negligible in some cases. However, the scalar processing is
still used in existing software bases due to holdover from legacy embedded processors
and compilers.
Reference
[1] Levy L. Integration of GPS with Inertial Navigation Systems [Short Course
Notes]. NavtechGPS; 2000.
This page intentionally left blank
Index
loosely coupled GNSS/INS Kalman MSE: see mean squared error (MSE)
filter 304–5 MTBF: see mean time between failure
loosely coupled GPS/INS 305–7 (MTBF)
fixed number of visible satellites multi-oscillator 99
307–9 multivariate Kalman filter
variable number of visible aging resistor 201–3
satellites with compensation in covariance matrices 196–8
filter 313–16 discrete-time Kalman filter
variable number of visible 199–200
satellites without compensation estimation and prediction error
in filter 310–13 covariance matrices 199
loosely coupled Kalman filter with Kalman filter “system equation” and
generic position aiding source “measurement equation 195–6
301–4 simple radar 203–9
see also tight coupling system simple radar example 193–5
loosely coupled architecture 282 system and measurement noise
loosely coupled INS/DME Kalman covariance matrices 198–9
filter 278–81
low-noise 275 nav-to-body DCM: see nav-to-body
direction cosine matrix
MA: see misalignment (MA) (nav-to-body DCM)
mass attraction 57 nav-to-body direction cosine matrix
matrix processing system 381 (nav-to-body DCM) 28–9, 155
mean squared error (MSE) 166 navigation 5
mean time between failure (MTBF) aids 6
164 equation 61
measurement equation 193, 195–6 for fixed frame 39–41
measurement error covariance matrix inertial frame mechanization of
318, 379–80 56–7
measurement error variance 181 navigation frame mechanization of
measurement model of tight coupling 57–9
system 323–6 system 162
measurement noise covariance matrices complementary filter to navigation
198–9, 237 system integrations sled track
measurement vector 201, 380 case study 255–8
MEMS: see microelectromechanical requirements 163–4
systems (MEMS) navigation frame (nav-frame) 19, 69,
meridional radius of curvature 65 83–4, 122
microelectromechanical systems body-to-nav quaternion for
(MEMS) 12, 93 navigation frame rotation 81
misalignment (MA) 104 computation of navigation-frame
Monte Carlo simulations 145 velocity components 89–90
of Kalman filter 186–91 earth rate in 61–2
of recursive least squares estimator mechanization of navigation equation
184–6 57–9
390 Fundamentals of inertial navigation systems and aiding