0

I was able to switch to the path loss formula but I had to do it manually through

beacon.setDistanceCalculator(new PathLossCalculator(param1, param2))

but this method requires me to enter the constants manually and not automatically the ones for the specific device. Is there a way to enable the formula like we can do with the following BeaconManager method

setRssiFilterImplClass(ArmaRssiFilter.class)

Also, can I get any leads on how to find the 2 parameters, like with the curve fitted formula? What is the theory behind this formula / Where does it come from?

Thank you.

user3001845
  • 465
  • 2
  • 7
  • 13

1 Answers1

0

The path loss formula is currently experimental. It has not been proven to be able to more accurately estimate distances across Android models and beacon types. If it is proven, it will be merged to the master branch of the library making it easy to enable as you suggest. If you are interested in volunteering to help with this, please do!

The algorithm uses two constants to standardize the RSSI detected by your phone: receiverRssiSlope and receiverRssiOffset. Their purpise is to adjust the RSSI measurements of the Android device so they best emulate the response of an iPhone reference receiver. I have noticed in testing two things:

  • All Android devices have different receiver gains, requiring a RSSI offset to make the inputs work on the same formula.

  • The RSSI value on many Android devices does not decrease/increase proportionally as you move the same distance away as on a reference iPhone device. The purpose of receiverRssiSlope is to adjust for this.

The idea is to get a RSSI vs. distance table that looks as much as possible like an iPhone reference RSSI vs. distance table before using it as an input to the distance equation. So you do a linear estimate to convert the Android model RSSI value to an iPhone standardized RSSI value.

To calculate the constants for a Galaxy S3, you collect RSSI measurements at known distances for that device as well as an iPhone 6. Then do a linear estimate for the Galaxy S3 RSSI (independent variable) to convert it to an iPhone reference RSSI (dependent variable). Doing the regression, you get something like:

Intercept -11.076209048362 Slope 0.80421216848674

And then you use this to convert the Android device RSSI to a standardized reference RSSI before plugging it into the path loss distance formula.

davidgyoung
  • 63,876
  • 14
  • 121
  • 204
  • Thanks for the clarification, I will do some tests with this algorithm and will let you know if I get anything interesting. Do you have ideas for any other distance algorithms that I could try out? Also wouldn't I need to use an iPhone 5 instead of iPhone 6 since the txPower vlaue is from an iPhone 5? (for the sake of being consistent). – user3001845 May 29 '16 at 09:01
  • You should generally calibrate using the latest model iPhone as a reference. If you have existing calibrated beacons which were calibrated with an earlier iPhone model, you should use that, yes. – davidgyoung May 29 '16 at 11:38