Developer

ArduPlane 2.73 released

I've just released ArduPlane 2.73 as a bug fix release for several important bugs in 2.72

The main reasons for this release are:

  • fixed a noise and scaling problem with airspeed sensors
  • fixed a potential flyaway problem with the L1 navigation controller
  • improved handling of poor GPS velocity for attitude correction

This release does not contain the new attitude controllers that I previously said would be in 2.73. Paul and I decided that it would be better to hold those over to the next release, and get this release out with just the above critical bug fixes.

The airspeed problem stemmed from a changed introduced in 2.72 to make ArduPlane automatically scale analog inputs with board voltage. That change was good for voltage and current sensing, but it added a lot of noise to airspeed sensing as the 3DR airspeed sensor is ratiometric (the sensor output scales with the supply voltage). The fix was to add support for ratiometric analog inputs. This release also fixes a bug in the airspeed ratio handling. To confirm the fix I have been driving around in my car with an APM2 and PX4 logging airspeed and GPS speed - that test confirmed the airspeed sensing is now accurate.

The flyaway bug in L1 was caused by an unusual situation where the previous waypoint was equal to the next waypoint, which can happen when a mission is interrupted and restarted. The L1 controller would then level the wings and fly straight ahead until the operator intervened. The bug fix was to make the L1 controller detect this situation and track directly to the next waypoint. I don't think many users would have seen this bug, but it definitely could happen and warranted a bug fix release.

The GPS handling bug was related to the MTK GPS, which can be very slow to report loss of GPS lock, which could lead to very poor attitude from DCM and even a crash if the plane tries to turn while the GPS is reporting incorrect velocity information. The fix was to watch the satellite count, and stop using the GPS velocity for accelerometer correction when it had less than 6 satellites. This is selectable with the new AHRS_GPS_MINSATS option.

Other changes

While this release doesn't have the new attitude controllers I decided to leave in some other smaller changes that have been made since the 2.72 release that I consider to be low risk, including:

  • fix the PX4 barometer driver to run at full rate
  • fixed handling of a saturated compass on PX4
  • added COMPASS_ORIENT option to support external compasses
  • fixed the compass in HIL simulation
  • added GCS messages to flash logs
  • allow 3D accel calibration over MAVLink
  • Added new ELEVON_OUTPUT option
  • removed MANUAL_LEVEL option (manual level is now always on)
  • improved pitch handling when inverted

Of these, perhaps the most useful is the ELEVON_OUTPUT option. That makes it possible to setup your transmitter with normal aileron/elevator and get the APM to do a software elevon mixer on output. That gives better control in FBWA mode than the previous elevon options.

I recommend that all users of 2.72 upgrade to 2.73. Happy flying!

Cheers, Tridge

 

 

 

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • hi to all.. i interface the Eagle tree airspeed sensor in arduplane 2.68 and fly very well..the sensor is in third party mode and output measure airspeed in km/h and the code convert to m/s my code is below...i replace in AP_airspeed.cpp and delete other code...but in 2.73 i tries to communicate and not work...i use a code

    hal.i2c->read(ets, 2, buf)   to replace    I2c.read(ets,2,buf);

    it's posible to any help me with this...thank you very much

     

    arduplane 2.68 code...

    #include <I2C.h>

    #define ets 0x75

    #define oul  0x07

    // calibrate the airspeed. This must be called at least once before

    // the get_airspeed() interface can be used

    void AP_Airspeed::calibrate(void (*callback)(unsigned long t))

    {

    delay(10);

        I2c.write(ets,0x00);

    delay(10);

    I2c.write(ets,oul);

    delay(10);

        _airspeed_raw = 0;

        _offset.set_and_save(_airspeed_raw);

        _airspeed = 0;

    }

    // read the airspeed sensor

    void AP_Airspeed::read(void)

    {

     

    int  l = 0;

    uint8_t buf[2]; 

    I2c.read(ets,2,buf);

    l = buf[1] << 8;

    l |= buf[0];

    _airspeed               = l / 3.6;

    l = 0;

    }

     

  • Dear folks,

    Where can I find The NAVL1_PERIOD & NAVL1_DAMPING parameters in the Arduplane code?

    Which tab?

    thanks.

  • Problem I get during compiling Arduplane 2.73 using Arduino IDE

    ArduPlane:230: error: new declaration 'uint8_t digitalRead(uint8_t)'
    C:\Users\abdkadma\Desktop\PhD Work\ArduPilot-Arduino-1.0.3-windows\hardware\arduino\cores\arduino/Arduino.h:100: error: ambiguates old declaration 'int digitalRead(uint8_t)'
    ArduPlane:1287: error: expected constructor, destructor, or type conversion before 'int'
    ArduPlane.pde: In function 'int SKETCH_MAIN(int, char* const*)':
    ArduPlane:1287: error: 'OK' was not declared in this scope
    compat.pde: In function 'uint8_t digitalRead(uint8_t)':
    compat:33: error: new declaration 'uint8_t digitalRead(uint8_t)'
    C:\Users\abdkadma\Desktop\PhD Work\ArduPilot-Arduino-1.0.3-windows\hardware\arduino\cores\arduino/Arduino.h:100: error: ambiguates old declaration 'int digitalRead(uint8_t)'

    Any suggestions?

  • Hi to all...i receive this e-mail from the 3dr team...the airspeed not work and it's erratic the measure????any user  receive similar e-mail??

    Thanks3692735891?profile=original

    best regard...

  • Nice to see the new version.

    Although I got problems with the 3DR Power Modul. The battery voltage is completely wrong.

    And since the new Mission Planer does't allow to change the input voltage I can't adjust it...

    Is there a way to get around this problem?

    Andy

  • why did you remove manual level.

  • I am still only getting 30 degrees bank in FBW with the max bank set to 60 degrees. Auto mode is giving me the full 60 degrees and is working great. I have recalibrated the controls. Any ideas what I can try?
  • Developer

    For those of you struggling with the new ELEVON_OUTPUT option, I have added some docs here:

    http://plane.ardupilot.com/wiki/arduplane-setup/first-time-apm-setu...

  • What is considered acceptable vibration levels for arduplane?
  • Moderator
    Hi. First flights with 2.73 in APM 2 on an X5
    The new eleven system is many times better than the old version. The setup is more work but so worth it. Still needs a bit of fine tuning but 90% correct and flyable on first flight. Good auto tracking, even survived a line wind at over 50mph as it passed through! Time to fit the camera. Thanks Tridge for a great system .
    L1 set at 22, still testing
This reply was deleted.

Activity

Jose Araujo liked Jose Araujo's profile
Aug 29
spencer harvey liked spencer harvey's profile
Jul 9
More…