created 30/01/2009            last update 15/02/2010 author: Claude Baumann

Many excellent robots have been developed with the LEGO Mindstorms robotics kit during the last years. The number and the variety of subjects and solutions for such robots are steadily growing. So does the complexity ! Nobody is really surprised anymore that robot applications that were reserved for highly sophisticated and expensive laboratories can be replicated or even invented on the base of the outstanding LEGO material. And this certainly concerns both the hardware and the software. Often, the original kit is extended with third party electronics or - on the software side - with alternative programming tools or even replacement firmware. This just confirms the extraordinary flexibility and versatility of the LEGO stuff. The graphical programming environment that initially has been the ROBOLAB software and now turns over to the LabVIEW NXT-G, with the NXT toolkit behind, certainly is part of the enormous success in the educational world. Profiting from the special impact of the Mindstorms project on teaching technology and engineering, people have developed tutorials and introductions for many subjects in computer science or control- and system theory on the base of practical LEGO robot realizations. There are books and web-sites, where the reader learns about programming in C, JAVA or LabVIEW, where he finds guides to PID-control and filtering techniques and many other interesting topics.

Similarly we start this page in order to present the Kalman filtering technique to a larger and younger audience. There are countless possibilities, where this amazing data-processing method can improve or solve problems that normally are out of reach for most adult LEGO roboticists - not to talk of the younger student or the hobbyist. We are aware that there are serious risks of being not precise enough or too superficial from the erudite point of view. Sometimes ideas might appear not being expressed in the required rigorous or complete way. However these issues are nothing but the usual trade-off of any attempt of vulgarization. The following lines and figures try to be as clear and correct as possible. The author is open for any hint and suggestion.


This open-ended web-site is conceived as a growing collection of articles about the Kalman filter that form a digest introduction to the concept, the background and the application of the filter. The reader will find an updated bibliography of related books, articles and web-sites. There will be LabVIEW simulations and NXT applications that the user can try to run on his own. Be prepared for an exciting time with one of the most interesting subjects of modern computer science. (Some restrictions though: This site will only treat time discrete linear systems. For the time being the LabVIEW NXT tookit only supports integer numbers. This causes obvious issues and limitations for a valuable adaptation of the filter equations. Care must be taken to keep the fix point variables within the allowed range. There will be a concise discussion about scaled fix point representation.)

  1. Intuitive introduction to the Kalman filter (Where is Roger Rabbit?)
  2. Imperfect data in a noisy world (The scalar Kalman filter applied to Roger Rabbit)
  3. Scalar Kalman filter with dynamic model (still referred to Roger Rabbit)
  4. How to fuse measurements
  5. Colour tracking with the Kalman filter, an experiment
  6. 1D-navigation using a scalar Kalman filter
  7. Binaural phase detection with the NI DSP-toolkit and the Kalman filter
  8. 2D-navigation using a matrix-based Kalman filter
  9. NEW: Das Kalman Filter wird 50 (Article in German)