Using processing I have implemented a 2D Kalman Filter java applet. Here are my personal notes gathered during the development:

**Matrix A**

State transition (n x n) matrix.

**Matrix B**

Control input (n x l) matrix.

**Matrix C**

Extraction matrix (m x n) to get the measurement from the data.

**Matrix P**

Covariacne matrix (n x n) of state x.

Can bez zero from the beginning, it will be computed by the KF algorithm.

**Matrix Q**

Action Uncertainty - co-variance matrix (n x n) of the process noise (error in process).

The KF works bad without that eg. when the matrix has all elements zeros.

**Matrix R**

Sensor Noise - co-variance matrix (m x m) of the measurement vector z.

The KF can not work without that eg when the matrix has all elements zeros.

**Matrix K**

A n x m matrix is a gain or blending factor that minimizes a posteriori estimate error co-variance P.

**Vector x**

State vector - n-dimensional.

**Vector u**

l-dimensional vector of control input

**Vector z**

Measurement vector - m-dimensional

Below you can see my implementation of the KF filter. The tank is driving in the circle. Green rectangle shows noisy measurements that the KF is getting and the blue rectangle represents position of the tank estimated by the KF. The true position is of course represented by the tank itself. Press the 'space' button to enable/disable measurement update of the KF. When the measurement update is disabled, only the prediction is taking place (no measurements are feeded into KF) and therefor you may watch how the blue rectangle is constantly moving in a direction although the tank is turning away.

## Comments

to dobre číta.

Podarilo sa ti, a ja viem o čom hovorím, lebo takéto veci

je trochu ťažké nájsť na nete

RSS feed for comments to this post