Experiment Background
On 4th March 2020, multiple different drones were flown in Dix Park, Raleigh, North Carolina and the trajectories of the drones were tracked using four Keysight RF sensors N6854. In particular, the RF sensors first detect the drone by passively monitoring the signals that are radiated by the drone. If a particular drone is recognized by the RF sensor, a localization algorithm is initiated. The field data is then compared with the GPS data to check the efficiency of the RF sensors.
The RF sensors use the Time Difference of Arrival (TDOA) technique to estimate the location of the drone in the air. Using Sensor Management Tool (SMT), a user can select several parameters for calculating the location, including:
Which sensors should participate in the location estimation;
Which measurements and how many measurements are useful (few redundant measurements can be deleted manually);
Which algorithm should be used for estimation (RSS, TDOA. Hybrid).
One can see the time plot, spectra, correlation, etc in SMT itself. Depending upon that suitable measurements can be used for post-processing.
GPS data can be collected using any application on personal devices like PC, Android, or iOS. The data collected for this report contains 10 samples in a second i.e. the sampling time is 100 milliseconds.
Data Post-Processing
The CSV files containing all the latitude and longitude data are read in MATLAB and converted into cartesian coordinates to plot a figure comparing field and GPS data.
1. Mavic Pro
The measurements from 780 - 1371 are the data for this drone. These data are compared with the GPS_ICnew.csv. It can be observed from the below figure that the estimated locations are quite aligned to the GPS data except for a few points. In this case, since GPS data doesn’t have timestamp information, timestamp comparison between the GPS and field data was not possible. So, I have considered one sample per second. Few data were filtered out where the errors between GPS and estimated location were found to be greater than 100m.
The CDF for the above plot is:
For this plot, 50% of errors are less than 10meters.
2. Inspiron
The measurements 1379 - 1857 are the field data collected for Inspiron drone. These data were compared with GPS_Flight1.csv file. Since timestamp data was available for the GPS data here, I have considered only those timestamp data from GPS which are available in the field data. Few estimated locations from field data were filtered out if the error between GPS and field data more than 100m.
The below two plots shows the error patterns with respect to time. The first plot is for the data where the error is less than 100m and the second one is for the data where the error is more than 100m.
The CDF curve below gives more intuitions about the errors:
Since 90% of errors are below 20meters, we can say RF sensors are quite reliable for locating a drone in the air.
3. Unknown
The rest of the data couldn’t be separated and aligned with any field data. We drove a rover with a drone on top of it and collected some measurements. Since exact GPS data is not available for those data, a comparison was not possible.
RF sensors can not extract the altitude of the drone.
Location estimation works well when three sensors are used. For this experiment, two of the sensors among the four were placed closer than others.
Sensors catch some nearby RF signals as well, for example in our experiment it picked up signals from the controller of the drone, few nearby wifi signals.
Post-Processing
Field data processing (Link for the MATLAB code). Here, the details of the MATLAB code are discussed. The explanation can be considered as an example. The code can be modified according to the requirement as well as depending on the application.
1. Selecting Data from the exported file and GPS file
To run the MATLAB program two files are required - 1) the exported file from SMT and 2) the corresponding GPS file. The link of the folder containing all the MATLAB codes is mentioned above by the “Field data processing” name. We have considered a few columns from the exported file as well as the GPS file - Latitude, Longitude, and timestamp are the most important information. The algorithm of the code will be explained later.
2. Pseudo Algorithm
Define sensor Latitude and Longitude from Google Earth
Convert them into cartesian coordinate using lla2ecef2d function
Load the file exported from SMT
Choose only required columns
Delete the rows where Latitude/Longitude is zero
Convert all the Latitude and Longitude into cartesian coordinate
For all the values
Convert the time format into HH:MM:SS
Save the X and Y coordinates in a matrix
Load the corresponding GPS file
Repeat step 5,6 and 7 for GPS data
Adjust the time difference between two files
Save the X and Y coordinates into a matrix
For all time values in the exported file
If the time in the exported file matches the time in the GPS file
Store those row numbers
Store those time values
Extract only those XY values in a matrix
Find the XY values for which the error between the field and GPS data is greater than a threshold and store those in a different matrix.
Plot the values in XY coordinate where the error is less than the threshold value
3. Result and Observations
For the Dix park experiment, the result is quite acceptable. The CDF curve says that 90% of errors are less than 20m for Inspiron drone. For further results, one can refer to the other document.