EKF Accuracy and Tuning

I’m working on a project where I heavily rely on the global positioning accuracy of a fixed wing UAV using PX4. As a first experiment, I wanted to measure the accuracy of the ekf while just letting the FCU rest outside. The setup consists of a PixHawk V5 and a GPS. Now I’d expect the GLOBAL_POSITION_INT to rest still, but the estimator shows a large positional deviation.



image

  X             Y             Z
count  29999.000000  29999.000000  29999.000000
mean       7.440590     13.669577    -28.974474
std        2.791816      4.506730      0.780497
min        0.000000      0.000000    -30.597000
25%        5.271358     10.940513    -29.434000
50%        8.111515     14.009199    -28.804000
75%        9.315749     16.911112    -28.245000
max       12.663362     22.770522    -28.027000

East         North           Alt
count  29998.000000  29998.000000  29998.000000
mean       7.557960     13.778649    496.064016
std        2.811163      4.516370      8.948092
min        0.000000      0.000000    477.336644
25%        5.405080     11.052309    489.652513
50%        8.212542     14.097385    495.278635
75%        9.469409     17.045709    501.990400
max       12.911135     22.857498    516.523996

I realised that the estimator outputs nearly the same values as my raw gps for horizontal input. Which indicates that the ekf is not making use of additional sensor fusion, is this assumption correct? Further, is this kind of GPS deviation considered normal, as there is a max. 35m difference within this measurement? Am I missing some kind of tuning for the ekf?

Thanks a lot, I appreciate any kind of input!

Oh boy. As a final act of desperation, I tested my measurement outside in the fields. Turns out I live in some kind of GPS bermuda triangle. Even with a >15 satellite fiix at my home, the deviation was crazy, but in the field i got a std of ~0.7m!!