GPS navigation robot – Two waypoints

This video shows a robot I have built that is driving between two waypoints using GPS.

I built this robot last summer, about a year ago. Back then, I never really managed to the software part of the robot working. The weather became worse outside as the fall came, and a lost interest in this project and started working on other things instead.

I wave written all the code myself, apart from the functions used to calculate course and distance between GPS waypoints. I used functions from the TinyGPS library for that. The code runs on an Arduino Due, the robot is using PID control to steer towards the waypoints. The robot uses a combination of GPS-course and integrating the signal from a yaw-gyro to determine its current course. The robot also has a compass, but it does not seem to work very reliably, therefore I do not use it. The robot also has sonar and other sensors, but they are not used in this video. Expect more videos and info about this robot in the near future.

4 thoughts on “GPS navigation robot – Two waypoints

    1. Axel Post author

      I haw set the radius to 2 meters in the code I think. A waypoint is considered reached when the robot is within 2 meters. The accuracy of a normal GPS is not better than this, so I think it is a good distance.

      Reply
  1. Nitish Chennoju

    Love the project. Have done something similar recently and was just looking around for similar projects. Was hoping to be able to run my Arduino GPS waypoint UGV at full speed, but I’m not really able to get the PID gains right? Any tips for tuning? (Was originally hoping I could create a plant model of my system to theoretically compute these, but am still working on this). Anyways, good luck on your future projects.

    Reply
    1. Axel Post author

      I dont have mush experience with tuning steering PID high speed ground wehicles. But my advise is just to try diffrent values and experiment. You only need the P-term to make it work. I and D terms are just to make the truns faster and more precise, and minimize overshoot. Try changing only one parameter at a time and see what happens.

      Reply

Leave a Reply to Axel Cancel reply

Your email address will not be published. Required fields are marked *

Warning: Undefined array key "rerror" in /customers/b/a/5/brinkeby.se/httpd.www/axelsdiy/wp-content/plugins/wp-recaptcha/recaptcha.php on line 291
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.