# GPS information

1. Dec 28, 2013

### amar2302

greetings,

could you please tell me where i can find information related to gps receiver as i need to use it on my robot. if possible please give the websites where i can get all available gps receiver.
i dont know what are the kind of gps available so i m not able to decide....

2. Dec 28, 2013

### skeptic2

3. Dec 28, 2013

### vk6kro

You might like to consider that GPS is really only accurate to about 5 meters and also it often doesn't work very well indoors, near tall buildings, under trees or sometimes even under rain clouds.

So, it may not be suitable for controlling a robot where precise positioning is required.

4. Dec 28, 2013

### davenn

agreed

even outside, unless you are using differential GPS, that uses a separate base receiver, which is then relaying its data via radio to the robot, you are still only going to get that 5 - 10 metre accuracy.

I am a GPS technician for a company that does GPS machine control for the surveying, mining and road construction industries. using differential GPS and 1 or 2 base stations we can achieve 5mm accuracy

There are neat little units called GPS re-radiators. I use one of these to re-radiate, into my workshop, the GPS signals received on an outside antenna. With this, I can test the accuracy of the GPS receivers indoors without a problem

I must also point out that these high accuracy GPs receivers cost many $1000's. Not something the hobbyist can afford cheers Dave 5. Dec 29, 2013 ### amar2302 thanks but i have seen some projects based on the gps like The Garmin 15L or pmb 688. Is it like i wouldnt get accuracy upto 10m? OK fine is there any other way to handle the problem...Any how we cannot change our project now and if required we will compromise with position accuracy.so please guide us a bit. Is there any other gps whose cost is lesser than 30$ ?

thanks

6. Dec 29, 2013

### vk6kro

There are modules like this one on EBay.
Type in 380617563592 in the search bar on EBay.
It has a built-in antenna and is reputed to be pretty sensitive.
Includes some sample code for Arduino.

Skylab GPS Module MT3329 SKM53 with Embedded GPS Antenna Arduino Compatible
Description :
Skylab UART Serial GPS Module For Arduino uController

SKM53 Series with embedded GPS antenna.It is based on MediaTek3329 single-chip architecture.SKM53 can be applied in a portable device and receiver like PND, GPS mouse, car holder, personal locator, speed camera detector and vehicle locator.

Features
- Ultra high sensitivity: -165dBm
- WAAS/EGNOS/MSAS/GAGAN support
- NMEA protocols (default speed: 9600bps)
- Internal back-up battery and 1PPS output
- One serial port and USB port (option)
- Embedded patch antenna 18.2 x 18.2 x 4.0 mm
- Operating temperature range: -40 to 85
- Tiny form factor 30mm x20mm x 11.4mm

Specifications:
Receiver TypeL1 frequency band, C/A code
22 Tracking / 66 Acquisition-Channel
SensitivityTracking
Acquisition-165dBm
-148dBm
Accuracy

Position
Velocity
Timing (PPS)
3m 3D RMS without SA
0.1m/s without SA
60ns RMS
Acquisition TimeCold Start
Warm Start
Hot Start
Re-Acquisition36s
33s
1s
<1s
Power ConsumptionTracking
Acquisition
Sleep/Standby<30mA @ 3V Vcc
40mA
TBD
Operational LimitsAltitude
Velocity
AccelerationMax 18,000m
Max 515m/s
Less than 4g
Antenna SpecificationsOutlineDimension
Center Frequency
Bandwidth
Impedance
Axial Ratio
Polarization18.2 x 18.2 x 4.0 mm
1575 ± 3 MHz
10 MHz min
50 Ω
3 dB max
RHCP
Mechanical requirementsDimension
Weight30mm x20mm x 11.4mm
9g
Power consumptionVCC
Current5V ±5%
55mA(typical)
EnvironmentOperating temperature
Storage temperature
Humidity40 ~ +85 (w/o backup battery)
0 ~ +125
Arduino Code:
/*
RXD Arduino Pin 3
TXD Arduino Pin 2
RST Leave Open (Connect to a N/O momentary switch pulled low to reset?)
NC Leave Open
GND Ground
VCC +5
*/

