I am using a BLE (Bluetooth Low Energy) for indoor positioning system by its RSSI and trilateration algorithm.
The problem is how to find an accurate distance using RSSI.
Every time, the beacon is giving different RSSI values, because of some interference.
I read that Kalman filter can solve this problem to some extent, but how do I use a Kalman filter?
So far as my knowledge goes, there are two functions. One is prediction and the other one is correction. But where should I start?
The Kalman Filter is not suitable for your problem.
Using BLE it is really difficult to estimate accurate distance. If you are using many beacons (every 1 m) you can estimate it but if the distance between beacons are large, it is difficult because of reflection and absorption of signal. You can try using fingerprinting for better accuracy. Kalman filter is not right choice for this application since you don't have additional control vector to predict. If you are stationary then KF can help but for dynamic cases you need to have control vector to predict and your BLE RSSI level can be used as measurement.
Kalman filter is relevant only for "presence" detection rather than "position" ie it can be useful if the position is static.
The prediction function will be a simple constant function: RSSI(t) = RSSI(t-1)
. For correction you will need to set an arbitrary value representing how much you "trust" your measures.
This blog post can be a good place to start if you want to investigate this solution: it provides explanations, a simplified model and also an implementation of such a Kalman Filter.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.