Location with iBeacon

1.9k views Asked by At

I am using an iBeacon, and using triangulation and trilateration (or something similar), want to be able to locate an exact (or fairly accurate) distance between the iBeacon and user's device (in feet/metres/e.t.c). What is the best way to do this, and how would I do this?

I forgot to mention: I understand that it is possible to find proximity (i.e near, immediate, far, etc.), however as mentioned, ideally I am looking to find an accurate distance (maybe by combining RSSI, accuracy, and proximity values).

2

There are 2 answers

2
Duncan C On

In iOS the Core Location beacon information you get when you range a beacon includes both a "proximity" value (far/near/immediate) and an "accuracy" reading, which is actually approximate distance, in meters.

In order for the distance reading to be as accurate as possible, you should really calibrate your beacons. To do that, you put the beacon exactly 1 meter from the receiver and take a reading. The receiver gives you a "measured power" reading, which you then set on the transmitter. The measured power reading is used in calculating the distance reading.

Distance readings are very approximate, and are subject to interference from the surroundings.

The Apple sample app "AirLocate" shows working code for calibrating a beacon, and I believe it also displays

0
Salmaan On

For this you should use RSSI (Received Signal Strength Indication) of an iBeacon. The signal strength determines how close or far it is from you. But the problem is that:

  • Every beacon's RSSI might differ distance, accuracy.
  • If beacon is behind the wall or any static obstacle the RSSI-Distance-Ratio will not work.

Therefore instead of Triangulation or Trilateration you should go for Fingerprinting. This will work better then rest of the techniques.

  1. Place obstacles all around you.
  2. Make reference points on your map.
  3. Calibrate your app with that location i.e. Get the signal strengths from atleast 3 nearest iBeacons and save it against that reference points.
  4. Do this for all other reference points.
  5. (If you can) Do this twice or thrice and take average and store in database.
  6. Now you have laid map of calibrated reference points. (This will handle all different RSSI-DIstance-Ratios of all the beacons)
  7. Now whenever you are at any position compare it with the nearest point and you will get to know the closest location of your reference point.

enter image description here

If you are using google maps, the lat long they provide is upto six decimal place i.e. 0.11 meters which i think is preety much accurate in a room as well.

I guess this helps :)
Please mark this the right answer if it works.