Skip to content

RF-Localization is a robust Wi-Fi analysis tool to accurately predict signal locations based on GPS and RSSI

License

Notifications You must be signed in to change notification settings

SilentisVox/RF-Localization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RF Localization

1 Introduction

Our approach to signal source localization uses a particle filter, which is relatively common for a source localization problem. Our specific particle filtering approach derives from Chapter 3 of [1] and uses a generalized likelihood function to account for parameters of RF source which are not known but are assumed to have bounded values.

The use of Unmanned Aerial Systems, UAS, as mobile sensors for RF source localization has been and continues to be explored [2, 3, 4, 5]. A literature review that we recommend may be found in [6]. The work that we present differs from existing methods in three significant ways: 1) We do not rely on directional antennas or known RF parameters; 2) We localize multiple RF sources using real hardware; 3) We use only a Raspberry Pi Zero 2W for sensing.

2 Platform and Sensing

We assume the use of a multirotor platform carrying a sensor capable of obtaining received signal strength indicator (RSSI) measurements. The position of the multirotor is known and accessible. The algorithm uses only RSSI measurements and their associated locations. The RSSI sensor has been the onboard Wi-Fi of a Raspberry Pi Zero 2W (Pi 2). While this is not an optimal sensor, it demonstrates that specialized hardware is not required.

2.1 Obtaining RSSI Measurements with the Pi Zero 2w

The Pi2 is a low-cost and low-swap single-board computer capable of running a Linux operating system. The Pi2s that we use run a 64-bit headless version of a Raspberry Pi OS.

We use the Linux IW command-line utility to obtain RSSI measurements using the default Wi-Fi interface WLAN0. The command in 2.1 will produce a list of available Wi-Fi networks, their SSID, their BSSID, and signal strength in dBm. Example output is shown in Appendix A.

  $ sudo iw dev wlan0 scan

Upon completing a scan, the RSSI, SSID, and BSSID are collected and written to a file with the latitude, longitude, and altitude of the multirotor platform. We also record the number of GPS satellites to facilitate filtering any measurements with four-position estimates. An example of data recorded in this manner is given in Appendix B. Data is formatted as described in the table below.

Column 1 2 3 4 5 6 7
Content SSID RSSI BSSID latitude (°) longitude (°) altitude (m AGL) GPS satellites

Table 1: Description of data

Note, the Pi 2 onboard Wi-Fi only support 2.4 GHz bands. As a result, active scanning uses IW is faster on the Pi 2 than it would be with other devices that also scan 5 GHz bands. As implemented, our Pi 2 is able to scan at a rate faster than 1 Hz. To date, we have not attempted running localization online on the Pi 2. Localization has been accomplished in post-processing by polling the data file generated by the Pi 2. We also know that passive scanning may be accomplished using devices that support promiscuous mode. We have not explored that option.

3 Localization

Our specific particle filtering approach derives from chapter [3] of [1]. Specifically the RSSI measurement in dB is assumed to be represented by the model


Z_m = A_0 - 10 φ_m log₁₀(d_m/d_0) + v_m

where is the received power (in decibels) at a short reference distance from the source, is the propagation loss from the source to the sensor, is the Euclidean distance from the source to the sensor (in meters), and is zero-mean Gaussian white noise with known standard deviation .

Ideally, the propagation loss in free space is 2. However, will be distinct at different locations due to multipath and shadowing. In some applications, it is desirable to learn as a function of sensor and source location. We won't be able to do that, so we just need to deal with the uncertainty. In practice, is between 2 and 4. We do not have access to the reference power of the source that we're localizing. We assume that .

Our approach to localization (described in Chapter 3 of [1]) is to use a particle filter. Each particle in our filter represents a hypothesis of the radio parameters and a position that gives a distance when compared to the location where a measurement is taken, . Using the generalized likelihood function in [1], we evaluate the likelihood of each hypothesis for each new measurement. The least likely hypotheses are discarded and replaced with new hypotheses. Over time, hypotheses that are not supported by the data are culled, and the surviving hypotheses (particles) give a probability distribution over the possible position of the true RF source.

4 Experiments

Experiments were performed by placing wifi routers at known locations and having a survey device pass by in an ad-hoc search pattern. The data obtained during the flight were pulled from the survey device and the particle filter localization algorithm was run on a separate laptop computer for each wfif network recorded in the data. Results from a single survey performed at an undisclosed location.

Figure 1 shows the search pattern that surveyed. Visualization is accomplished using the python folium package.

Figure 1
Figure 1

About

RF-Localization is a robust Wi-Fi analysis tool to accurately predict signal locations based on GPS and RSSI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages