paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Critical behaviour of baro_ms5611_i2c


From: Michal Podhradsky
Subject: Re: [Paparazzi-devel] Critical behaviour of baro_ms5611_i2c
Date: Sat, 2 Feb 2013 09:28:17 -0700

Hi Rolf,

i think this glitch can occur when you are asking for D2 value before the conversion is done. I ran to it when I was writing ms5611 drivers for master branch. It helped to slightly rearrange the periodic and event functions (see https://github.com/paparazzi/paparazzi/blob/master/sw/airborne/boards/lisa_m/baro_board_i2c.c). It was written for Lisa M 2.0, but might be useful for yapa too.

The longest I ran barometer continuously was for like 35 minutes and no glitch occurred.

Btw if the estimator cannot handle NaN values, probably the estimator code should be fixed, rather than "outlier removal" in baro code - what if the sensor stops working during the flight etc...

Hope it helps.

M

On Sat, Feb 2, 2013 at 6:08 AM, "Rolf Nöllenburg" <address@hidden> wrote:
Hi

I just discovered a severe problem (luckily on the desk) with the module baro_ms5611_i2c: the communication via i2c can get faulty which leeds to estimator_z = nan and it DOES NOT RECOVER!!!

This happens not very often, approx. once in 20 min.

I think that the problem is starts with a zero in D2. This leads to messages in the log-file like the following:

2174.155 11 ESTIMATOR 1.195065 0.513844
2174.174 11 BARO_MS5611 7803588 8440836 1001.38 38.9
2174.269 11 BARO_MS5611 7803430 0 -2230.73 -242.71
2174.369 11 BARO_MS5611 7803606 8440764 1001.38 38.89
2174.397 11 ESTIMATOR nan nan
2174.465 11 BARO_MS5611 7803424 8440874 1001.34 38.9
2174.566 11 BARO_MS5611 7803488 8440640 1001.34 38.89
2174.684 11 ESTIMATOR nan nan

A pressure of -2230.73 is obviously too much (or little) for the hight calculation...

My system:
- Paparazzi version v4.2.0_stable-5-gc3a1496-dirty
- YAPA 2
- Drotek IMU (mpu6050, hms5883, ms5611) on i2c1
- PERIODIC_FREQUENCY=AHRS_PROPAGATE_FREQUENCY=AHRS_CORRECT_FREQUENCY=60Hz
- baro_ms5611_periodic=baro_ms5611_d1=baro_ms5611_d2=10Hz

I am working on a fix via something like this starting in line 211 of baro_ms5611_i2c.c:

      /* avoid glitches in d2
      if (ms5611_d2 < 1000000) {
        ms5611_d2 = ms5611_d2_prev;
      } else {
        ms5611_d2_prev = ms5611_d2;
      }

I tried this with a fixed replacement-value of 7000000 instead of ms5611_d2_prev and it looks promising (estimator_z jumps to about 200m and recovers within 1 second). I just need some testing ...

_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel


reply via email to

[Prev in Thread] Current Thread [Next in Thread]