Building on my last attempt at building an obstacle avoiding robot I decided to have a go at using GPS to guide a robot. I used 2 Arduino Nanos, a 3 axis compass to provide a heading for the robot and a UBlox Neo 6M GPS for the rovers global position. Using the Tiny GPS library a distance to the next waypoint and a target heading was calculated. This was fed via I2C to a second Arduino which took care of reading the compass, computing a new course, actuating the steering servo and controlling the RC cars ESC.
In practice the compass had severe calibration issues, the two strong magnets in the motors were distorting the reading, these were made worse by the bumpy terrain, I made offsets as best I could but it was still a bit vague. The rover did manage to successfully steer itself to waypoints but in a slightly drunken manner! This was to do with the code architecture and GPS update rates.
The compass issues will need to be fixed and the code rejigged to improve performance. I did feel a bit odd in the park, everyone was walking their dogs, I was walking my robot!