Numerous simplified, but nontrivial, real-world examples are presented in
detail, showing the many ways in which Kalman filters can be designed. Some-
times mistakes are introduced intentionally to the initial designs to show the inter-
ested reader what happens when the filter is not working properly. Rarely in real
life is a Kalman filter working after the first try. In fact, it usually takes many tries
just to get the filter to fail (i.e., even getting the code to compile and give ridiculous
answers is a challenge)! Therefore, we intentionally take the reader through part of
that realistic iteration process. It is hoped that readers with varied learning styles
will find the text’s practical approach to Kalman filtering to be both useful and
refreshing.
The text also spends a great deal of time in setting up a problem before the
Kalman filter is actually formulated or designed. This is done to give the reader
an intuitive feel for the problem being addressed. The time spent understanding
the problem will always be important in later determining if the Kalman filter
is performing as expected and if the resultant answers make sense.
Often the hardest part in Kalman filtering is the subject that no one talks
about—setting up the problem. This is analogous to the quote from the recent
engineering graduate who, upon arriving in industry, enthusiastically says, “Here
I am, present me with your differential equations!” As the naive engineering
graduate soon found out, problems in the real world are frequently not clear and
are subject to many interpretations. Real problems are seldom presented in the
form of differential equations, and they usually do not have unique solutions.
Therefore, we will often do problems in several different ways to show the reader
that there is no one way of tackling a problem. Each approach will have advantages
and disadvantages, and often the filter designer will actually do the problem several
different ways before determining the best approach for the application at hand.
The text mostly makes use of the fundamental techniques that were intro-
duced by Kalman five decades ago. There have been many different implemen-
tations, variations, and innovations of the original Kalman filter, which were
developed for real applications because of computer hardware constraints.
However, most of those approaches are ignored in this text simply because com-
puter hardware has improved so dramatically since the 1960s that many of those
innovative techniques are no longer required. Using double-precision arithmetic
on today’s 32-bit desktop or flight computers usually negates the need for such
heroic techniques as square-root filtering. It is our belief that discussing such tech-
niques in an introductory text such as this will only confuse readers and possibly
discourage them from ever attempting to build a Kalman filter because of its per-
ceived complexity. This does not mean that Kalman filters always work on
modern computers, but most of the time their failure to work is not associated
with subtle numerical problems. Usually the filter’s inability to work properly
has more to do with mundane issues, such as how the filter was formulated or
how design parameters were chosen. Simple programming mistakes rather than
computer round-off errors often account for a majority of the initial errors
encountered in debugging a Kalman filter on today’s computers.
xviii INTRODUCTION
Downloaded by NORTHWESTERN POLYTECHICAL UNIV. on November 14, 2021 | http://arc.aiaa.org | DOI: 10.2514/5.9781624102776.0000.0000 | Book DOI: 10.2514/4.102776