Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve accuracy of location updates and add a usable error estimate in OfflineProvider #19

Merged
merged 22 commits into from
Mar 20, 2016

Conversation

mvglasow
Copy link

Improvements:

  • Introduces a usable error estimate for the location derived from each transmitter, based on transmitter-receiver distance, age of scan result and distance from other transmitters
  • Individual locations are fused using a simplified Kálmán filter, giving more weight to more accurate locations
  • Both cells and wifis are used for distance comparisons and to determine final location
  • All visible cells with full ID are considered for location updates

Notes:

Using multiple cells for geolocation works only where the full cell ID is available. On 3G/4G, the full ID is only available for the serving cell (for neighboring cells only the PSC/PCI is available until the device connects to that cell). On multi-SIM devices, where there is one serving cell per SIM slot, all cells can be used if they are exposed through the Android API. Note that some devices never report any neighboring cells.

When the reported accuracy is low (several hundred meters or more), this is typically the result of a moved wifi: Suppose the device is picking up n wifis, of which one has moved. This will dramatically increase the error estimate for each location – the outlier will get an error close to the actual distance from the others, while all the others will get 1/n times that distance as an error. The synthesized location will have an error which is slightly lower than 1/n times the distance the one wifi has moved. All of this can be observed in the logs. The location reported will generally be only slightly off (much closer to the actual location than it was previously). The more stationary wifis there are in view, the better the result will be. A possible future improvement could be to identify obvious outliers and ignore them.

Blacklisting is not yet implemented – I had a look at the mechanisms in Radiobeacon today and they're somewhat complex. That will be a future extension – though the current code already provides for some generic filtering (basically a series of if statements) which can easily be extended to filter for other criteria.

mvglasow added 22 commits March 10, 2016 10:38
Accuracies are estimated using mean square distance from other wifis

Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
…ersion

Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
Signed-off-by: mvglasow <michael -at- vonglasow.com>
wish7code added a commit that referenced this pull request Mar 20, 2016
Improve accuracy of location updates and add a usable error estimate in OfflineProvider
@wish7code wish7code merged commit 846ffea into openbmap:master Mar 20, 2016
@wish7code
Copy link
Member

That sounds so cool... I'm excited to test!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants