# Kalman filters for dummies

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

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

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:
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)

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 haven't managed to find any on the web so far.
Thanks for the help.

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 haven't 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.

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?

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.