Heading with two GPS and Arduino Due

Hey, I have tried to calculate Heading from two GPS Sensors. (Ublox Neo M8N) Calculation is working fine, but the sensors are not exact enough. That means, both sensors have position error in different and changing directions. That is strange for me, because I use two identic sensors, both have the same coditions. Have someone tryd a similar project?

GPS is far from exact, and the positional accuracy varies greatly from time to time and place to place. You could average the headings obtained from two different units.

Do you mean heading or course? They are two different things.

For the heading you need a compass.

For the course you can use a single gps unit and from two readings taken at a suitable interval you can calculate the vector velocity and hence the course being followed. As stated above you will need to do some averaging to eliminate random errors.


Not course, that I get easy from one GPS, Yes, I know that I can use a compass, I already use one. But compass is not good enough. I am thinking of real GPS Heading, like already on the market as complete unit (i.e. Hemisphere) Its working without RTK and gives a acuracy of 0,1...1 Degree. So I think, they use two GPS with one TXCO for both GPS. Then the error doesnt matter for HDG.

To get that level of accuracy, you need to spend real dollars on the GPS units. I would not expect to get it working for anything less than $10K USD. This stuff is also going to be export-controlled so getting it outside the USA might be tricky. (Note if you by from Europe or South Africa, there's no export controls.)

Remember this is all working off satellites moving at thousands of miles per hour. Getting the difference in position between one end of your quadcopter and the other is a bloody miracle.

Re heading versus course: there is widespread confusion about these terms.

The course is your intended direction of travel, relative to North. In global navigation, the [u]local[/u] direction of the great circle line that runs from the current position to the next waypoint is called the course to steer, or the bearing to that waypoint. Course to steer or bearing can change dramatically along the great circle route, over long distances.

However, bearing can be reported as relative or absolute (if absolute, it can be with respect to either magnetic or true North). A compass reports the direction of magnetic North.

Heading is the direction the nose of the craft is pointing, relative to North.

The [u]actual direction of movement[/u] of the craft is reported by some GPS units as the [u]course over ground[/u], by comparing coordinates at consecutive points. If there is wind or currents, the craft usually does not move in the direction of the heading, nor does it usually move along the desired course and so the heading must be constantly corrected.

In my experience, the "course over ground" reported by GPS units varies rather dramatically from point to point, especially at low speeds, due to the inaccuracy of the individual location fixes.

The rms error for civilian GPS is about 4 m so a quick calculation shows that to get 0.1° rms error in heading using two GPS receivers they have to be 4600 m apart. For 95 % confidence you need to double that!

You can get down to about 0.5° error with cheap compass chips or with a hand held sighting compass.


Again: You can buy a Heading Unit also in Europe, see here: http://www.trueheading.se/us/vectorcompact That is the cheapest one, +/- 2°, the sensors aprox. 200mm from each other. It cost aprox. 1000,--€. (In USA they offered it while a far for 500,--$) There you will have real heading, not magnetic heading. No problems with other magnetic fields or steel. The Horizontal Accuracy is not better then 2,5m. That doesnt matter, if both units have the same horizontal error. I think, both units use the same Clock, so they calculate the same values with the same errors.

How far apart were the GPS- receivers from each others in this test?