Environment cross validation of NLOS machine learning classification/mitigation in low-cost UWB positioning systems

- Citation Author(s):
- Submitted by:
- Valentin Barral
- Last updated:
- DOI:
- 10.21227/rhhs-fw33
- Data Format:
- Research Article Link:
Abstract
Indoor positioning systems based on radio frequency systems such as UWB inherently present multipath related phenomena. This causes ranging systems such as UWB}to lose accuracy by detecting secondary propagation paths between two devices. If a positioning algorithm uses ranging measurements without considering these phenomena, it will make important errors in estimating the position. This work analyzes the performance obtained in a localization system when combining location algorithms with machine learning techniques for a previous classification and mitigation of the propagation effects. For this purpose, real cross scenarios are considered, where the data extracted from UWB low-cost devices for the training of the algorithms come from different environments than those considered for the real application and its analysis.
Instructions:
Please, if you use this dataset in your research activities, please add a reference to our related paper:
Barral, V.; Escudero, C.J.; García-Naya, J.A.; Suárez-Casal, P. Environmental Cross-Validation of NLOS Machine Learning Classification/Mitigation with Low-Cost UWB Positioning Systems. Sensors 2019, 19, 5438. https://doi.org/10.3390/s19245438
These are Matlab files.
The measurements were recorded in the scenario shown in the figure.
Three configurations where used:
- "h0_front" contains the measurements with the tag facing North at the same height than the anchors.Height = 1.28m.
- "h0_back.mat " includes the measurements with the tag facing South at the same height than the anchors. Height = 1.28m.
- "h1_front" includes the measurements with the tag facing North at a higher altitude than the anchors. Tag Height = 2.05m. Anchors Height = 1.28m.
How to use:
In Matlab:
h0_front = load('h0_front.mat');
h0_back = load('h0_back.mat');
h1_front = load('h1_front.mat');
where
"h0_front" contains the measurements with the tag facing North at the same height than the anchors.
"h0_back.mat " includes the measurements with the tag facing South at the same height than the anchors.
"h1_front" includes the measurements with the tag facing North at a higher altitude than the anchors.
The file contains 3 arrays:
- beacons (1x5 struct) Contains the coordinates of each of the 5 anchors.
- pos (1x9 struct) Contains the coordinates of the 9 measurement points.
- ranging (1x9 struct) Each row contains the measurements from one of the 9 positions of the array. The struct includes:
- range (Nx1) int64. The value outputted by the device. In cm.
- rxPower (Nx1) double. The received power strength. In dBm.
- timestamp (Nx1) double. Measurement timestamp. In unix time.
- angle (Nx1) double. Not used in this set.
- destinationId (Nx1) int64. The index of the anchor