Dataset used for "A Machine Learning Approach for Wi-Fi RTT Ranging" paper (ION ITM 2019). The dataset includes almost 30,000 Wi-Fi RTT (FTM) raw channel measurements from real-life client and access points, from an office environment. This data can be used for Time of Arrival (ToA), ranging, positioning, navigation and other types of research in Wi-Fi indoor location. The zip file includes a README file, a CSV file with the dataset and several Matlab functions to help the user plot the data and demonstrate how to estimate the range.

Instructions: 

    

Copyright (C) 2018 Intel Corporation

SPDX-License-Identifier: BSD-3-Clause

 

#########################

Welcome to the Intel WiFi RTT (FTM) 40MHz dataset.

 

The paper and the dataset can be downloaded from:

https://www.researchgate.net/publication/329887019_A_Machine_Learning_Ap...

 

To cite the dataset and code, or for further details, please use:

Nir Dvorecki, Ofer Bar-Shalom, Leor Banin, and Yuval Amizur, "A Machine Learning Approach for Wi-Fi RTT Ranging," ION Technical Meeting ITM/PTTI 2019

 

For questions/comments contact: 

nir.dvorecki@intel.com,

ofer.bar-shalom@intel.com

leor.banin@intel.com

yuval.amizur@intel.com

 

The zip file contains the following files:

1) This README.txt file.

2) LICENSE.txt file.

3) RTT_data.csv - the dataset of FTM transactions

4) Helper Matlab files:

O mainFtmDatasetExample.m - main function to run in order to execute the Matlab example.

O PlotFTMchannel.m - plots the channels of a single FTM transaction.

O PlotFTMpositions.m - plots user and Access Point (AP) positions.

O ReadFtmMeasFile.m - reads the RTT_data.csv file to numeric Matlab matrix.

O SimpleFTMrangeEstimation.m - execute a simple range estimation on the entire dataset.

O Office1_40MHz_VenueFile.mat - contains a map of the office from which the dataset was gathered.

 

#########################

Running the Matlab example:

 

In order to run the Matlab simulation, extract the contents of the zip file and call the mainFtmDatasetExample() function from Matlab.

 

#########################

Contents of the dataset:

 

The RTT_data.csv file contains a header row, followed by 29581 rows of FTM transactions.

The first column of the header row includes an extra "%" in the begining, so that the entire csv file can be easily loaded to Matlab using the command: load('RTT_data.csv')

Indexing the csv columns from 1 (leftmost column) to 467 (rightmost column):

O column 1 - Timestamp of each measurement (sec)

O columns 2 to 4 - Ground truth (GT) position of the client at the time the measurement was taken (meters, in local frame)

O column 5 - Range, as estimated by the devices in real time (meters)

O columns 6 to 8 - Access Point (AP) position (meters, in local frame)

O column 9 - AP index/number, according the convention of the ION ITM 2019 paper

O column 10 - Ground truth range between the AP and client (meters)

O column 11 - Time of Departure (ToD) factor in meters, such that: TrueRange = (ToA_client + ToA_AP)*3e8/2 + ToD_factor (eq. 7 in the ION ITM paper, with "ToA" being tau_0 and the "ToD_factor" lumps up both nu initiator and nu responder)

O columns 12 to 467 - Complex channel estimates. Each channel contains 114 complex numbers denoting the frequency response of the channel at each WiFi tone:

O columns 12 to 125  - Complex channel estimates for first antenna from the client device

O columns 126 to 239 - Complex channel estimates for second antenna from the client device

O columns 240 to 353 - Complex channel estimates for first antenna from the AP device

O columns 354 to 467 - Complex channel estimates for second antenna from the AP device

The tone frequencies are given by: 312.5E3*[-58:-2, 2:58] Hz (e.g. column 12 of the csv contains the channel response at frequency fc-18.125MHz, where fc is the carrier wave frequency).

Note that the 3 tones around the baseband DC (i.e. around the frequency of the carrier wave), as well as the guard tones, are not included.

 

Categories:
1571 Views

WiFi measurements dataset for WiFi fingerprint indoor localization compiled on the first and ground floors of the Escuela Técnica Superior de Ingeniería Informática, in Seville, Spain. The facility has 24.000 m² approximately, although only accessible areas were compiled.

Instructions: 

The training dataset consists of 7175 fingerprints collected from 489 different locations. Each fingerprint is stored as a JSON object corresponding to an unique scan with the following values:

  • _id: contains an unique identifier for the fingerprint, uses to differentiate one fingerprint from another.

  • avgMagneticMagnitude: average magnetic magnitude during scanning with the mobile phone sensor, although this value is not used is provided in case it was useful.

  • location: object with the coordinates of the real world in which the sample was captured.

    • floor: number indicating the floor in which the sample was captured.

    • lat: latitude as part of the coordinate at which the sample was captured.

    • lon: longitude as part of the coordinate at which the sample was captured.

  • timestamp: UNIX timestamp in which the sample was captured.

  • userId: identifier of the user who captured the sample, this value will be anonymized so that it is not directly identifiable but remains unique.

  • wifiDevices: list of APs appearing in the sample.

    • bssid: unique AP identifier, this value will be anonymized so that it is not directly identifiable but remains unique.

    • frequency: AP WiFi frequency.

    • level: AP WiFi signal strength (RSSI).

    • ssid: AP name, this value will be anonymized so that it is not directly identifiable but can be used to compare APs with the same name.

