1

I'm working on an indoor-positioning project where the users are carrying phones which can detect beacons located throughout the facility.

The phone app only knows the IDs of the beacons, and can detect the beacons' relative signal strength. I know the XY coordinates of each of the beacons. From this information I need to determine the user's position.

In the example below, the user's phone detects these beacons, with these relative strengths:

BeaconID   Signal Stregnth
    1            10
    2            3
    3            7

I know the user is located somewhere near those beacons - is it possible to determine their position based on this scant information?

Note - as far as I can tell the signal strength is relative and doesn't correlate to a specific distance. I've drawn the user midway between the 3 beacons but it's possible that they're located outside the triangle

how to determine the user's position

4
  • This is a very difficult problem, walls and other factors influence signal strength, however depending on your accuracy requirement it might not be impossible.. using the same method as GPS satellite positioning (intersecting spheres) you know that you are 10 units from 1, 3 units from 2 and 7 units from 3 all you need to resolve is what a unit is but you would really want another beacon to improve location; 3 beacons would be the minimum for a single floor, 4 beacons for a multi-floor situation. Commented Mar 11, 2019 at 23:56
  • Stephen WPS might of interest (Wi-Fi positioning system ) with angle of arrival based detection > en.wikipedia.org/wiki/…
    – Mapperz
    Commented Mar 12, 2019 at 0:08
  • 1
    @Mapperz thanks. Unfortunately I'm not able to influence the type of beacons that are being used, which in this case are relatively simple - they just broadcast a signal that says "I am here" and the phone picks it up. WPS would make things a lot simpler for sure Commented Mar 12, 2019 at 0:11
  • @MichaelStimson I added an answer based on your suggestion - thanks! Funnily enough the calculated position is basically where I eye-balled it should be, based on the numbers. I'm a walking computer. Commented Mar 12, 2019 at 0:43

1 Answer 1

1

Following the suggestion by Michael Stimson I tried creating buffers based on the inverse of the signal strength (since higher strength means the user is closer to the beacon) and increasing the buffer distance until the circles intersected.

Unfortunately the 3 circles don't intersect neatly (possibly an artifact of the low accuracy of the beacon readings), so maybe the best option is to take the intersection of the 2 strongest signals, and use the weaker signal as confirmation that the user is somewhere within that circle.

The labels show the relative signal strength, with the buffers being an inverse factor of this, and the red point being the user's supposed position:

enter image description here

2
  • this is by no means a definitive answer so please let me know if there's a better way Commented Mar 12, 2019 at 0:50
  • 1
    Have a read of stackoverflow.com/questions/11217674/… It came to me over lunch that loss of signal strength isn't a linear equation (it's been a long time since high school physics), that post contains a formula which may help you get a much closer result. Commented Mar 12, 2019 at 2:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.