Das Berechnen der Fahrtdaten ist für nen AVR ein Kinderspiel.

In dem Bereich, in dem sich der Roboter bewegt, kann man die Erde als ebene Fläche annehmen. Du hast 2 Punkte, jeweils deren X/Y-Koordinaten. Daraus zuerst die Differenz bilden.
Mit den Werten kannst du dann mit Pythagoras die Entfernung und mit dem Tangens den Winkel berechnen.

Hier eventuell die GPS-Daten nicht bis auf die letzte Nachkommastelle verwenden, sonst rudert der Roboter ständig hin und her.

Eine Positionierung im cm-Bereich ist sowieso nur mit DGPS möglich, was die Sache noch weiter verkompliziert und auch gewaltig verteuert, da erst mal eine Referenzstation angeschafft werden muss.