GPS Guided Autonomous Rover

27,809

94

17

Intro: GPS Guided Autonomous Rover

For a group Project we were required to build a Rover that would follow a predetermined track using GPS coordinates. Extensive details are listed in the report attached at the bottom of the page.

by Josh Berman, Terry Bugai, Kent Salmon and Mayur Chiba

exerpt from the technical report attached:

                                                                                       Abstract

This document provides the development and implementation of a GPS (Global Positioning System) guided rover. The rover is to compete in a race on a pre-defined track consisting of vertices made up of GPS coordinates. The design is comprised of a perspex base, battery pack, servo motors, Ublox GPS module and an ATMega328 Arduino microcontroller. The microcontroller receives the input from the GPS module in string format through serial communication. This data is then sent through our path finding algorithm and the direction is calculated. The rover runs through the course with minor mishaps. Improvement recommendations include alternate algorithms and additional sensors.

 





>

Share

    Recommendations

    • Furniture Contest 2018

      Furniture Contest 2018
    • Metalworking Contest

      Metalworking Contest
    • Fix It! Contest

      Fix It! Contest

    17 Discussions

    0
    None
    SagorS1

    1 year ago

    did you use servo for controlling the motion? may i get a proper picture of the robot!

    1 reply
    0
    None
    SagorS1SagorS1

    Reply 1 year ago

    which software was used to see gps and robot following the path?

    0
    None
    sandeepc21

    2 years ago

    Hello could you please provide the link to the path finding algorithm? Thanks in advance!

    1 reply
    0
    None
    RaaedAsandeepc21

    Reply 2 years ago

    https://www.instructables.com/id/Boat-Autopilot/?ALLSTEPS

    0
    None
    sandeepc21

    2 years ago

    Hello could you please provide the link to the path finding algorithm? Thanks in advance!

    0
    None
    sandeepc21

    2 years ago

    Hello could you please provide the link to the path finding algorithm? Thanks in advance!

    0
    None
    sandeepc21

    2 years ago

    Hello could you please provide the link to the path finding algorithm? Thanks in advance!

    0
    None
    jeveda12

    4 years ago on Introduction

    hello

    when loading code to arduino did not work because of error message "NMEA gps(GPRMC); //remember to download and include NMEA libry" Im using the new aurduino software version with arduino uno

    also can i used a h bridge motor controller with dc motors because I don not have servo motos

    thanks

    1 reply
    0
    None
    bluebeanjeveda12

    Reply 4 years ago on Introduction

    have you downloaded the NMEA library and added it to the arduino library path?
    Yes you can use an h-bridge with DC motors, the setup and code will be a bit different though: instead of setting the angle of the servo you would just set the output to the motor high, something like : digitalWrite(motorpin,HIGH);
    Heres a nice tutorial to take a look at:
    http://www.ecs.umass.edu/ece/m5/tutorials/H-Bridge_tutorial.html

    0
    None
    khnzhd

    4 years ago on Introduction

    Hello ! i have been looking at your arduino code for sometime and i cant seem to understand exactly where you put your destination coordinates. There also doesnt seem to any any distance calculating alograthms !!! . Can you please verify if you have attached the correct code . I shall be very thankfull

    1 reply
    0
    None
    bluebeankhnzhd

    Reply 4 years ago on Introduction

    The code posted above is just to get the GPS coordinates from the sensor. The path finding algorithm which was first done in Matlab and then converted to 'c' was actually not done by myself as credited earlier and hence I do not have the rights to post it. During testing our final 'c' code mostly consisted of hard coded coordinates anyway as the GPS we used was not accurate enough to position the rover on the small course.

    Thank you bluebean,

    so kind of you to make a quick response....
    but what i was hoping is, if you really point out a Microcontroller which can perform all this gps and obstacle avoiding systems on one side... and also giving a space to upgrade the robot...(like extra motors and sensors something like that)
    if you think it's too much to ask, i am extremely sorry for that... but if you can point out some specs i would be grateful....

    THANK YOU SO MUCH FOR A REPLY...

    1 reply
    0
    None

    Sure no problem.
    So if i understand you correctly your looking for a type of micro that can be upgradable?

    In this instructable I used an "Arduino Uno" (rev 3) this is very easy to use and easily adaptable. If you want to buy a once off micro for many projects it might be best to go for an Arduino Mega (AT) this has 52 input output pins , 14 of which can be used as PWM outputs for servo motors. If you look at my other instructables, biped or robotic hand, ive used this micro.

    The Arduino platform is easy to use, its coded in 'c' and something like moving a servo can take 1 line of code. Search for a tutorial on google. You can also plug in sensors directly to the input output pins as some are analogue pins and you can measure the change in voltage.

    Just download the Arduino program , install drivers (which should come with the download) , plug in Arduino to the usb port (with a printer usb cable) and upload your 'sketch'.

    The reason I like Arduino is because you can code in 'c' which is easy, as aposed to mips or assembly, there are alot of tutorials on the web and there are many 'shields' which alow you to upgrade it with added features.

    Hope this is the info your after,
    Bluebean

    hello there,

    that's a good one you have... but can you please guide me to attach some sensors to avoid obstacles with this one? please make this as a favor...i really need this buddy...

    1 reply
    0
    None

    The simplest form of obstacle avoidance would be to rotate the rover 90 degrees upon sensing an object, you can then add on this to manoeuvre around the object with an algorithm something like "sense object -> rotate left 90 -> drive(2 seconds) -> rotate right 90 -> rotate right 90 -> rotate left 90-> contnue driving..." this will avoid a small object.

    the sensor can be anything from a switch, which triggers the algorithm (you can use an interrupt), so when the rover bumps a wall for example, the switch is triggered.

    A light sensor is another option (something like a photodiode/photoresistor) you would need an amplifier afterwards and maybe a comparator of some sort to know when to trigger the interrupt. you can use the arduino as a comparator.

    A better and more advanced option would be to use a sonar sensor, you can buy one that plugs into the arduino, it has 2 speakers and a microphone as far as i know, it transmits the frequency and measures the rebound whereby measuring the distance of the object. Search for a tutorial on google on how to use it.

    good luck,
    Josh