Testing Wifi RTT on Android P for Indoor Positioning
At Crowd Connected we think Wifi RTT (aka Wi-Fi Location, Fine Timing Measurement (FTM), 802.11-2016 or 802.11mc) is going to be the future of indoor positioning. It allows mobile devices to accurately measure distance to compatible wifi access points. This will give our location intelligence platform an indoor accuracy of 2m or less . That's down from around 10m that we currently achieve using wifi and bluetooth signal strengths.
Android Pie is the first mobile operating system to add Wifi RTT / 802.11mc . since beta versions were available we’ve been testing the new feature. Early findings are very encouraging. We’re seeing distances measured to an accuracy of around 1m.
Here are some of the results of an initial test we did. We used a Pixel phone, and four access points capable of responding to the Fine Timing Measurement requests (FTM) that Wifi RTT uses. We put all four access points together, and collected RTT range observations at different known distances.
Android Pie reports a number of fields with a Wifi RTT range observation. The key results are the measured distance to the access point, and the distance standard deviation.
We noted that each time Android performs Wifi RTT ranging, it reports that 8 measurements were attempted, and that almost always 7 (occasionally 5 or 6) were successful. We’ve never seen all attempts succeed. Maybe the OS is reporting the success count incorrectly. Or maybe for some reason one measurement always fails.
The chart above shows actual vs expected distance - each dot is a single Wifi RTT observation. The lines show the best fit through the observations. The lines are very close to the 1:1 line, and the grouping of the observations is tight.
We had to apply an offset of around 4m. The ranges returned by all access points are consistently 4m smaller than the actual distance. This was due to a preamble mismatch, and a subsequent update of the AP firmware has removed this offset.
Quantitatively, the standard deviation for the observations is 0.83. Here’s the distribution of error:
Out of interest we also used rssi to estimate distance for the same experimental data. The equivalent chart looks like this:
Not nearly as good. A standard deviation of 3.75. And at these close distances (less than 30m), the rssi results will be best case. At greater distances using signal strength to estimate range becomes less and less accurate.
So the distance measurements from 802.1mc look very promising. Android also provides a standard deviation measure, indicating the accuracy of the measurement. From our initial tests, this doesn’t look so useful.
We plotted the standard deviation reported by Android against the actual error in the measurement. There should be a correlation between the two. Correlation is only 0.26, which is low, as can be seen from the plot.
We’ll be looking into this, but at the moment it looks as though we can’t rely on the reported standard deviation figures.
In conclusion - Wifi RTT / 802.11mc on Android 9 works. It delivers distance measurements that are a huge improvement compared to using signal strengths. We’ve already integrated Wifi RTT reporting into our Android SDK, and have added Wifi RTT range processing into our server-side location engine. We’re pushing ahead with more R&D and testing, and we’re looking forward to GA release soon. This will allow our customers to realise 2m accurate indoor positioning analytics.