DSPRelated.com
Forums

KALMAN FILTER - model

Started by Giovanna April 1, 2004
Hi!
I've already write a post for the tuning of the calman filter,but
maybe the problem in my program was another one...maybe the model was
wrong.

This's the problem:

A robot is moving on a white plane,looked by a camera.
I send to the robot the command for speed and angolar speed.
I come back from the image to the robot's coordinates on the plane by
the adge detection and the homography.

So,all I know is:

-the coordinates X and Y on the plane of the robot (misurated)
-the speed of the robot
-the angolar speed of the robot

Anybody can suggest me a discrete model for kalman filter of this
situation?
(matrix A,B,C,D)

Anybody has already studied this problem?
Anybody have got matlab file on this problem?

Thanks

Luca
Giovanna wrote:

> Hi! > I've already write a post for the tuning of the calman filter,but > maybe the problem in my program was another one...maybe the model was > wrong. > > This's the problem: > > A robot is moving on a white plane,looked by a camera. > I send to the robot the command for speed and angolar speed. > I come back from the image to the robot's coordinates on the plane by > the adge detection and the homography. > > So,all I know is: > > -the coordinates X and Y on the plane of the robot (misurated) > -the speed of the robot > -the angolar speed of the robot > > Anybody can suggest me a discrete model for kalman filter of this > situation? > (matrix A,B,C,D) > > Anybody has already studied this problem? > Anybody have got matlab file on this problem? > > Thanks > > Luca
This is an interesting problem. Your model for the Kalman filter should be the model of the robot -- but your system is quite nonlinear in that the X and Y derivatives depend on the robot's speed times the cosine and sine, respectively, of it's direction. Modeling the system should be fairly easy but pulling answers out of it won't be. Here are some thoughts: 1) You need to carry the robot's direction as a state. 2) The amount of information you'll have on the robot's direction will vary approximately proportionally to speed/angular velocity. 3) As a consequence of (2) if the robot stops you'll have _no_ feedback on it's direction until it moves again -- your only clue will be dead reckoning from the angular speed command. 4) As a consequence of (3) a theoretically optimal system (assuming you're using the observer to control the robot) would make the robot move a bit after stopping and turning, just to get an idea of the robot's direction. 5) You may need to take the control dynamics into account - i.e. if the robot's acceleration takes more than a sample time you'll need to carry acceleration as well as speed as a state -- possibly for angular as well as positional. 6) This would be a blast and a half if I had time to pursue it -- have fun! -- Tim Wescott Wescott Design Services http://www.wescottdesign.com