I've written an open source Precision Agriculture application called AgOpenGPS that does everything from auto steer, to mapping, implement and section turn on/off, auto headland turns and more. It's used by farmers all over the world and everything is documented and free - a rarity in Ag. In ag we mainly use mapping in the area of a quarter section so lat/lon from the GPS is converted to UTM and the grid in meters is then used as basic cartesian coords for most everything.
One challenge I am having is if not farming right on the central meridian of course, the UTM grid declination at the zone borders causes a problem since driving straight north on the grid road should show 0, yet shows of course the error of a couple degrees. Heading can be determined by fixes of the grid, by VTG heading from GPS etc, however the two are only the same at the central meridian. If using a dual antenna for generating a stable heading, the auto steer will not work as the error is too great as the GPS heading vs the grid heading are a couple degrees off. Noticed the problem when AgOpen was being used alongside Trimble, Raven, Hemisphere etc. Years ago mfrs showed different headings, but since then they all aligned.
What I have done is calculated the Convergence angle using atan(sin(latitude)*tan(longitude- zone_north_meridian)). When opening or starting a new field, I take the integer of the northing and easting, store it, then any new fixes coming in are subtracted from those to end up with a manageable value to plot using openGL as a graphic display. (OpenGL does not like large numbers). So effectively this becomes my origin.
At this point i do a rotation matrix of every new incoming point based on the convergence angle and rotate that new fix and record its value as such. This does work, anywhere across the zone north is always north, going north on a grid road is north, the field edges line up with grid.
My question is,: Am I doing this correctly? To create field boundaries etc in Google Earth and import them, I do the same thing, rotate the imported points etc. Going back to google earth, I unwind them again. The major GPS manufacturers, systems costing $15 to 20k, do have it figured out, I am just wondering if I am going about it correctly.