Loss Of Altitude in Auto with Copter 3.5

Yes, the EKF uses local NED coordinates internally and publishes a local position and an WGS-84 origin taken from GPS. The navigation code converts that information back to global coordinates. The EKF2 in 3.5.3 is slowly adjusting the published height of it’s origin to be consistent with the GPS and while that may give the most accurate WGS-84 estimate output, it is incompatible with how the data is being used by the control loops.

If a relative height to takeoff location is required, then the origin height at takeoff should be used throughout flight when converting from EKF to nav coordinates.

This issue was debated at length and in the end https://github.com/ArduPilot/ardupilot/pull/6288 was added to give flexibility in dealing with Baro vs GPs drift in a way that met the requirements of the different applications.

For example for long duration missions , Baro drift can be a bigger problem than GPS drift.