paparazzi-devel
[Top][All Lists]
Advanced

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

Re: [Paparazzi-devel] airspeed_ets calibration


From: Chris Gough
Subject: Re: [Paparazzi-devel] airspeed_ets calibration
Date: Sun, 25 Aug 2013 23:39:22 +1000

Hi Refik,

Do you find your ETS airspeed sensor is drifting, or some other problem? I seem to be having a similar issue, today ours drifted by ~5 m/s in ~1 hour. E.g. after the hour it would report 1 m/s heading into a ~6 m/s wind, 2 m/s heading into 7m/s wind, 0 m/s heading into 5 m/s (or less) wind. 

Chris Gough

On 25/08/2013, at 11:09 PM, Refik Sever <address@hidden> wrote:

Hello,

Airspeed calibration is a very tedious task.

We flied a lot in calm weather conditions and tried to calibrate it by trying several offset (AIRSPEED_ETS_OFFSET) and scale values. We want to make the airspeed and gps speed  equal to each other. But although we make them equal, in the succeeding flights it always changes.

At last, we tried to calibrate it by using a car :) We drove the car with 10km/h steps between 10km/h and 100km/h, and took sample values at every step. I recommend this for anyone who wants to calibrate airspeed.

In the airspeed_ets.c file, I saw that the offset value ("airspeed_ets_offset", not "AIRSPEED_ETS_OFFSET") is calculated for once when we power on the autopilot. Therefore, the offset changes in every time we open it in different wind conditions. That explains why we couldn't calibrate it.

I think that calculating and fixing the airspeed_ets_offset for once will be better then to change it in every power on.

Regards,
Refik

Relevant part of the code:

if (!airspeed_ets_offset_init) {
      --airspeed_ets_cnt;
      // Check if averaging completed
      if (airspeed_ets_cnt == 0) {
        // Calculate average
        airspeed_ets_offset = (uint16_t)(airspeed_ets_offset_tmp / AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG);
        // Limit offset
        if (airspeed_ets_offset < AIRSPEED_ETS_OFFSET_MIN)
          airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MIN;
        if (airspeed_ets_offset > AIRSPEED_ETS_OFFSET_MAX)
          airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MAX;
        airspeed_ets_offset_init = TRUE;
_______________________________________________
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]