This is the quick fix for the "List index out of range error".
# if the tempPos List has only one item return without seconds value
if len(tempPos) !=2:
formattedPosition = "%i° %i'" % (degrees, minutes)
return formattedPosition
# calculate seconds
I have attached the whole python file below. I think that trying to program this in C++ would probably be a bit of a nightmare but if anybody does try I have a 16x4 LCD that is just waiting for an Arduino sketch. ?
I discovered that if the program was started before 10:00 AM, the time field became corrupted.
This has been resolved in revision R2 and the code simplified, see attached file.
Hi Steve,
Are you running this test indoors or out? It's tough with GPS indoors for most systems. I do notice that with a better antenna, they do perform somewhat better but in the end, they will not do all that well inside a home. On the GPS bot I did, I would get good results with a rubber duck antenna and spotty without (including the one like you have).
Scott
Hi Scott,
I have been working on this indoors, due to appalling weather for the last few days. Now the sun's come out, I can do some more testing on the balcony, perhaps with a beer or two in 82°F.
The next thing will be to write another program to log the position, both longitude and latitude for 24 hours and determine the mean value and standard deviation. This I will run for 24 hours to get a decent sample.
I am getting 7 - 9 satellites indoors and 14 - 17 satellites outdoors but still getting a similar inaccuracy.
I have been trying to find out whether I can increase the polling of the NEO-6M, but the info sheet I found from Ublox is not very revealing. That Rx pin must be for something.
Hi Scott
I threw this program together to work out the position error (only latitude for the time being).
The program is in metric, but changing to suit people with twelve fingers ?, only needs changing one value and a couple of print() statements.
Try it out and let me know how you get on i.e. what sort of positional accuracy you are getting.
I'm a metric American! 🙂 I'll set up a test later today and let it run. Thanks!
Took the setup outside, where I am getting more visible satellites. But it shows no recognisable increased accuracy. But one thing I have noticed is, that there are occasional spurious values, where the "Absolute range" jumps from 0.7m to in excess of 2m.
I am trying to figure out how to filter out these extreme values.
Here are a few results from a run from my home office @3 meters from the window:
Acquiring initial data...
Mean value: 2.7471 metres
Standard deviation: 0.0019 metres
Absolute deviation: 0.0027 -0.0023
Absolute range: 0.0049
Mean value: 2.7470 metres
Standard deviation: 0.0017 metres
Absolute deviation: 0.0028 -0.0022
Absolute range: 0.0049
Mean value: 2.7471 metres
Standard deviation: 0.0016 metres
Absolute deviation: 0.0026 -0.0023
Absolute range: 0.0049
I see you have taken the first three values. I found that if you leave it recording for half an hour or so, the accuracy will go down, but you have to watch out for spurious values, as I mentioned above.
I just wish I could get further from the building's walls.
+/- 3mm was not what I was expecting. ?
I'll let it run a bit and then post to a text file.
Note: It's rainy today and my office is on the first floor of my home, and this part of my home is under a very large Sycamore tree.
Will post back later.
Scott, thanks for your help and data.
It has been interesting just to find out how much my first assertions were wrong. As your data shows a stabilised value of +/- 125mm under an open sky, that would make navigating a robot around the backyard or even for mowing a large lawn completely viable.
I read somewhere that modern car navigation systems use a combination of both GPS and dead reckoning to increase accuracy, but that is a subject for another day.
What I am looking forward too, is the Galileo system coming online, as it is reported to be more accurate than GPS, we'll see soon!
So I guess the conclusion is that GPS positioning is of no use indoors for robots, and reasonably accurate outdoors.