Filters¶
Algorithms that use uncertain measurements from sensors to predict unknown variable with acceptable accuracy, to estimate the state of robot and its environment.
flowchart LR
input[/u/] -->
2(( ))
sn(( )) --->|System/Process Noise| 2
2 --> p[Process] ---> |Sensor/Measurement Noise| y[/y/]
p --> |y_v| kf
input -->
kf[[Kalman Filter]] -->
oe[/y_e/]
Filters vs Rolling Statistics¶
The Kalman filter is better suited for estimating things that change over time. The Kalman Filter lets you add more information about how the system you're filtering works. In other words, you can use a signal model to improve the output of the filter.
Sure, a moving average filter can give very good results when you're expecting a close-to-constant output. But as soon as the signal you're modelling is dynamic (think speech or position measurements), then the simple moving average filter will not change quickly enough (or at all) compared with what the Kalman Filter will do.
The Kalman filter uses the signal model, which captures your knowledge of how the signal changes, to improve its output in terms of the variance from "truth".
Concepts¶
Denotation | ||
---|---|---|
Measurement | \(x_{t, t}\) | |
Estimation | Current state | \(\hat x_{t, t}\) |
Prediction | Future state | \(\hat x_{t, t-1}\) |
Applications¶
These can be used in any field, but a few examples
- Guidance
- Navigation
- Control of vehicles
Filter Design¶
- Define problem which consists of the state
- Define the motion model
- Define how the state will be measured
- Define uncertainty in system’s dynamic model
- Implement & test the filter with know inputs & outputs
- Tune the filter
Batch vs Recursive¶
Batch | Recursive | |
---|---|---|
Complexity | \(O(n)\) | \(O(1)\) |
Preferred |