After revising our requirements, we decided that in addition to the received signal strength, we also needed to collect information on the link quality in order to better characterize the connection between two devices. Link quality is an important measure that indicates whether or not a message sent between devices will actually arrive at its destination intact. In an open environment with only two devices, it may be sufficient to only use the signal strength as an indicator for link reliability, but when there are more devices and sources of interference, the received signal strength may be high, but the ratio between the received signal and the noise floor is lower. With this change, we re-evaluated our options for wireless communication.
Ideally the link quality would be derived using Bluetooth since we had already written ROS packages to send messages and record RSSI. However, although the Bluetooth protocol provides a link quality indicator, it did not meet our needs.
Setup:
To test this, a Bluetooth link was set up between two devices—one acting as the receiver and one acting as the transmitter. Since most Bluetooth modules calculate the received link quality by the bit error rate of each received packet [1], I configured the transmitter to send a packet of data at 10Hz to the receiver. On the receiver computer the calculated link quality is monitored with the Host Controller Interface using the command watch -n 0.1 hcitool lq <BD_ADDR>
where
Results: With the transmitting computer in one corner of the lab, I moved the receiving computer around the lab and as far away from the transmitting device as possible. The link quality indicator did not drop from its maximum of 255 at all during this time. Moving the receiving computer outside the lab and up the stairs resulted in the link quality indicator falling from 255 (max) to 69. However once the receiving computer was moved back into the lab and placed next to the transmitting computer, the link quality indicator did not rise back up to 255 as was expected. Repeating (2) sometimes results in the link quality indicator occasionally rising again when the lab to around 100 after ~20 seconds.
Conclusion:
Overall the results were very inconsistent and unsuitable for our needs (one update every 0.1 seconds). Furthermore, a study on the use of Bluetooth Signal Parameters found that the link quality indicator reported by the Bluetooth device did not always correlate with the bit error rate with the resolution decreasing with higher bit error rates [1].
[1] A. K. M. M. Hossain and W. Soh, "A Comprehensive Study of Bluetooth Signal Parameters for Localization," 2007 IEEE 18th International Symposium on Personal, Indoor and Mobile Radio Communications, Athens, 2007, pp. 1-5. doi: 10.1109/PIMRC.2007.4394215 keywords: {Bluetooth;radio links;Bluetooth signal parameters;signal strength;link quality;received-transmit power level;location systems;Bluetooth;Bit error rate;Signal design;Land mobile radio;Mobile communication;Power engineering computing;Design engineering;Power engineering and energy;Ubiquitous computing;Wireless application protocol}, URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4394215&isnumber=4393983