0
votes

I am working on my project, which is an autonomous vehicle. We have fixed 1 pair of odometry encoder on 2 wheels and 1 laser gyro on top of it. I am designing a Kalman filter to get filter the noise in measurement. However, my problem is that, I do not know how to work with 2 separate measurement noise.

In Kalman filter equation, the measurement prediction is that

y(k+1)=g(xk, uk,vk) 

where vk is measurement noise covariance matrix. Well I am confused because in my case, I have 2 sensors (odometry and gyro) measuring 2 different thing, then how can I construct the convariance matrix for the Kalman filter?

2
As far as I can see you are mixing measurements together. The odometry and gyro readings have no relation to each other as far as the kalman filter is concerned. The filter provides a means to predict a next measurement of a single reading. You'd therefore have to use one filter on each sensor. On the question on how to calculate the covariance matrix I'd recommend reading more into Kalman filters in general, as it is likely tricky to implement the filter without having an understanding how it works.Bartvbl
Hi Indeed you are right. It was my mistake. The gyro reading should be read based on odometry at once. Kalman filter is concerned with only one measurement. I did not read enough :D And in case, if I want to combine reading of odometry in bearing and gyro, I can use sensor fusion with Kalman filter, but it is absolutely another thing to saySouris
You're welcome =) Could you perhaps accept it as an answer?Bartvbl

2 Answers

6
votes

The Kalman filter can handle noise measurements from multiple sources. You treat them together as a single noise vector. In your case, since you have two noise measurements you'll have a 2-by-1 vector. In Matlab notation...

mk = [vo; vg]; 

Here mk is your measurement noise vector. It has 2 elements: vo (odometry noise), and vg (gyro noise).

Since your measurement noise is a 2-by-1 vector, your measurement noise covariance matrix will be a 2-by-2 matrix. In Matlab notation...

vk = [varo, rho; rho, varg];

Here vk is your measurement noise covariance matrix. Its diagonal elements, varo and varg, are the variances of your odometry and gyro noises. The off-diagonal element, (rho) is the correlation between the odometry and gyro noises.

1
votes

As far as I can see you are mixing measurements together. The odometry and gyro readings have no relation to each other as far as the kalman filter is concerned. The filter provides a means to predict a next measurement of a single reading. You'd therefore have to use one filter on each sensor. On the question on how to calculate the covariance matrix I'd recommend reading more into Kalman filters in general, as it is likely tricky to implement the filter without having an understanding how it works.