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
extended kalman filter for mobile robot
Started by ●May 29, 2006
Reply by ●May 29, 20062006-05-29
"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 ***