I am trying to get smooth rssi value from Estimote beacons deployed at ceiling of my lab. I used Weighted-mean filter and moving average filter but couldn’t get good result. Through various journal papers I got to know that Kalman filter can be used for this purpose. However, I’ve heard that Core Location already does Kalman filtering. Is it true? If yes, is filtering on top of filtering a good practice?
iOS docs states nothing about Kalman filtering in Core Location as Apple does not share such information.
Developers do all sorts add filtering on top of Core Location: from simple averaging, to more complex ones like Kalman filtering — usually with good results.
There is another idea to use Core Bluetooth as you have updates with RSSI more often. You can use
[ESTBeaconManager startEstimoteBeaconsDiscoveryForRegion:] to detect beacons using Core Bluetooth.
In the future we’ll be adding our own filtering to the Estimote SDK, so that you don’t have to write your own.
I’ve implemented Kalman filter. However I’ve experienced that when the iOS device is near the edge of any beacon range(away from beacon) the RSSI value increases (?) and eventually settles at 0 dB. RSSI values near to beacons (10m) is correct but when device is moved further away from any specific beacon, the RSSI value from that beacon gets increased (-90 dB to -47…-25…-17dB etc). Can any body explain what’s happening?