Updated: Jul 23, 2019
On the 50th anniversary of the first human setting foot on the moon, in July 1969, let’s take a look at a fundamental piece of technology that helped make it possible: the Kalman filter. Named after Rudolf Kálmán, Hungarian-born American electrical engineer, mathematician, and inventor, the filter is a mathematical technique he proposed in 1960. It is particularly useful in estimating the position of objects based on multiple sensor observations, and is widely implemented in the guidance, navigation, and control systems of vehicles and aircraft.
It was during a visit by Kalman to NASA Ames Research Center in Mountain View, that NASA engineers saw that Kalman’s techniques could solve the nonlinear problem of trajectory estimation for the Apollo program. However, making a Kalman filter algorithm run on a 1960’s computer was an impossible task. A technical memorandum (from NASA archives, pictured below) exemplifies the research effort in the 1960s and 1970s that went into implementing “a numerically precise Kalman filter on a computer system with limited storage, suitable for real-time applications, e.g., on-board navigation of aircraft or spacecraft.”
Triangular Covariance Factorizations for Kalman Filtering (NASA archives)
Another major issue of the Kalman filter 50 years ago was the lack of computational stability from rounding errors due to the limitation of 8 bits. Many complicated variants were created to deal with this.
Efforts of the engineering team continued, and eventually the perseverance paid off:
The Apollo computer used 2k of magnetic core RAM and CPU built from Integrated Circuits (ICs). Originally, NASA didn’t plan to use the Apollo computer for guidance at all. The intent was to use radio signals from the ground to control the spacecraft. Those plans changed when MIT engineers were able to implement a Kalman filter into such a tiny computer. That was truly remarkable.
Jack Crenshaw, engineer on the Apollo program
In no small part, engineering feats such as this made the mission to the moon successful. Fifty years on, the Kalman filter algorithm is used here on Earth in many areas, including robotics, drones and VR gaming. Researchers at the Tokyo University of Science in 2014 used Kalman filters to make a Roomba® vacuum cleaner successfully detect and avoid humans. The US Federal Reserve has used Kalman filters to determine long-term neutral interest rates, and guide monetary policy.
Sebastian Thrun, founder of Google’s self-driving car, teaches the topic of using Kalman filters for real-time object tracking in the Self Driving Car Engineer Nanodegree. This month, the Autoware project announced the release of a set of open-source algorithms, including a Kalman filter, as a set of open-source production oriented reference implementation for a real-world self-driving car.
A number of technologies have co-evolved over decades, and reached a point where the combination is making autonomous driving a reality that’s useful and valuable to society. However, for the self-driving tech stack to transition from prototype to commercial deployment, companies will look for standardization and interoperability between components like hardware and algorithms. Interoperability fosters competition, which helps increase quality and lower cost, accelerates the autonomous future, and justifies the billions of dollars being spent on autonomous driving R&D.
At Apex.AI, we believe that the future of the automotive industry is in a smart and modular tech stack, enabling engineering quality and velocity, with strong requirements for safety at all levels. Join us, we are hiring!
Kalman’s 1960 paper: A New Approach to Linear Filtering and Prediction Problems
Kalman filter to help Roomba avoid humans: IEEE publication
Jack Crenshaw interview (2009)
US Federal Reserve: An Estimate of the Long-Term Neutral Rate of Interest (2018)