GPS Always Overestimates Distances (i-programmer.info)
mikejuk writes: Have you had a suspicion that your GPS app is overestimating the distance traveled? It is something that runners and walkers complain about a lot. If so, you are probably correct -- but the reason isn't an algorithmic glitch. The answer lies in the statistics, and it is a strange story. If you make a measurement and it is subject to a random unbiased error, then you generally are safe in assuming that the random component will make the quantity larger as often as it makes it smaller. Researchers at the University of Salzburg (UoS), Salzburg Forschungsgesellchaft (SFG), and the Delft University of Technology have done some fairly simple calculations that prove that this is not the case for GPS distance measurement. Consider the distance between two points — this is along a straight line, and hence it is the shortest distance. Now add some unbiased random noise, and guess what? This tends to increase the distance. So unbiased errors in position give rise to a biased overestimate of the distance. There is an exact formula for the bias and in some cases it can be more than 20%. Is there a solution? Perhaps using velocity measurements and time to work out distance is better — it isn't biased in the same way, but how accurate it could be remains to be seen. So when your fitness band tells you you have run a 4-minute mile — don't believe it.
But then you say not?
So when your fitness band tells you you have run a 4-minute mile — don't believe it.
I think you mean "So when your iWatch tells you you've walked 17 yards today between the fridge, front door to accept pizza, and da toity, don't you believe it."
This is Sashdot.
(-1: Post disagrees with my already-settled worldview) is not a valid mod option.
As a sailor who use GPS alongside traditional navigation: stop using devices that poll and insert a new leg on your route every 5 seconds. If you lower the polling frequency to f.e. every 1 or 2 minutes this problem goes away. I realize that this doesn't work for people who insist on taking their morning run zig-zagging through city blocks.
If the bias is known to be X percent on average, how about you subtract those X percent from the number to get an unbiased result? You might even come up with a way to estimate the bias in each particular case based on input from the sensors.
I thing apps like RunKeeper are already doing this sort of thing, because they seem pretty accurate to me, if perhaps a little too optimistic...
The thing is, you don't win users by under-estimating their achievements.
"it can be more than 20%" -Yeah, it can be an infinite number of %, if the actual distance travelled is zero, and the random error is not.
Though they were with Garmin devices 4 years ago (not current shitphones) and the results where like this: average measurement error 5m when standing. You don't even need to move, just stay for about 5 to 10 min and you will get a fucking cloud of measurements drawing the nice error around you. The error is about 10-20m when moving in a fast car (at 100km/h). Now after RTFA they look at errors in the range 1-6m and state there's an overmeasurement of between 20% to 60%. Duh. Please move yourself a little bit more and the error will be negligible (unless you are capable of running at 100km/h).
Besides, such an error should be even less negligible compared to real world movement. Most apps measure distance considering a flat world, but you tend to go up/down depending on where you live, and this rarely gets counted. In *my* experience (not those alleged runners') most GPS distances are *less* than real world distance precisely for the same reason a 2d map distance calculation is always less than the real 3d distance.
And before you ask, depending on who built the roads and how, measurements may be 2d or 3d. Plus you can't trust km signposts either, they are just maintenance reference points that get invalidated after each road change.
If it's purely a timing error, projected into 2D or 3D space, then for a number of variables having an evenly-distributed (or normal) error, most of the resulting positions will be 'far away'. For example, if you create a 7x7 grid, with yourself in the center square, and pick one of the 49 squares randomly, only 1/49 is correct, another 8/49 are within 1 distance, another 20/49 are within 2 distance, and so on, because the number of squares available increases for any given distance.
While technically correct, your correction is not really relevant to the discussion... Add random noise to the ideal arc and you get the same result - error that always goes up, never down.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Wouldn't traveling in an arc but measuring points along that arc as connected straight lines cause the error to go down?
The location info you get on your phone is probably not "GPS" -- it's a combination of location data from the cell tower combined with Google/Apple software which provides an approximate location of your phone.
There's a reason legit GPS receivers all have those big external antennas, suck down batteries, and provide much more accurate position data then your cell phone.
Please stop referring to the mapping apps in your phone as "GPS", because it's not. Thank you.
I began running 5ks recently and the watch consistently reports my distance as 100 - 150 meters short of 5k when I finish. It is also fairly inaccurate in reporting my current pace particularly when I've turned a corner or made any kind of deviation from a straight line really. I've been running long enough at this point to know when I'm running a 9 minute/km pace (yeah, I'm a turtle) but my watch will occasionally say I'm running a 7 minute km.
GPS is a position determination technology. GPS-based "velocity" is calculated by GPS device based on change in position (distance) and time. It is subject to exactly the same error as the position itself.
Apropos, in the GPS navigation software I work on, tracking uses adaptive smoothing precisely for the purpose of reducing the distance error.
with big circular objects like earth difference between arc length and straight line length is very small in percents so that would not change much
My experience is that my iPhone under reports my runs by at least 100m every 5km (I get variances of 100-300m under reported for the same 5.7km loop that I run once it twice a week.
I ran the Richmond-upon-Thames 10k last year and after crossing the line I had apparently only gone 9.8km. Other people at the finish mentioned their Garmins had reported even less. I wrote an email to the organiser who came back to me with a plausible explanation and a defence that they were IAAF measured (with a certificate confirming the length): the sample frequency of these devices isn't frequent enough and will cut-off corners, which was particularly bad for this event which zig-zagged through Kew Gardens, with 17 right angles and a long curve along the river Thames.
Following up on my own comment after reading the article:
Within the scope of consumer-grade short distance measurement, the author considers the point of distance lost by low-resolution measurement of curved paths but dismisses it.
In practice with consumer-grade dedicated units (SPOT GPS Trackers, not phones) with polling frequencies at 5 minutes over 500+ miles, my experience (following from others) is that it's necessary to adjust *upwards* to match the distance calculated from a higher-resolution version of the same path.
~JB
This guy seems to be the from the past, because what's he's talking about would have been a problem _in the 1950s_, maybe.
Read about Kalman filtering which is basic engineering stuff and learn.
The interesting thing about this is not that they've found an explanation for why a GPS always overestimates (which is pretty obvious), but rather that they've taken the time to work out the statistics and quantify this overestimate. Imagine a GPS implementing this, and therefore able at any point in time to give the expected error. It might tell you that it measured a path of 10 km, but that, because of the type of noise present, the actual path was probably closer to 9 km. You could even take that a bit further and apply a smoothing algorithm to the track with as optimization goal to match the track with the expected distance.
I'd use that feature.
This gem caught my eye:
That's some amazing math there. (1.2 m - 1.0 m) / 1 m = 0.2, indeed a relative error of 20%. But (5.6 m - 5.0 m) / 5 m = 0.12, a relative error of 12%, not 60%! So, let's fix this thing, with of course the opposite conclusion:
OpenSource.MathCancer.org: open source comp bio
The shortest distance between two points on the surface of the earth is not a straight line. It is a path that follows the curvature of the earth.
The shortest distance is a chord that goes beneath the surface of the earth.
That's going to get my shoes dirty...
Son of a ditch!
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
Yes, but random errors will increase the total distance traveled, independent from this kind of inherent estimation error.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
I thought that GPS used things like Kalman filters to reduce noise. Personally I've noticed that the phone's GPS appears to try and insert me on a known path (even if I'm slightly off of it). Also, when running if I turn around abruptly it usually underestimates the distance I've run.
So this is why Americans are getting fatter!
ba dum bump... ching.
"the expected measured length squared between two points is bigger than the true length squared unless the errors at both points are identical." WTF are they squaring the points' positions?
random errors in positional measurement will increase the *apparent* distance traveled, not
the actual distance.
No, measurement error will actually bend space time.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
So can we do better with velocity-bases stats? (gotta be careful there, too, and use harmonic means and such)
When you run the same route each day - which I'm betting most work-a-day runners do, then you only need your time. You know your pace and cadence, forget the tech (and I have an Apple watch, plus an older Nike fuel...).
If you are running while on a work trip, maybe it helps but again, but you probably are just trying to get your workout before your meeting; fussing with workout tech just adds stress and that's what you are trying to combat with the run!
If you are running on vacation, what the hell is wrong with you (j/k)
Heart rate is a different story, but I'll save that comment for a different post.
sigs are for losers (except to point out that sigs are for losers)
From the paper:
Since linear transformations (like rotations) preserve expectation, rotating errors with expectation zero results in errors having expectation zero too.
I think that this assumption is correct for the error in measurement for either point, but in order for it to be true for the distance between the two points you would have to somehow assure that the rotation was done in exactly the same fashion for both sets of errors, i.e. if you allow both to be rotated independently you will introduce errors into your calculations.
If what they are proposing is true, this would affect not just GPS distance estimates, but all distance estimates. It seems unlikely to me.
A trivial calculation (really, I figured that out a long time ago), with a non-trivial solution.
*Ideally* you would not use the GPS signal with a Kalman filter in the input, but for distance calculations en the end of the trip you should use a variant of the filter which can "look into the future" for each point.
While the best estimate for the position at any given point in time can only be based the past data (and Kalman filters are ideal for estimating this under this condition), the estimation of a point where you have been can be based on all information which you have obtained until the time when you want to know the location in the past.
To be more specific, if i measure points 1,2,3 and at the time of acquiring point 2 i want know my location, i can only use current data and point 1. However if i want to know it later, the information i got when i measures 3 will make i possible to draw a straight (or curved) line from 1 to 3 and estimate the most likelt position of point 2 under the condition that 1,2,3 need to fulfill some physical properties (like *not accelerating wildly*).
Also, one could use DGPS to correct the trajectory.
Scientists have discovered that water is wet.
Isn't this really just a problem related to the path's chirality?
For example, if you leave point A and then reach point D, traveling through B and C, if point B is a right turn and C is a left turn would the errors not cancel out?
Then, B and C both being right turns, or both being left turns, would both tend to increase the measured distance (imagine a unit circle with a curving path through it. random points in the circle will predominantly fall on the outside of the curve, thus increasing the distance)
Or am I missing something with the fact that our paths are arcs?
A very common way to get better velocity data (used for example in consumer grade ublox and mediatek receivers) is to directly measure the doppler shift of each satellite signal. Since you accurately know where each satellite is and their velocities, you can use the doppler shift between each satellite's signal to determine your own velocity with respect to them. The main advantage of this technique is that it is not affected by atmospheric propagation-delay variations (the signal might come later, but the doppler shift is not affected) which is the main source of error in civilian GPS system.
One of the reasons it is commonly used is that you need to compensate for the doppler shift in your receiver front end anyway, so you get this data essentially for free if you can be bothered doing the calculations with it. I have worked on projects that used this technique and you could easily get around 1% cumulative error on distance measurement with at 4Hz sample rate.
The best way to fix this would be to physically measure out your distance another way. But the the other question if indeed the GPS distance is always long would be to consider how constant this error is? Can you count on a certain percent of error or does it vary?
https://en.wikipedia.org/wiki/Coastline_paradox
If you're going to take velocity measurements of a runner, decide whether to count the distance traveled up and down with every step.
... like on a track. In which case it'll cut the corners and underestimate.
We tested a gps a couple of times over a few miles each time. This was using a handheld Windows device, for which my friend built software to function as a taxi meter.
I think TFA tried to measure distances that are two small - 1 meter and 10 meters. It describes one source of error - random errors increase the measured distance. However, there is another source of error in the opposite direction which compensates for the first. Due to sampling occasionally, the GPS-based measurement measures a curve as a series of straight lines, which is shorter. In practice, these two balance out for driving around the city.
The correction we do make in the taxi meter is that random error becomes significant when the receiver isn't actually moving, or is moving at under 5 MPH. It appears they tested at under 5 MPH. For the taximeter, at under 5 MPH we ignore the supposed motion and only add it to the wait time; in other words we treat any speed less than 5 MPH as if there were no motion at all. This gives very accurate results for driving.
* The other adjustment (not correction) we make is that we intentionally under-report by about 0.5%. That's because the law allows us to under-report by 2% or over-report by 1%. Trying to be 0.5% low gives us more margin for error before a customer is unlawfully over charged.
In case it was not clear to everyone reading TFS, "GPS Always Overstimates Distances" is incorrect. The point of TFA is that, on average, distances are overestimated. GPS distance estimates are subject to random error, and the random error is biased. So more often than not, the estimate will be too large, but not "always". A better headline would have been, "GPS Usually Overestimates Distances". Less sensational, but more accurate.
So, a few years ago I wrote a "Taxi Meter" app for iPhone (though got bored and never released it...).Not meant to be a real taxi meter, but a novelty, say to get the kids your ride-share partner to get a grasp how much running around you are doing, and what it would cost to get a taxi instead...
I had to multiple by a fudge factor
The fudge factor was good enough - it got it well under the 2% required for a real taxi meter. I checked it by driving specific routes and then plotting the routes on Google Earth and checking the distances.
(Of course, this would also account for lane changes, and for a REAL taxi meter you would want to include them.)
Imagine for a moment that instead of going from point A to point B, you instead Zigged at 45 degrees then half way you Zagged back on the slant path to point B. Clearly then your total trip is sqrt(2) times the straigtline distance. But you went needlessly off the path. Instead we shall imagine that we can detect when we have deviated by 1 foot from the straight path. So we now execute a zig zag (45 degree) path turning each time we deviate by 1 foot from the true path. How far did we go? Oh my, it's still sqrt(2) times the straight line. We work hard and improve the duidance system so we now can detect when we are 1 micron from the straightline path. How far? still sqrt(2) times the straight line.
Indeed no matter how accurate we can detect the deviation so that the true path is beyond the capacity of any instrument to measure the deviation, say 1/100th of angstrom the same logic holds.
ergo all paths between A and B including the straight path are 1.41 times the straighpath distance.
Fractal hamburger.
Some drink at the fountain of knowledge. Others just gargle.
Probably Google Maps for Anderhoid as that's what people generally mean when they refer to GPS. The title is very misleading, I thought this was about GPS receivers overestimating the distance they are from a given GPS satellite, which would lead to much the same location but far below sealevel (assuming it is overestimating each satellite by the same amount)
...would you think that getting a "position fix" every few seconds and just summing the line segments would in any sense look like your actual path. I'm not surprised that people who write cellphone apps screw this up, though.
Start with your pointset, fit some rational path to it (you'll do OK with just the points, but you could augment with the onboard accelerometer / compass to distinguish real direction changes from noise), and you won't be far off in almost all real cases.
You need to be a researcher in order to rediscover the effort of noise on sampling?
Just do course smoothing and you can reduce the bias to zero.
Either way I don't know what my watch does but I have 5 marathons recorded and the recorded distances ranged from 41.95 to 42.5. Being Boston Qualifiers they were at least 42.195 so 4/5 were overestimates and a total error of less than 1%.
I also do a series of XC races where the published distances (measured by mountain bike) are notorious for being 5-10% longer than peoples GPS. Assuming the bikes aren't horribly calibrated the explanation is these are hilly courses (GPS misses the up/down) and the GPS will cut corners.
So on a straight course without correction it should always be an overestimate (barring error in the start/finish pos), but to claim in overestimates in every scenario is wildly inaccurate.
I stole this Sig
I hike with a club two days a week, and on every outing there are several of us who measure distance and elevation change with a GPS. Our distance measurements are always different, because of the interval between readings for each device.
Imagine a twisty trail being hiked. Whenever your GPS takes a reading, it's like pushing a map pin identifying one specific point on that trail. Think of your device's distance measure as a thread stretched from pin to pin all the way along the trail. See how the sum of all those straight string segments is always SHORTER than the actual trail distance? That's the effect we see. Increasing the read frequency makes the measure more accurate, but runs down the battery faster.
A similar effect can be obtained when walking (don't recommend driving) home from the pub on a friday night. The distance seems twice as far....
The car can report its current velocity and compass reading, something that phones have a hard time doing on their own. For this reason and others, I look forward to a proper car to phone interface.
To test the theory some experiments were performed. A consumer quality GPS was walked around a 10m square with segment lengths of 1m and 5m. The average measured segments were 1.2m and 5.6m. That is, an overestimate of between 12% and 20%.
Consumer quality GPS, even in this day and age, is hard pressed to accurately resolve your position within 10m. Maybe if they increased their square to 1km they'd get more RealWorld(tm) results.
have you never ever watched the indoor jitter without you moving at all on any tracking app you just installed to check out?
GPS drift is a major factor in distance and elevation calculations. This is why advanced techniques use additional data like actual speed to make correction and they also use adaptive error correction based on the type of movement. If you're in a car, the kinds of error tend to be different than running. Some social workout websites also re-invent the wheel instead of using established techniques. This has been a known issue for over 2 decades, it's not new. Just look at the papers on the subject of GPS correction.
Likely the GPS is subject to path jitter. You might run in a straight line but the GPS path will suffer jitter of 10's of meters or more to each side of your straight path. For overall distance it adds up all those imaginary zigs and zags and boom, long run.
That is because there are no satellites in the sky, they use ground-based cell phone towers. Want proof? Just look at which direction every single "satellite" based direct-tv dish points - and then look up the nearest cell phone tower.
Unbiased noise has a mean of zero. GPS is usually calculated via a least squares algorithm for an overdetermined solution. Position is calculated with unit vectors pointing at the satellites. Velocity is calculated with pseudo range differentials in the same least squares estimate.
What you need to clarify is how you know that GPS is overestimating distance travelled. In order to do this, you need to compare with a known, measurement of truth.
How are you comparing GPS calculated distance against truth to measure the error?
Jensen's inequality says that if f(x1, ..., xn) is a convex function (curving upwards in all directions), and (x1, ..., xn) is a random vector, then the mean value (probability-weighted average) of f(x1, ..., xn) is higher than f evaluated at the mean value of (x1, ..., xn). It's easy to see this if n=1 and there are only two possible values of x, because the line drawn from (a, f(a)) to (b, f(b)) always lies above the graph of the function f.
If you take f(x1, x2, x3, x4) to be the measured distance between two points when (x1, x2) are the errors in the X and Y coordinates of the first point, and (x3, x4) are the errors in the X and Y coordinates of the second point, then it turns out that f is a convex function, and Jensen's Inequality applies. Assuming the errors are unbiased (mean value of 0), this says that the average measured distance (mean of f(x1, x2, x3, x4)) is higher than f(0, 0, 0, 0) (the actual distance).
The authors suggest that doppler velocity calculations should be immune to the kind of overestimation they claim sampling position measurements suffers from. I don't think this can be the case.
Let's first focus on what is wikipedia claims is the largest source of error: signal delay from the ionosphere. It seems reasonable to assume that this delay changes in a continuous manner with time. However, that means that the (non-shared) error introduced into position measurements as a result also shows up in the Doppler velocity estimations.
Indeed, one can think of Doppler velocity measurements as, at the theoretical limit of accuracy, being just another GPS measurement using the difference between the actual and expected number of wave creasts observed as the change in signal delay. Thus it would seem it would suffer the exact same problem as a sophisticated position sampling approach.
Non-continuous errors might be different, e.g., multi-path effects, but these should result in greater Doppler velocity errors than positional errors (the position error shouldn't be at most approximately the distance of the receiver from the source of the reflection while the Doppler velocity measurement could be totally reversed).
Am I missing something?
If you liked this thought maybe you would find my blog nice too:
GPS Always Overestimates Distances
Only if you travel in a straight line (and even then, only if you calculate your distance based on all your way points, and don't just use your start and end positions). That's why I zig-zag everywhere I go.
systemd is Roko's Basilisk.
This news is not surprising to me, although in my case it seems to go both ways. I've run races with a BibTag while tracking it on my phone and so far, it either comes up short or makes me a faster runner than the official time registration.
I also map out routes beforehand sometimes and I always try to make the mapped route a little longer so I know the GPS will go the distance. Not 20%, though.
If you simply use dead reckoning your integration error will contribute to an incorrect (well, estimated) result. A hybrid approach with some appropriate interpolation for correction will help. Pretty sure this has been solved a long time ago.
Should be: "...on average overestimates...". As I understand it, there is an upwards bias because, for dx and dy randomly distributed with zero mean, (x+dx)^2+(y+dy)^2 is somewhat more likely to be larger than x^2+y^2.
Â"So when your fitness band tells you you have run a 4-minute mile â" don't believe it"... actually, based on the data in this blurb, you've likely run even FASTER than a four-minute-mile.
1) Set your Garmin sampling frequency to 1-second. Always. The default of "auto-magically" or "as-needed" is not sufficient. Especially when doing a run or bike ride on a course with lots of turns or on a track.
2) If the over-estimation is fairly consistent, then what does it really matter to the average amateur? If a route that you regularly time is actually 5 miles and not really 5.15 miles, who cares? What matters is your time over that same distance. It's a like a scale that is low by 2 pounds. It doesn't matter; what matters is if you are trying to lose weight and the scale shows a decrease over time, then you are succeeding.