A Global Positioning System Component
Authored and developed by Richard Caudle, BTexaCT

A Global Positioning System Component

The aim of this component is to interface a GPS unit with a PC. The software is written in Java to promote platform independence and use with any other Java application, including the Georgia Tech Context Toolkit.The software is designed, principally, for use with the context toolkit, however this site also contains a version that can be used in any Java application. The software is available here for downloading, (or locally of the server here at Magee) and is an open source project.

Hopefully this work will save you a lot of time developing your own.

 

GPS Software component

GPS stands for 'Global Positioning System' and was originally developed by the US military.  A GPS device has the ability to track its position globally down to approximately 10 metres, and there are techniques that can increase this accuracy.  This GPS component uses such a device to generate information regarding position.  By processing this information the component can determine the position and other facts about that device.  This data can then be relayed to subscribers in the context toolkit, or put to any other use you desire.

 

What Can the Component Do?

    the software component is capable of providing the following information from a GPS receiver:

All these fields are obtained by parsing NMEA 0183 sentences the receiver outputs to the computer's serial port.  Note that all communication with the receiver is one-way and the software does not send any data to the receiver.  The accuracy of coordinates are totally independent from the software component, and are only affected by the GPS hardware.  On average you may expect such a device to return a 10m accuracy with good satellite reception.

Note this attempt at solving the problem is only an initial attempt and by no means offered as a perfect solution.

 

Hardware Compatibility

It does not matter what receiver you use with the GPS software, as long as it outputs the NMEA 0183 version 2 protocol.  This is common in most modern GPS receivers.  Make sure the device can be connected to your computer, and that you buy a cable to connect it to one of your serial ports.  It is possible to buy receivers that interface with computers but not via a serial port.  These devices can be used as long as they can emulate a serial port on the computer.  For example PCMCIA devices usually emulate a serial port.

A Garmin Etrex receiver (shown here) was used for the majority of the development of this work, and these are readily available for around £100 on the high street.

 

 

 

 

 

Using the GPS Software

The software is currently available as version 1.0.5, from this Web Site. This is the first public release of the software.  If you are interested in downloading/using this software You should also contact the creators and let them know your views and opinions of it.  They (and me) will always appreciate feedback on the project, and would like to know who is interested in developing software in this area. 

Task

Develop a system that would allow someone to enter in tasks such as wishing to drop the laudry off at a dry cleaners on Friday. Then on Friday whenever that person drives near a dry cleaners - their mobile phone alerts them. It's basically bringing location into an organiser.

I'd love to see students take this theme and develop it. It's one of the hottest areas in mobile computing at present. I have the GARMIN ETREX GPS Receiver. I have the cable. I have downloaded the Toolkit and I can show you how to link the toolkit to the GPS system. I guess I can also lend you my trusty laptop. Just don't come back if you damage either...

Tutorial on GPS

What is it?
The Global Positioning System consists of 3 segments:
  • Space Segment
  • Control Segment
  • User Segment
The Space Segment is a constellation of 24 satellites which orbit the earth every 12 hours. The Control Segment comprises a series of monitoring stations at different locations around the world, with the master control facility located at Schriever Air Force Base in Colorado USA. The User Segment is made up of all the GPS receivers in the world's aircraft, ships, cars, and handheld units.


How it works
The operation of the system is very complex. At its simplest, each satellite is constantly transmitting its identity, along with a time signal. GPS receivers contain an almanac which tells them where each satellite is at any moment in time. The receiver picks up a signal from satellite number 4 which says something like "I'm satellite number 4, and I sent this message at 14:30hrs and 13.9732465 seconds". The receiver knows where the satellite is, and it also knows what time it is, so the receiver thinks "I got that message at 14:30hrs and 14.0295465 seconds, so the signal took 0.0563 seconds to reach me, therefore satellite number 4 is X miles away from here". That information on its own is useless, but if you receive the same information from 4 satellites in parallel, you have your position in 3 dimensions.


Selective Availability
The US government introduced Selective Availability (SA) in order to control the availability of the highly accurate positioning which the GPS system is capable of providing. Without SA, the GPS system is accurate to around 30 Metres. SA degrades the accuracy of civilian receivers by introducing a small error in the time signal transmitted by each satellite. The accuracy of the system is reduced to around 100 metres. There are many articles complaining about SA, and calling for its abolition. I'm not so sure I agree with them. The GPS system belongs to the US military, it cost them billions of dollars to develop and implement. Personally, I'm surprised they make it available to the public at all, let alone for free. Having said that, I wouldn't complain too loudly if SA was abolished.

Update: 1st May 2000.... The White House has just announced that Selective Availability has been abolished. Read the statement here.


DGPS
Differential GPS. Imagine you survey a position to pinpoint accuracy, then place a GPS receiver there. The receiver knows exactly where it is, so it's not fooled by Selective Availability. This receiver can calculate the timing errors which are in the transmissions from each satellite, and blow the whistle on them! The DGPS station has a transmitter which constantly sends out correction signals to DGPS-enabled receivers. So effectively, the DGPS transmitter is shouting things like "Satellite number 5 is 0.0023 seconds slow, and satellite number 9 is 0.0049 seconds fast". A DGPS-enabled receiver can incorporate these corrections into its calculations and can therefore provide a much more accurate position. It should be noted that DGPS transmitters are not widespread, They are extremely expensive to install, and are typically found in areas where high accuracy surveying is necessary, such as around quarries and drilling platforms etc. It's worthwhile checking to see if DGPS signals are available in your area before spending money on a receiver.


Triangulation
Triangulation is a major factor in determining your position accurately. This can be more accurately described as Geometric Dilution Of Precision. Ideally, when calculating position, the GPS receiver should be tracking as many satellites as possible, and the satellites being tracked should be as widely spread across the sky as possible. The image below illustrates a receiver tracking 8 satellites in parallel, which are well spread across the sky. The receiver could comfortably ignore 4 of these satellites, and only use the 4 which are widely separated, and its accuracy would hardly be affected at all.


The following illustration shows the same 8 satellites, but only 4 are visible. The satellites which are visible are relatively close together in the sky, so the signals are separated by relatively shallow angles. The accuracy of the position calculated by the receiver will be degraded as a result.

There's an excellent GPS Tutorial on the Trimble website.

Thanks to Stuart Robertson for writing this tutorial.


Home

To contact Author: Email: [email protected].