#include <TinyGPS.h>
#include <SoftwareSerial.h>

unsigned long fix_age;

SoftwareSerial GPS(2,3);
TinyGPS gps;
void gpsdump(TinyGPS &gps);
bool feedgps();
void getGPS();
long lat, lon;
float LAT, LON;

void setup(){
GPS.begin(9600);
Serial.begin(115200);
}

void loop(){
long lat, lon;
unsigned long fix_age, time, date, speed, course;
unsigned long chars;
unsigned short sentences, failed_checksum;

// retrieves +/- lat/long in 100000ths of a degree
gps.get_position(&lat, &lon, &fix_age);

getGPS();
Serial.print("Latitude : ");
Serial.print(LAT/100000,7);
Serial.print(" :: Longitude : ");
Serial.println(LON/100000,7);
}

void getGPS(){
bool newdata = false;
unsigned long start = millis();
// Every 1 seconds we print an update
while (millis() - start < 1000)
{
if (feedgps ()){
newdata = true;
}
}
if (newdata)
{
gpsdump(gps);
}
}

bool feedgps(){
while (GPS.available())
{
return true;
}
return 0;
}

void gpsdump(TinyGPS &gps)
{
//byte month, day, hour, minute, second, hundredths;
gps.get_position(&lat, &lon);
LAT = lat;
LON = lon;
{
feedgps(); // If we don't feed the gps during this long routine, we may drop characters and get checksum errors
}
}
(Written by Warren)

7. Dec 30, 2013

### amar2302

need for program

as far i know gps automaticaly gives the position (according to some protocol eg. NMEA) when connected to MCU.Is there any kind of programming required to get the coordinates in MCU or in GPS module.
Why do we need the code what have you given?
thanks

Last edited: Dec 30, 2013
8. Dec 30, 2013

### davenn

you need the code for the MPU for it to read the NMEA data from the GPS receiver so that it can then be made use of in what ever way you wish

Dave

9. Jan 1, 2014

### amar2302

do i need gps sheild or data logger? i m new in this technology, so can you please tell me requirement of it?
there is in total 1,500 bits send by each satellite, so do need to store all this information?if possible the tell the required memory for it.if possible please give some links from where i can learn interfacing from scratch.

thanks

Last edited: Jan 1, 2014
10. Jan 1, 2014

### Devils

Adafruit has lots of modules and software that does the work for you. They are cheap & designed for beginners. Lady Ada also has robotics and other good stuff.

I believe that's what farmers use to make sure they plow fields with great accuracy.

http://en.wikipedia.org/wiki/Precision_agriculture#Geolocation_of_data

11. Jan 1, 2014

### vk6kro

You should have a look at the module mentioned in post 6 above.
Go to EBay and type in
3806 1756 3592
This will bring up data and a picture of the device.

It does the clever stuff of working out your position from the satellite data and it gives out this information in ASCII format via a serial port.
So this is all you have to deal with.

Post 6 also gave a sample Arduino program for dealing with this output.

Another way of doing this would be to drive wheels with stepper motors and count the steps in each direction to work out your position.
You can get compass modules which will work OK indoors.

12. Jan 1, 2014

### vk6kro

Here is a link showing the data available from a GPS receiver module.

https://www.sparkfun.com/datasheets/GPS/NMEA Reference Manual-Rev2.1-Dec07.pdf

If you look at page 10 you will see where the latitude and longitude are available. They come out as a text stream, but have to be isolated and converted into actual numbers before you can do any calculations with them.

This will need some fairly careful programming.

Other modules may vary, but the outputs should be similar.

13. Jan 3, 2014

### amar2302

what is that feedgps() do?

14. Jan 5, 2014

### amar2302

selecting MCU

hi,

is MCU atmega328 (Arduino UNO) will be sufficient for use in robot navigation using gps?

thanks

15. Jan 5, 2014

### vk6kro

I don't know.
The GPS will give you a stream of data at 9600 baud and you would have to pick off the latitude and longitude from this.
Then you have to convert these to real numbers and calculate your robot's position.

If you are already a very experienced programmer, you may be able to do this on an Arduino.