Wednesday, July 21, 2010

How GPS receivers work and challenges for the future

These days you see GPS devices everywhere. Car navigation systems are less than $100, watches have GPS receives to track running distance, phones have GPS receives to track lost phones and to assist with geolocation services like Yelp, FourSquare and Gowalla.

Originally, the GPS satellite network was put into space to help guide nuclear warheads to their targets. Eventually hand held receivers became available. They were bulky and had limited mapping capabilities due to the expense of storing the map data. My first GPS had enough memory to hold a map of DC and gave no routing information.

Non-military GPS use also had a built-in limitation known as Selective Availability. Discontinued in May of 2000 (thank you President Clinton for letting SA expire), this limited the accuracy of a GPS receiver to about 100 meters. Today, a GPS receiver has a 10-20 meter accuracy, which is enough to know what road you're on for turn by turn routing systems, but not accurate enough to know which side of the road you're on.

One of the biggest myths I seem to encounter how a GPS system works revolves around how your location is actually determined.

In short, the GPS satellites do not know where you are!

Every GPS satellite transmits a special code which contains a very, very accurate current time and its position. Your GPS receiver collects this code from at least 4 satellites and uses the data to triangulate its own position on the map. The signal is continuously received by the receiver and the calculations are updated to keep your position on the map.

So how does a system like OnStar tell the service where you are? It's not the GPS itself that does it. The system in the car, uses a GPS to calculate its position and then transmits it back to the OnStar service. It's not the GPS itself doing it. If you have a GPS that does not also have a device transmitting your position, then no one knows where you are just because you have a GPS.

Why a GPS satellite's clock is so accurate

As I mentioned, the current time maintained by each satellite is very accurate and must be for this system to work. This is because the speed of light is used in the calculations to triangulate the position of each satellite. The speed light is 186,000 miles per second. If the clock is 1/10,000 of a second off, that translates to 186 miles in positioning error.

The big problem with the GPS model: your distance from the ground

As I mentioned, your GPS receiver figures out its own position based on calculations applied to an internal map. Those maps tend to contain very poor elevation data but that's not the only issue. The speed of light is only 180,000 miles per second in a vacuum. When the signal enters the atmosphere the density of the air has an impact on the speed of light which isn't trivial when 1/10,000 of a second equals being 186 miles off in your position. To counter this, the GPS receiver make a general calculation of the thickness of the atmosphere in an effort to compensate. This would be fine if the air was always the same density and if it was always the same thickness. It's not.

I've been told by engineers that this combination of issues can affect elevation calculations by as much as 100 meters. Some people might worry about how this affects checking into a 4th floor location with FourSquare, but I'm more worried about how this affects a plane deciding if the wheels are about to touch the ground or not.

There is a solution here, which is to send the same signal on two frequencies from each satellite. The impact of the atmosphere on the speed of light varies slightly, depending on the frequency. Because you know the two signals are coming from the exact same location, you can do some additional math to get a better triangulation on the signal. By the way, the military's signal from each satellite already does this. Unfortunately, your GPS receiver can't use this signal.

That's a broad bush stroke of how everything works. The GPS system is very cool and I hope we'll see some upgrades to it in the future.

What did I miss? Feel free to share comments and relevant links in the comments.

 

Posted via email from davesaunders's posterous

No comments: