DSPRelated.com
Forums

extended kalman filter for mobile robot

Started by Franzi May 29, 2006
Hi everyone,

I am doing a thesis about fault detection and isolation. Therefore I am
using a nonlinear Kalman filter.
The process I consider is a two wheeled mobile robot. The inputs are the
angular velocities of the wheels, and the outputs the posture, that means
x, y, and angle phi.
The model is:

x(k+1) = x(k) + 0.5(w1*r1+w2*r2)*cos(phi)*dt
y(k+1) = y(k) + 0.5(w1*r1+w2*r2)*sin(phi)*dt
phi(k+1) = phi(k) + 0.5*(w1*r1-w2*r2)/b

where k is the time index, w1, w2 the angular velocities and r1, r2 the
radii of the wheels. dt is the step time, and b the radius of the robot.

I have implemented this modell in Simulink, and now I want to implement an
extended kalman filter in matlab.

With respect to this I have 2 questions:

1) I implemented the filter in a m-file in Matlab. While the robot goes
its normal way, that means there is no fault and the filter modell is
equivalent to the real process, the filter outputs should follow the real
outputs? Right? But when a fault occurs, i.e. that the filter process
(without a fault) differs from the real system (with a fault), the filter
should go on with approximation the fault free situation, and therefor the
outputs of filter and system should differ. Is this right?

2) In the simulink model I have added measurement noises with standard
deviations sx,sy,sphi. Also I added process noise to each state (x,y,phi),
with deviations px, py, pphi. When I implement Q and R in the Kalman
filter, the values in the diagonal (when I neglect relations between the
variables) should be: R: sx^2,sy^2,sphi^2; Q: px^2,py^2,pz^2. Right?
But my filter does not really work with these values... I tried to change
them to nearly every possible amount, but nothing worked. But I am also
quite sure that the implemented process model as well as the
implementation itself are correct. Is there any "rule" or help how to
choose Q and R in order to get a good filter performance? I really
searched a lot, and read lots of articles, but I did not find anything...

Can anyone help me?

Thanks a lot!

Have a nice day,

Franziska


"Franzi" <schokofleck@gmx.de> wrote in message
news:efWdnbKuGpX7pebZnZ2dnUVZ_tSdnZ2d@giganews.com...
> Hi everyone, > > I am doing a thesis about fault detection and isolation. Therefore I am > using a nonlinear Kalman filter. > The process I consider is a two wheeled mobile robot. The inputs are the > angular velocities of the wheels, and the outputs the posture, that means > x, y, and angle phi. > The model is: > > x(k+1) = x(k) + 0.5(w1*r1+w2*r2)*cos(phi)*dt > y(k+1) = y(k) + 0.5(w1*r1+w2*r2)*sin(phi)*dt > phi(k+1) = phi(k) + 0.5*(w1*r1-w2*r2)/b > > where k is the time index, w1, w2 the angular velocities and r1, r2 the > radii of the wheels. dt is the step time, and b the radius of the robot. > > I have implemented this modell in Simulink, and now I want to implement an > extended kalman filter in matlab. > > With respect to this I have 2 questions: > > 1) I implemented the filter in a m-file in Matlab. While the robot goes > its normal way, that means there is no fault and the filter modell is > equivalent to the real process, the filter outputs should follow the real > outputs? Right? But when a fault occurs, i.e. that the filter process > (without a fault) differs from the real system (with a fault), the filter > should go on with approximation the fault free situation, and therefor the > outputs of filter and system should differ. Is this right? > > 2) In the simulink model I have added measurement noises with standard > deviations sx,sy,sphi. Also I added process noise to each state (x,y,phi), > with deviations px, py, pphi. When I implement Q and R in the Kalman > filter, the values in the diagonal (when I neglect relations between the > variables) should be: R: sx^2,sy^2,sphi^2; Q: px^2,py^2,pz^2. Right? > But my filter does not really work with these values... I tried to change > them to nearly every possible amount, but nothing worked. But I am also > quite sure that the implemented process model as well as the > implementation itself are correct. Is there any "rule" or help how to > choose Q and R in order to get a good filter performance? I really > searched a lot, and read lots of articles, but I did not find anything... > > Can anyone help me? > > Thanks a lot! > > Have a nice day, > > Franziska > >
No - just guess. M.P *** Posted via a free Usenet account from http://www.teranews.com ***