Through a number of tests (comparing with a fixed reference point) I noticed that my Pixhawk can have an altitude error of up to 9%. This meant that if I aimed to fly at an altitude of 100m I could in fact be flying at 91m. This is not always the case and sometimes the error is closer to 5% but I am sure its never much smaller than 5%. The error is always negative, it always flies lower than expected.
When we arm the copter the altitude displayed in MP resets to zero and after the flight, it is again back at zero so there doesn't seem to be a fixed offset. We have used auto-tune and all the control loops seems to be optimal since it handles very very stable.
I have read the datasheet of the barometric pressure sensor which states an accuracy of 10cm! Now I understand that the pressure and temperature changes while I fly but that is why there is a temperature sensor to help correct for this. Additionally there is also the Kalman filter which adds the GPS altitude and accelerometer derive height, which should produce very good results.
Surely I should be getting better accuracy? Has anyone experienced this and have some ideas how to increase the altitude accuracy?
I'm having basically the same issue. 117m barometer height from reference point, but proper survey says 128m. Did you end up finding a solution?
Still haven't found a real solution. One option is to log the raw pressure values and then convert it to height. This gives the 100% barometer height and not the one combined with the accelerometers and appears to be more accurate. But this means that you only know after the flight that your height was wrong. For now it seems that differential GPS would be the safest bet. We have bought a set of Piksi DGPS units to try it out. Still some work that needs to be done on these units and I am not sure if I will trust it as my primary source of altitude for flight. At the moment they also require an additional radio link to send the correction data to the on-board unit.