The training dataset was compiled by taking samples at every 3 meters on average with 15 samples per location. The time at each location was approximately 40 seconds performing consecutive scans with a bq Aquaris E5 4G device using Android stock 6.0.1 without making any movements during the process. The following is an example of a fingerprint, the list of WiFi devices has been shortened to two APs, as it was too long.

{
"_id":"5cc81e8ac28d6d2533709425",
"avgMagneticMagnitude":40.615368,
"location":{
"floor":1,
"lat": 37.357746,
"lon": -5.9878354
},
"timestamp":1556618890,
"userId":"USER-0",
"wifiDevices":[
{
"bssid":"AP-BSSID-0",
"frequency":2457,
"level":-75,
"ssid":"AP-SSID-0"
},
...
{
"bssid":"AP-BSSID-23",
"frequency":2437,
"level":-64,
"ssid":"AP-SSID-6"
}
]
}

The testing dataset consists of two tests with a total of 390 samples in random locations yet in areas captured by the training dataset and with different devices. This dataset is grouped by tests and within it are the captured samples, so both the individual error and the average error can be obtained, besides recalculating this error to test different algorithms. Each test is stored as a JSON object corresponding to an unique scan with the following values:

  • _id: contains an unique identifier for the test, uses to differentiate one test from another.

  • userId: identifier of the user who performed the test, this value will be anonymized so that it is not directly identifiable but remains unique.

  • startTimestamp: UNIX timestamp that indicates when the test was started.

  • endTimestamp: UNIX timestamp that indicates when the test was ended.

  • samples: list of samples taken during testing.

    • timestamp: UNIX timestamp that indicates when the sample was collected.

    • real: object with the coordinates of the real world in which the sample was captured.

      • floor: number indicating the floor in which the sample was captured.

      • lat: latitude as part of the coordinate at which the sample was captured.

      • lon: longitude as part of the coordinate at which the sample was captured.

    • predicted: object with the predicted coordinates of the real world.

      • floor: number indicating the floor predicted.

      • lat: latitude as part of the predicted coordinate.

      • lon: longitude as part of the predicted coordinate.

    • wifiDevices: list of APs appearing in the sample.

      • bssid: unique AP identifier, this value will be anonymized so that it is not directly identifiable but remains unique.

      • frequency: AP WiFi frequency.

      • level: AP WiFi signal strength (RSSI).

      • ssid: AP name, this value will be anonymized so that it is not directly identifiable but can be used to compare APs with the same name.

    • error: approximate distance between the actual location and the predicted location.

  • error: average distance between the actual locations and the predicted locations.

The testing dataset was compiled two days after the training phase by taking samples at random locations with an average of 3 meters, performing a single scan per location. The samples were taken with two devices, which represent each of the tests individually, a bq Aquaris E5 4G device using Android stock 6.0.1 and a Xiaomi Redmi 4X using Android 7.1.2 with MIUI 10 Global 9.5.16. Before taking the sample, 5 seconds were waited without making any movements. The following is an example of a test entry, the list of samples has been shortened to one sample and wifi devices has been shortened to two APs, as it was too long.

{
"_id":"5d13245e279a550b548e3bfe",
"userId":"USER-0",
"startTimestamp": 1557212799.6555429,
"endTimestamp": 1557222705.0710876,
"samples":[
{
"timestamp":1557212799.6552203,
"real":{
"floor":0,
"lat":37.358547,
"lon":-5.9867215
},
"predicted":{
"floor":0,
"lat":37.358547,
"lon":-5.9868493
},
"wifiDevices":[
{
"bssid":"AP-BSSID-156",
"frequency":2412,
"level":-80,
"ssid":"AP-SSID-5"
},
...
{
"bssid":"AP-BSSID-146",
"frequency":2462,
"level":-36,
"ssid":"AP-SSID-6"
}
],
"error":5.233510868645419
},
...
],
"error":3.975672826048607
}

In order to provide more information about the device used in each fingerprint of the dataset, the following relationship between users and devices is given:

USER-0: Xiaomi Redmi 4X (Android 7.1.2 with MIUI 10 Global 9.5.16)

USER-1: BQ Aquaris E5 4G (Android stock 6.0.1)

Categories:
1093 Views

RSSI-Dataset

The RSSI-Dataset provides a comprehensive set of Received Signal Strength Indication (RSSI) readings from within two indoor office buildings. Four wireless technologies were used:

  • Zigbee (IEEE 802.15.4),
  • WiFi (IEEE 802. 11),
  • Bluetooth Low Energy (BLE) and
  • Long Range Area-Wide Network (LoRaWAN).

For experimentation Arduinos Raspberry Pi, XBees, Gimbal beacons Series 10 and Dragino LoRa Shield were also used.  

Categories:
1259 Views