dGPS Accuracy in NXT-G 2.0

I have been having accuracy problems using the dGPS navigation block. I am using NXT-G 2.0 retail. I am trying to get a simple robot to stop within about 20’ of a manhole cover. I ran a test program that displays the distance to destination data as well as the angle to destination while the bot is moving. As I walked along in front of the bot watching the distance data, I noticed it doesn’t change for fairly large movements of the bot (20 feet or more). I also noticed that the angle to the destination varies as much as about 60 degrees from where the destination actually is.
Any help would be appreciated.

What sort of environment are you in? Meaning, how much of the skyline can you see? Sounds like you’re outside?

I am outside. I wrote a small program that waits for HDOP <2 & #Sats >6.

I have clear sky with good horizon view. I am polling the Navigation block at 1Hz and update the screen each time. I notice the bot can move 20 or 30 feet with several updates (tone sounds with each update) but the distance numbers don’t change.

I also find that when I am about 70 feet from the destination coordinates, the angle information is not very accurate or consistent. In other words, the bot heading can be off as much as about 30-60 degrees from the actual destination.

I wrote another small test program that uses the lat/lon coordinates to mark the destination and sounds a tone when within about 20 feet of destination coordinates. I moved the bot in and out of the destination area and found the program work fairly well.

I am beginning to wonder if there is a problem with the distance and angle calculation the nav block is performing.

Have you tried writing the GPS output to a file and not displaying anything? Then compare with Google Maps. I’ve seen some odd NXT-G behavior where what I’m displaying from the dGPS looks wrong, but my log files look fine. I know this doesn’t make a lot of sense, but you said your in/out “tone” program worked fine.

I don’t know how to use Google Maps yet but because everything is in such close range, I can see that the bot is missing the destination coordinates. The in/out “tone” program just looks at the GPS read block, it doesn’t use the Navigation block. By not using the Navigation block I was trying to isolate the problem. I was also looking for another way for the bot to know when it has reached it’s destination. I have 10 of these units and they are all behaving pretty much the same way.

I’m thinking simple here. Log the lat/lon and the navigation output (dist-to-dest and angle-to-dest). Walk your robot along a strait path to the destination, or another straight path near the destination. Plot it all up in Google Maps–it’s easy–just use http://www.gpsvisualizer.com/map_input?form=data.

Maybe looking at the GPS data vs the navigation output will give you some insight.

I will start working on plotting the points as you suggest. You mentioned earlier about some odd behavior where what is being displayed from the dGPS looks wrong, but the log files look fine. Question: How can you use the information from the dGPS to control the bot if there is some glitch with the output?
More background information:
I use the “hello world” program to get lat/lon coordinates of the destination location. The bot uses that information as an input to the Navigation block. I start the bot about 70 feet from the location and it can’t seem to find the target.
Thanks again for your help,

Hello, were you ever able to solve the angle to destination problem? My son is having the same difficulty with the angle to destination not ever changing.


I’ve packaged up the old SARG programs here:

These have old NXT programs we used to control the robot where you punched in GPS coordinates, and drove to the target.

Hi Doug,
No, I was never able to solve the accuracy problem. I tried everything I could think of to solve the problem with no luck. At this point, I think it is either a problem with how the nav block calculates the angle & distance information or a hardware issue with the dgps module. I have also been looking for support for the module using the Labview for Mindstorms software with no luck.

Any suggestions on what to try next?

I forgot to mention that I have 10 of these units and they are all behaving pretty much the same way.