Improving iBeacon Location Accuracy

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.

The College of Surveying and GeoInformatics, Tongji University, Shanghai , China has new research on iBeacon-based method by integrating a trilateration algorithm with a specific fingerprinting method to resist RSS fluctuations.

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.

Read about Determining Location Using Bluetooth Beacons

Read about Using Beacons, iBeacons for Real-time Locating Systems (RTLS)

Remote Team Management Using iOS as an iBeacon

S Sindhumol of Cochin University of Science and Technology, Kochi, India presents recent research into Implementation and Analysis of a Smart Team Management System using iOS Devices as iBeacon (pdf).

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.

iBeacon Team Management Screens

The paper contains some useful analysis of accuracy of distance measurement on distance, interference, measured power and obstructions:

Effect of iBeacon distance accuracy with obstructions
Effect of iBeacon distance accuracy with presence of another iBeacon
Effect of measured power variation on proximity and accuracy
Effect of obstructing objects on RSSI and Accuracy

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.

England’s Contact Tracing App Now Trying the Apple/Google API

After wasting a lot of money and more importantly time, England has abandoned using the public mobile OS Bluetooth APIs and is now using Apple/Google’s new contact tracing APIs. However, all has not been wasted because the home grown solution included advanced processing of Bluetooth RSSI values that provided for more precise measuring of close contacts.

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.

Variation of RSSI in devices and due to the environment

We have previously mentioned the use of Kalman filtering to improve the processing of RSSI. A newer research paper by The Alan Turing Institute of University of Oxford Inferring proximity from Bluetooth Low Energy RSSI with Unscented Kalman Smoothers describes the processing of RSSI to infer close contacts. The BBC believes this is what was used in the older NHS app.

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.

Bluetooth Positioning Using Separate Bluetooth Channels

While we wait for commercial Bluetooth 5.1 direction finding solutions to become available, people are trying to refine traditional locating methods to gain more accuracy. Baichuan Huang, Jingbin Liu, Wei Sun and Fan Yang have a research paper on A Robust Indoor Positioning Method based on Bluetooth Low Energy with Separate Channel Information.

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.

Read about Determining Location Using Bluetooth Beacons

Obtaining Distance from RSSI

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.

There’s some Android Java code on GitHub if you want to experiment with extracting distance from RSSI. There’s an equation for iOS on GitHub.

Need more help? Consider a Feasibility Study.

Beacons that flash/vibrate at a given distance.

Research Paper on Using Bluetooth for Indoor Locating

There’s a paper by Mariusz Kaczmarek, Jacek Ruminski and Adam Bujnowski of Gdansk University of Technology on the Accuracy analysis of the RSSI BLE SensorTag signal for indoor localization purposes (pdf).

They studied the radio signal from multiple Texas Instruments SensorTag CC2650 devices in order to determine if it could be used to determine location.

They concluded:

“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.”

They suggest:

…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.

Improving on Beacon Immediate, Near and Far

We recently highlighted an article on Beacon Trajectory Smoothing. Faheem Zafari, Ioannis Papapanagiotou, Michael Devetsikiotis and Thomas Hacker have a new paper on An iBeacon based Proximity and Indoor Localization System (pdf) that also uses filtering.

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.

Using Beacons To Detect Human Movement

There’s an innovative use of beacons mentioned in the research paper on Developing a Human Motion Detector using Bluetooth. Beacons and its Applications (PDF download).

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.

Beacon Trajectory Smoothing

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.

What Can Block Beacon Signals?

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.