ethz-asl / ethzasl_sensor_fusion

time delay single and multi sensor fusion framework based on an EKF
327 stars 162 forks source link

Noise configuration #15

Open NikolausDemmel opened 11 years ago

NikolausDemmel commented 11 years ago

Hi,

I'm the filter together with a ptam-like 6DoF vision pose update. Initial tests suggest the filter is working in principle, but there are some issues. For example the scale is very quickly converging to an unchanging value close to the initialization, leading me to believe the filter is getting overconfident about the variance of the scale and others.

As suggested in the tutorials my next goal is to set the noise parameters as accurately as possible. However I'm not sure I can interpret the manufacturer's information correctly. I don't have the calibration certificate handy, so I'm relying on the manual for now until I get my hands on the certificate. In the manual of my XSens MTi IMU the attached image displays the information about sensor noise. And the following is what I made of it:

 noise_acc: 0.002
 noise_accbias: 0.00004 # 0.002 * 0.02 ???
 noise_gyr: 0.00087     # 0.05 degrees in radians
 noise_gyrbias: 0.00087 # 0.00087 * 1 ???
 noise_scale: 0.0       # ??
 noise_qwv: 0.0         # ??
 noise_qci: 0.0         # ??
 noise_pic: 0.0         # ??
 delay: 0.00
 meas_noise1: 0.01      # ??
 meas_noise2: 0.02      # ??

In particular I'm not sure how to deduce the bias noises from the info in the attached image.

What about the noises for scale, world-vision drift, camera-image rotation, image-camera translation? I guess these mark the process noise during prediction. In all examples I have seen they were set to 0. When would it be appropriate to change them to non zero? (on a side note, why is inter-sensor rotation in "ci" direction and translation in "ic" for the noises?)

My 6DoF pose sensor does not give me useful variance information at the moment, so I pulled the numbers out of thin air. Can you suggest a reasonable method to determine the accuracy of a black box 6DoF sensor. Are there maybe typical signs of over- or under-confident measurement updates (I guess overconfident is more of a problem)?

Any hints and partial answers are greatly appreciated as always.

Best regards, Nikolaus

xsensmticalibration

simonlynen commented 10 years ago

@NikolausDemmel ,

I am sorry for the super late reply, this seem to have been lost completely. I am answering in line...

In particular I'm not sure how to deduce the bias noises from the info in the attached image.

I guess you found this out by now. If not, express the noises as unit per second and look in Stephan Weiss' PhD thesis for the derivation of the discrete time noises from datasheet values.

What about the noises for scale, world-vision drift, camera-image rotation, image-camera translation? I guess these mark the process noise during prediction. In all examples I have seen they were set to 0. When would it be appropriate to change them to non zero? (on a side note, why is inter-sensor rotation in "ci" direction and translation in "ic" for the noises?)

Setting the noises of these values will simply inflate your covariance and lead to worse filter performance. I suggest that you estimate the inter-sensor calibration as accurately as possible (using a third-party tool or the filter on an appropriate dataset) and leave the noise to zero. The noises on scale and world-vision-drift states depend on your setup. However as long as your covariance of the 6DOF measurement is arbitrarily guessed (see answer below), there is no way of deriving a meaningful random-walk noise density for these states. Expressing the rotation/translation of the inter-sensor calibration in different directions is a relict from the mathematical derivation of the filter. This has changed in our new framework https://github.com/ethz-asl/ethzasl_msf.

My 6DoF pose sensor does not give me useful variance information at the moment, so I pulled the numbers out of thin air. Can you suggest a reasonable method to determine the accuracy of a black box 6DoF sensor. Are there maybe typical signs of over- or under-confident measurement updates (I guess overconfident is more of a problem)?

Obviously this is problematic and will not give you consistent filter estimates or a good estimation performance. Having said that, you can still perform at least a rough analysis of the noises by simple stationary experiments, where you analyze the noise variances in position/orientation when your device is stationary.