- 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
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.
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
I recommend that all users of 2.72 upgrade to 2.73. Happy flying!