GPS Receivers: Researching the Best Options for Your Robot

In summary: GPS(){unsigned long start = millis();unsigned long timeout;while (millis() - start < timeout){if (gps.available()){unsigned char ch = GPS.read();Serial.print(ch);}}}void gpsdump(TinyGPS &gps){byte month, day, hour, minute, second, hundredths;gps.get_position(&lat, &lon);LAT = lat;LON = lon;{feedgps();...}byte month, day, hour, minute, second
  • #1
amar2302
6
0
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 don't know what are the kind of gps available so i m not able to decide...

thanks in advanced
 
Engineering news on Phys.org
  • #3
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
vk6kro said:
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.

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
davenn said:
agreedeven 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

thanks
but i have seen some projects based on the gps like The Garmin 15L or pmb 688. Is it like i wouldn't 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
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.
Costs about $25US
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
- 22 tracking/66 acquisition-channel receiver
- 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
- RoHS compliant (Lead-free)
- 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
Navigation Data Update Rate1Hz
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
Make sure you download TinyGPS.h
*/

#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())
{
if(gps.encode(GPS.read()))
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
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:
  • #8
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
 
  • Like
Likes 1 person
  • #9
davenn said:
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

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:
  • #10
amar2302 said:
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

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.
http://www.adafruit.com/products/746

davenn said:
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


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
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
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
vk6kro said:
feedgps(); // If we don't feed the gps during this long routine, we may drop characters and get checksum errors
(Written by Warren)

what is that feedgps() do?
 
  • #14
selecting MCU

hi,

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

thanks
 
  • #15
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.
 

1. What is a GPS receiver and how does it work?

A GPS receiver is a device that uses signals from GPS satellites to determine its own location on Earth. It works by receiving signals from at least four satellites and using trilateration to calculate its position.

2. What factors should I consider when researching GPS receivers for my robot?

Some important factors to consider include the receiver's accuracy, update rate, antenna type and placement, power consumption, and compatibility with your robot's hardware and software.

3. Are there different types of GPS receivers available for robots?

Yes, there are several types of GPS receivers, including standalone receivers, integrated receivers, and differential GPS receivers. Each type has its own advantages and disadvantages, so it's important to research which option would best suit your robot's needs.

4. Can I use a smartphone as a GPS receiver for my robot?

It is possible to use a smartphone as a GPS receiver for a robot, but it may not be the most reliable or accurate option. Smartphones are designed primarily for human use, so they may not have the necessary features or capabilities for a robot's specific needs.

5. How can I test the performance of a GPS receiver for my robot?

One way to test the performance of a GPS receiver is to compare its readings with known, accurate locations. This can be done by taking the robot to different locations and comparing the GPS coordinates with a map or using a separate GPS device as a reference. Additionally, you can test the receiver's accuracy and reliability over time by collecting data on multiple occasions and comparing the results.

Similar threads

  • Electrical Engineering
Replies
2
Views
812
Replies
19
Views
4K
  • Electrical Engineering
Replies
4
Views
2K
  • Electrical Engineering
Replies
15
Views
2K
  • Engineering and Comp Sci Homework Help
Replies
18
Views
1K
Replies
4
Views
1K
Replies
10
Views
2K
  • Electrical Engineering
Replies
1
Views
2K
Replies
10
Views
586
Replies
9
Views
2K
Back
Top