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.
“Build a mobile app that can receive signals from iBeacon and calculate the distance between an iBeacon and itself with an error margin of 10 to 15 meters.”
This implies that the error is usually more than 10 to 15 meters and with extra processing only 10 to 15 meters accuracy can be achieved – this is misleading. The error depends on many factors including the type of beacon used, the capability of the receiving device, the distance of the beacon from the ground (and obstacles) and importantly the distance of the beacon from the receiving device.
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.
The medium article contains links to some useful Android Java code if you want to experiment with extracting distance from RSSI.
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.
With so many uses of beacons centred around notifications to users, it’s interesting to see Queen Mary University of London doing something different. Research by Kleomenis Katevas, Laurissa Tokarchuk, Hamed Haddadi and Richard G. Clegg of the Department of Computing of Imperial College looks into detecting group (crowd) formations using iBeacon (pdf).
They used beacon RSSI and phone motion together with algorithms based on graph theory to predict interactions inside the crowd. They verified their finding using using video footage as ground truth.
The paper has some particularly interesting observations from testing RSSI in an EMC screened anechoic chamber and also has some information on distance estimation models.
As previously mentioned, we have been doing some signal strength and stability tests across beacons. While the actual data feeds into our consultancy work, we have some high level observations that we can share here.
The following graph shows the standard deviation of the RSSI @ 1m, for our beacons and a few we don’t sell, measured over a 60 second time period:
Smaller bars are better and represent beacons
whose RSSI varied the least over time.
We found that beacons belonged to one or two groups. Firstly those with very stable RSSI and secondly those with an RSSI that had a standard deviation between about 4 and 6 dBm.
Signal stability is more important when you are using the RSSI to infer distance, either directly from the RSSI itself or indirectly via, for example, the iOS immediate, near and far indicators. RSSI varying without a change of distance might cause more spurious triggering. However, you should keep in mind that environmental factors can often cause variation much larger than the 4 to 6 dBm found in this test. Moving obstacles, for example people, will cause significant variation in RSSI.
We don’t yet know why beacons fall into these two groups. We couldn’t find any correlation between signal stability and manufacturer, antenna type, beacon size or processor chip manufacturer.
However, we found what might be some clues in the research paper An Analysis of the Accuracy of Bluetooth Low Energy for Indoor Positioning Applications by R. Faragher, University of Cambridge, UK; R. Harle, University of Cambridge, UK. The paper explains how Bluetooth LE advertising moves pseudorandomly between radio channels. The channels use different radio frequencies that, in turn, results in fading of the signal at different distances. Different radio frequencies experience constructive and destructive interference at different physical locations. Beacons that move more between channels can cause more rapidly varying received signal strength (RSSI).
We have been doing some signal strength and stability tests to help provide data for some consultancy.
Last week, we started stocking the extremely long range TON9118 so we thought we’d compare it against our other beacons and some other popular beacons in the market:
Smaller bars represent a stronger signal
The beacon certainly delivers what it promises. Incidentally, the next beacon along is the PC62 that also performed well in our signal strength tests and is also one of the best for signal stability (low changes in signal strength over time).