✏️
wiki
  • Introduction
  • Career
    • Data Science
      • Machine Learning
      • Natural Language Processing
      • Datasets
      • Computer Vision
      • Data Engineering
      • Web Scraping
      • Data Visualisation
    • Robotics
      • Localisation
        • Kalman Filtering
    • Web Development
      • React
  • Tech
    • Apps
      • Mac OS
        • Magnet
        • PDF Expert
        • PixelSnap
        • Digital Colour Meter
        • Daisy Disk
        • Alfred
        • Bartender
        • iStat Menus
      • Linux
        • Playerctl
      • Terminal Emulators
      • Text Editors
      • Shell
    • CLI
      • Git & Github
      • Monitoring
    • Desktop Customisation
  • Lifestyle
    • In progress... :)
  • Blog
    • Why I Migrated from Windows to Linux
Powered by GitBook
On this page
  • A Simplification
  • Resources

Was this helpful?

  1. Career
  2. Robotics
  3. Localisation

Kalman Filtering

PreviousLocalisationNextWeb Development

Last updated 4 years ago

Was this helpful?

Kalman Filtering is one type of localisation that determines the robot's current state (eg, position, velocity, bearing) through a combination of sensors and its state model (eg, dead-reckoning).

A Simplification

Suppose that the robot moves in a 1D plane. It starts from the initial position, $x=0$, and moves at a constant velocity $v$. We can estimate the distance after $t$ seconds to be $x_t=vt$. This represents our state model.

In the real-world, $x_t=vt$ can approximate the distance travelled. However, in any robot application there will be errors. What if the ground isn't perfectly flat? What if there is friction that wasn't accounted for? What if the robot wasn't travelling at $v$, but a value close to it (ie, encoding-based errors)?

These issues will result in our state model $x_t=vt$ to be inconsistent with the real location of the robot. This inconsistency or error will be small in the beginning, but it will slowly accumulate to bigger errors over time.

Kalman Filtering aims to reduce these errors by using one important feature on most robots...sensors! Suppose the robot had a sensor that could detect its distance from a wall placed at $x=10$. For example, if the robot's sensor gives a value of 3, we know roughly that the robot should be around $x=10-3=7$. This will add another way of estimating its position on top of the state model!

Now we know that the state model $x=vt$ is not perfectly accurate, but how about the sensor values? Nope, it is not perfect either! The sensor could sometimes pick up irrelevant things in the environment (ie, noise) that affects its readings as well.

Now let's consider the same situation. Let's assume the state model predicts the robot to be at $x=5$. The sensor on the robot predicts the robot to be at $x=6$. What can we do? Intuitively, we would take the average and say the robot is at $x=5.5$! This is ultimately what Kalman Filtering does behind its seemingly complicated maths.

Resources

is a humorous and informative explanation of Kalman Filtering using Pokemon.

Here