There are lots of ways of processing Bluetooth signal strength (RSSI) to determine location. Being based on radio, RSSI suffers from fluctuations, over time, even when the sender and receiver don’t move.
Trilateration and fingerprinting are common techniques to improve location accuracy based on RSSI. The paper improves on these by using analysis based on Kalman filtering of segments delimited by turns. This is used to derive locations based on pedestrian dead reckoning.
The researchers achieved a positioning accuracy of 2.75m.
The key thing about this research is that it uses iOS rather than a beacon to advertise iBeacon. The system allows the entire team to determine the location of other members, perform location based tasks, receive announcements and communicate via instant chat.
The paper contains some useful analysis of accuracy of distance measurement on distance, interference, measured power and obstructions:
On iOS it’s only possible to advertise iBeacon if the app is in foreground:
The major limitation of the proposed app is battery drainage while keeping the app active all the time in the foreground
A more practical system would have been implemented by having the users carry a separate wearable beacon. This would have allowed presence to be detected when the app isn’t in foreground and there wouldn’t have been a problem with excessive iOS battery use.
The problem now is that the Google/Apple solution doesn’t provide access to RSSI and instead makes its own determination of close contact. Developers are forced down the path of a closed solution that can’t be improved upon. The new app is worse at determining distance than the original NHS Covid-19 app:
Engineers are still trying to reduce how often the Bluetooth-based tech wrongly flags people as being within 2m (6.6ft) of each other
RSSI is very noisy due to radio multi-path distortion, reflection, shadowing and fading. It also varies due to differences across devices in transmit and receive capabilities.
The paper shows show how good prediction of proximity and risk can be obtained by using RSSI sequences rather than applying thresholds to single values. This correlates with our findings in that our Bluetooth contact tracing solution uses sequences rather than value thresholds. The paper also mentions that the duration of the risk also makes some close contacts more important to classify correctly. Again, we concur in that our solution has the ability to contact trace based on contact duration.
England’s contact tracing is now heading in a better direction and in the direction we previously advocated. They now need to persuade Apple and Google to improve their solution.
They have observed that the stability of the received Bluetooth signal strength RSSI depends on which Channel 37, 38 or 39 the signal is being received on. This is because the channels slightly overlap the WiFi channels and there can be other Bluetooth devices also using the same channels.
The method analyses the channels over time and chooses those it thinks has least interference and most stable RSSI. This reduces the positioning error by 0.2m, to 2.2m, at a distance of 3.6m.
RSSI is the signal strength at the Bluetooth receiver. The signal type, for example, iBeacon, Eddystone or sensor beacon is irrelevant. The value of the RSSI can be used to infer distance.
The accuracy of the distance measurement depends on many factors such as the type of sending device used, the output power, the capability of the receiving device, obstacles and importantly the distance of the beacon from the receiving device.
The output power isn’t known to the receiver so it’s sometimes added to the advertising data in the form of the ‘measured power’ which is the power at 1m from the sender.
The closer the beacon is to the receiver, the more accurate the derived distance. As our article mentions, projects that get more detailed location derived from RSSI, usually via trilateration and weighted averages, usually achieve accuracies of about 5m within the full range of the beacon or 1.5m within a shorter range confined space.
They studied the radio signal from multiple Texas Instruments SensorTag CC2650 devices in order to determine if it could be used to determine location.
“Given the large number of factors governing the received RSSI, calibration is unlikely to be able to compensate for all of
them, leading us to conclude that there is an inherent limit to the accuracy of a BLE positioning system especially when multiple devices are used.”
…that instead of using a single RSSI measurement to estimate distance, try using the average or median value of N measurements collected on the same spot (at least N>20) so that you can reduce the effect of small scale fading.
They use a Server-Side Running Average (SRA) and Server-Side Kalman Filter (SKF) to improve the proximity detection accuracy compared to Apple’s immediate, near and far indicators.
The researchers found:
The current (Apple) approach achieved a proximity detection accuracy of 65.83% and 67.5% in environment 1 and environment 2 respectively. SRA achieved 92.5% and 96.6% proximity detection accuracy which is 26.7% and 29.1% improvement over the current approach in environment 1 and 2 respectively
What’s interesting here is that the researchers have quantified the accuracy of Apple’s implementation in two scenarios. The accuracy isn’t that good and as the researchers have shown, can be improved upon significantly.
Most motion sensing applications usually place a sensor beacon on the things that will move. The accelerometer in the beacon reports changes in movement. The research paper describes an alternative method of detecting movement of a person, an elderly person in this case, based on the change in blocking of the beacon signal over time. This has the advantage that the beacon doesn’t need to be worn. Also, it doesn’t have to be a accelerometer beacon as any beacon can be used.
The problem with using the strength of the beacon signal (RSSI), is that it varies over time even when there’s no change of blocking in the room. This is due to radio frequency (RF) noise and reflection. The authors of the paper looked into smoothing of the data to filter out such variance in the data:
The report concludes that when averaging over 3 or more RSSI values, it’s possible to minimise the RF variance and reliably detect the variance caused by human movement in the room.
The problem with using RSSI for detecting location is that raw data contains lots of noise. Also, this noise becomes more prevalent in the viewed data when location samples are taken less often. There’s a useful new article at InfoQ on Processing Streaming Human Trajectories with WSO2 CEP.
The idea uses Kalman filtering to smooth noisy human trajectories.
Before and after filtering
This method is particularly useful for large realtime IoT rollouts because it uses a very small memory resource, is very fast and the calculation is recursive, so new values can be processed as they arrive.
We recently had a question as to what kinds of thing can block Bluetooth signals and the relative properties of say windows vs walls. Apple has done a great job of listing some types of barriers and their relative interference potential. In the above case, glass is less of a problem than bricks, plaster and concrete.
One thing Apple don’t mention is water. Bluetooth is severely disrupted by water. As humans are mainly made up of water, people moving about a room can cause the received signal strength (RSSI) to fluctuate.
It’s not just barriers that can be a problem. The Apple article also covers interference from other wireless devices.