Chimera UAS flight throughput trace generation tool and synthetic traces used in testing Chimera.
If you use, please cite our 2021 ICNP paper:
R. Shirey, S. Rao, and S. Sundaram, “Chimera: exploiting UAS flight path information to optimize heterogeneous data transmission,” in 2021 IEEE 29th International Conference on Network Protocols (ICNP). IEEE, 2021.
The flight throughput trace generation tool is a Python script, tested with Python 3.7, and uses the following required libraries: scipy, numpy.
We include both a tool to generate traces and also include traces that are used in Chimera's evaluation.
The traces used in Chimera are stored in the "traces" folder and labeled "trace" numbered 1 to 50. For Chimera, we tested with these traces in forward and reverse direction, making 100 synthetic trace tests total. These traces were generated using the UAS Throughput Generation Tool, described below, with the flight path in the "chimera_distances" file.
The traces are formatted as a time-series throughput (Mbps), where each line represents the average throughput (Mbps) during a particular second. The flight path is based on a corresponding set of distances representing miles from the Ground Control Station (GCS). Similarly to the format of the throughput traces, each line of the distance file corresponds to the average distance of the UAS to the GCS (Miles) during a particular second. The combination of these two files relates the average throughput (Mbps) to average distance (Miles) for any second during the flight.
Traces generated by this tool are modeled after the FL traces presented in our paper, "Chimera: exploiting UAS flight path information to optimize heterogeneous data transmission."
The Python script chimeraTraceGenerator.py is used for trace generation and follows the process described in the Chimera paper: the throughput estimates are generated using the throughput model, based on the previous throughput sample and current distance (with different coefficients based on orientation). Then the error is added from the Cauchy distribution to randomly generate samples. The error distribution is based on distance bins (2 mile ranges up to 8 miles) and orientation, making 8 bins total. All of the error model and regression parameters have been derived from the FL traces, detailed in our paper.
This script requires only a flight path file (labeled "chimera_distances"), which includes the second-by-second distance of the UAS to the GCS on each separate line (as previously stated, this is the average distance over each second of the flight). In this manner, users of the script can generate different flight paths. The flight path is meant to follow the same types of patterns described in Chimera (racetrack / loop patterns that traverse two orientations of going away from the GCS and then coming back towards the GCS). The flight path is meant to start at the GCS and then traverse the appropriate pattern. However, the distance file can be edited. If different types of flight paths are to be utilized, then the throughput and error models may require changes.
Once the script is run, it will generate a certain number of traces (the number is the variable traceCount, which is set to 10 initially). The traces generated will be the second-by-second average throughput (Mbps) for the flight, labeled "trace" followed by the trace number.
For any questions, please contact Russell Shirey ([email protected]), Sanjay Rao ([email protected]), and/or Shreyas Sundaram ([email protected]).