Are you being shortchanged by your iPhone’s GPS?

Executive Summary

Yes you are, but you’ll just have to get over it.

Full Article

As you might expect of a geeky runner, I have always enjoyed measuring my runs – time, distance, pace, heart-rate, etc – and then competing against myself.

A couple of years ago I acquired an accelerometer based device which you attach to your shoe and works in conjunction with a heart-rate monitor watch to give you your distance speed etc. It worked pretty well for a year or so, but then even with fresh batteries it started mismeasuring by 10 or even 20%, which made it useless, and I had to give up on it.

But then – enter stage left the iPhone – along with its built-in accelerometers and its GPS system. Unfortunately, after some investigation using  a test application that I built, I realised that the accelerometers were not going to be accurate enough for any real-life measuring purposes. But that still leaves the iPhone’s GPS system as a candidate for run tracking.

So a couple of days ago, during a brief break from app development, I stumbled across just the app I was looking for. Enter stage right RunKeeper for the iPhone.

There are several iPhone applications which perform similar functions, but RunKeeper just happened to be the one that caught my eye, and I decided to try it first.

My first attempt at a run had a few glitches. Specifically, I overlooked the advice not to put the device to sleep. Consequently, half way through the run I woke it to find that it had correctly kept track of elapsed time, but it hadn’t yet realised that I had moved at all, at least until the GPS kicked in a few seconds later. Later analysis of the map that RunKeeper creates for you on its website showed that it then thought I had traveled in a perfectly straight line from start to that point, even though my path had actually meandered, and consequently the distance traveled estimate was well short of reality.

My second attempt was more successful. I kept it awake the whole time, and when I got back I logged into the RunKeeper site and could see that it had actually tracked my run pretty well. But its estimate of distance covered was a little bit short of the distance I found myself by using the Google Earth ruler to measure the path I took in some detail specifically 3.59kms according to RunKeeper vs 3.75 kms according to Google Earth manual measurement. That’s a 4.3% shortfall. Not too bad from a big picture point of view, but terrible from an egotistical runner’s point of view, because it makes you look 4.3% slower than your actual pace!

The reason for this becomes apparent from the following screen shot from the RunKeeper website, to which I have added the yellow path and labeled arrows. I zoomed the map right in to Cremorne Point and switched on satellite view instead of map view, to make it more apparent what is happening in a small segment of the run.

Cremorne Point

You can see that the GPS record of the path (red) cuts off the sharpish corner that I actually took (yellow). And the same thing happened at almost all abrupt turns that my course took, such as at street corners. The reason for this is quite obvious – its because the GPS tracking data only gets updated at intervals, and if you happen to turn a corner between GPS fixes, then the tracking software can’t really do anything other than assume a straight line between those points.

So in actuality this issue is not just an iPhone issue or a RunKeeper issue. Its more an issue with using GPS tracking in general, and just how much you get short-changed by your GPS run tracker depends on how often accurate fixes are obtainable by your GPS device.

If anyone out there knows the inherent limitations of GPS tracking intervals vs the inherent limitations of the iPhone’s own GPS device and SDK, please show your hand now. If we can’t actually prevent ourselves being short-changed by our GPS tracking systems, then it might soothe our egos just a little to understand why.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s