# Kalman filters for dummies

orochimaru

## Main Question or Discussion Point

Hi,
can anyone enlighten me on kalman filter? the maths is overwhelming for me.

SGT
Could you post a specific question? What part of the theory you don't understand?

orochimaru
actually i'm trying to do tracking of a number of corner features across a sequence of image frames.
however, some of these features will be outside the frame after a certain number of frames. Also, some of the corners (which i use opencv to detect) may disappear in between the sequence of frames.

how should i use kalman filter in this case?
i deeply appreciate any help anyone can give because i'm really lost in how to implement this. i mean how should i set the kalman filter equations?

Last edited by a moderator:
SGT
The Kalman filter is an optimal estimator for dynamic systems. Can you represent your points under the form:
$$x_{k+1} = x_k + v_{xk}T y_{k+1} = y_k + v_{yk}T$$
and the observations under the form:
$$z_{k+1} = f(x_{k+1}, y_{k+1}) + v_{k+1}$$

Where $$x_k$$ and $$y_k$$ are the coordinates of the point in the instant $$t = kT$$, $$z_{k+1}$$ is a function of the coordinates $$x_{k+1}, y_{k+1}$$ and $$v_{k+1}$$ is the measurement noise?
If this is possible, you can use a Kalman filter (if the function $$f$$ is linear), or the Extended Kalman filter (if $$f$$ is nonlinear)

orochimaru
my mobile robot may be moving in a straight line, could also rotate and also moving in an arc manner (in situation that it travels along a bend).
1. so is this a nonlinear system?
2. i do not have the Vxk if it refers to the velocity.
3. i have a 1000 of points to track. is this implementable?

btw, is there any such codes already available in the web? i havent managed to find any on the web so far.
Thanks for the help.

SGT
orochimaru said:
my mobile robot may be moving in a straight line, could also rotate and also moving in an arc manner (in situation that it travels along a bend).
1. so is this a nonlinear system?
Not necessarily. The equations of motion are linear, What is your measurement equation? Do you measure the x and y positions directly or do you measure angle and distance to some point?
2. i do not have the Vxk if it refers to the velocity.
No problem, the filter estimates the components of velocity for you.
3. i have a 1000 of points to track. is this implementable?
Yes.
btw, is there any such codes already available in the web? i havent managed to find any on the web so far.
Each implementation of the Kalman filter depends on the dynamic and measurement equations, so I don't believe you could find an implemented filter that suits your application.
Thanks for the help.
You're welcome.

orochimaru
the problem is i do not really know how to form these eqns. can someone give me some hints on how i should form the eqns for my problem?

SGT
I can say how to form the dynamic equations. As for the measurement equation, I need to know what do you measure and what is the measurement error. It would be also useful to know if there is some process noise, meaning if you order your robot to go to position (1,2) for instance, it may be going to position (0.99,1.01), meaning a process noise of 0.01.