GPS inaccuracies

Hi there! This is my first forum post, so please forgive me if I get the formatting/tone wrong.

I’m working on a fairly decent size octoquad, using a Pixhawk 2.1, and have been having some issues with GPS accuracy. I’ve tested on both a Here2 and a Here+, although haven’t yet tested the Here+ with the base station in use. Only one GPS is used at a time (i.e. no dual-GPS shenanigans), and all the attached screenshots are from a Here+ flight. Symptoms are the same with both GPS’s.

For both GPS’s, the observed behavior is a GPS drift sometimes up to 10meters, all while the reported HDOP is in the range of 0.8 or less. Dataflash logs show GPA.HAcc maxing at 0.91meters. However… when the copter is set to Loiter mode, it drifts significantly while showing on the map that it’s stationary. This is also observed in RTL - on the map, the copter thinks it’s on its way home, but in reality it’s about to smack into a building, having flown well past the takeoff point.

I’ve read that for the M8N chipset (to my understanding the one used in the Here2) is expected to have about 2meter drift. I’d be quite happy with that, except that our drift is much larger than that. It may also be worth noting that this aircraft has given significant compass interference and calibration issues in the past.

Unfortunately, I can’t provide the log due to policy. I’ll do my best to post screenshots of logs as requested, and have attached a few to start with.

Software/hardware details:
Pixhawk 2.1 “The Cube Black”
ArduCopter 4.0.4
Here2 GPS
Here+ GPS
GCS: Windows 10, Mission Planner 1.3.74

Hdop and vdop are not direct measurements of accuracy, and are unitless.
GPA.HAcc and GPA.VAcc are direct measurements of accuracy provided by ublox. probably taken at one sigma, so the real world inaccuracy can be much bigger than that.

Try to improve you GPS signal by raising the antenna, changing the antenna, reducing electromagnetic interference and stuff like that. The autopilot can not improve the signal if the signals was not good to start with.

Thanks for the quick response!

I was aware that the *Dop’s are unitless – the HDop value typically hovers between 0.7 and 0.8 on this aircraft, and the HAcc tends to be sub-meter (although like you said, most likely at 1 sigma). Do you know if there’s a way to quantify the real-world inaccuracy?

I was able to raise the GPS antenna by about 1 foot and got exactly the same results. I also tried a different Here+ as well to eliminate the units themselves being faulty… even sitting still on the ground, the copter was showing drifts of over 4 meters in Mission Planner.

Something I did try was a mavserial passthrough, but was unable to get any useful diagnostic. It seems like only the GPGGA and GPGLL messages are relayed; I don’t get any GPGSV so I can’t tell if the constellation is bad. The Trimble GNSS planner indicates I should have an excellent consellation though.

Do you think adding a ground plane under the GPS could help? I haven’t taken apart the Here2/+ yet to see if they have one built in, although I’d be surprised if they don’t.

Thanks again for the help!

[edit]: I just realized I may have gotten the NMEA sentence names mixed up - I only get the fix and precision messages; no individual satellite data.

For anyone looking at this in the future, my issue was mostly solved by adding another external GPS and disabling the internal compasses. I lean towards the disabling internal compasses as the root fix here, but I’m not comfortable flying on one compass alone to test that theory.