Shop OBEX P1 Docs P2 Docs Learn Events
GPS: When is HDOP "good enough?" — Parallax Forums

GPS: When is HDOP "good enough?"

Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
edited 2015-05-14 11:50 in Accessories
In my attempts to help get a decent GPS guidance system working for my students' floating ROVs, I had the program wait until the status message from GPRMC changed to "A" before it started navigating. Well, that wasn't good enough, since the first waypoint became a moving target as more satellites were acquired.

So I've decided to add monitoring of the HDOP (horizontal dilution of position) field in the GPGSA message. This is a unit-less value where smaller is better and 1.00 is considered "perfect," although I've seen values as low as 0.90. When the GPS first comes on, and after the status changes to "A," you can watch the HDOP begin to fall. But I'm wondering, "How low is low enough to begin navigation?"

The program in the attached archive waits until HDOP is less than 1.10, then begins writing a KML file to the Activity Board's SD card. This continues for two minutes, at which point the file is closed. The SD card can then be inserted into a PC and the file loaded directly into Google Earth, which shows the track traversed. Here's an example:

attachment.php?attachmentid=114169&d=1431538756

The 1.10 threshold seems to be low enough for accurate positioning, but I wonder if there are situations outdoors under an open sky when that cannot be attained. If so, the ROV would be waiting forever to begin navigating.

-Phil

Comments

  • kwinnkwinn Posts: 8,697
    edited 2015-05-13 11:25
    Have you considered using a second fixed GPS unit as a reference position and navigating by the difference between the fixed and mobile unit. A bit more complicated since you would need to retransmit the fixed readings, but more precise positioning.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2015-05-13 13:12
    I've done some experiments with the kind of pseudo-differential GPS that you mention:

    That didn't work out very well, unfortunately. True differential GPS only works when both units are receiving from the same satellites. The other issue with navigation is that the mobile unit requires real-time updates. Although the ROVs can have XBees plugged in, I have not found their range to be adequate for the kinds of surveys we're undertaking.

    All that aside, the PAM-7Q GPS units work fine by themselves, once enough satellites have been acquired. My only question is how to set a reasonable threshold on HDOP that ensures accuracy and which can reasonably be obtained from every power-up after a not-too-long interval. So far 1.10 seems reasonable, but I've only been at this a day; and there might be days when the satellites are so poorly distributed that that's not attainable.

    -Phil
  • max72max72 Posts: 1,155
    edited 2015-05-13 14:45
    With some drones you simply wait for a desired number of satellites (7) and maybe wait a little bit.
    It assumes with 7 satellites your GDOP is reasonably low...
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2015-05-13 20:02
    One of my latest tests indicates that 1.10 might be too low to expect consistently. I had the ROV set to wait until HDOP was less than 1.10. I waited more than 20 minutes, but no dice. So I tried again and took my laptop to the marina to monitor the value via XBee. It sat on 1.25 for what seemed like forever, then suddenly jumped to 0.98, whereupon the ROV was functional. (Unfortunately it quickly got fouled with seaweed and ceased to operate.)

    Maybe the satellite count is the way to go. OTOH, with my Garmin 405 wrist GPS, I just wait until the velocity value goes to zero and stays there for a couple minutes. That's another possibility for the ROV.

    -Phil
  • SapphireSapphire Posts: 496
    edited 2015-05-13 20:28
    Phil,

    How about watching HDOP and when it stops falling, even if above 1.10, then consider that as good as you are going to get and go?
  • TorTor Posts: 2,010
    edited 2015-05-14 04:49
    For what it's worth, with my subjective experiences with various GPS units it looks like the accuracy becomes good when the unit is able to lock on to a number of satellites (usually it'll fool around with just one or two for a while, then all of a sudden it has six or seven or more and then all is well).
    Except that when there are nearby tall buildings or narrow areas the accuracy may suddenly drop catastrophically, but this varies a lot with the type of unit I use. MKT or Sirf Star III handle that pretty good.

    I like Sapphire's suggestion BTW. It makes intuitive sense, although I've not tried that.

    -Tor
  • xanaduxanadu Posts: 3,347
    edited 2015-05-14 08:43
    On my multirotor I see 2 indoors, around 1.5 outside in the woods and around 1.2 in an open area. I looked through some logs and I've never seen less than 1.2 on my current setup. Seems to do well at 2 (edit) or less. The flight controller will not arm over 2.2.

    Here is an example of a high HDOP with a lot of satellites in view, it happens:

    HDop.png
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2015-05-14 11:50
    Thanks for all your comments! The way I've decided to present this to my students is this:
    1. Wait up to 5 minutes for HDOP to become lower than 1.10.
    2. If, after 5 minutes it's lower than 2.00, that's good enough.
    3. Otherwise, continue waiting until it's lower than 2.00.

    Their programming exercise for the day is how to express the until condition that causes the repeat loop to terminate per the above conditions.

    -Phil
Sign In or Register to comment.