Many recent works have explored using WiFi-based sensing to improve SLAM, robot manipulation or exploration. Moreover, widespread availability makes WiFi the most advantageous RF signal to leverage. But WiFi sensors lack an accurate, tractable, and versatile toolbox, which hinders their widespread adoption with robot’s sensor stacks. We develop WiROS to address this immediate need, furnishing many WiFi-related measurements as easy-to-consume ROS topics. Specifically, WiROS is a plug-and-play WiFi sensing toolbox providing access to coarse-grained WiFi signal strength (RSSI), fine-grained WiFi channel state information (CSI), and other MAC-layer information (device address, packet id’s or frequency-channel information). Additionally, WiROS open-sources state-of-art algorithms to calibrate and process WiFi measurements to furnish accurate bearing information for received WiFi signals.
High Level Idea
WiROS makes three concrete contributions, in order to deliver an accurate, versatile and tractable WiFi-sensor framework for ROS. First, it provides a C++ framework to integrate WiFi-sensor specific API’s into ROS. We accomplish this for Nexmon API, however, newer platforms can be similarly integrated with little additional effort. Second, we provide a wireless calibration algorithm and toolkit to measure and calibrate for hardware non-idealities for WiFi sensors. The lastly, we open-source state-of-art algorithms to extract physical parameters like angles of arrival or departure of the WiFi signals.
WiROS Process Block Diagram
The following figure showcases the two main blocks - CSI Node and Feature-extraction Node to extract raw WiFi measurements and to calibrate and process these measurements. The blue text indicates the control plane parameters, whereas the red text indicates the exposed measurements. WiROS extends the functionality of the underlying black box CSI Extraction Toolkit.