3.1) Wireless and Vehicle Software
Overview
The figure above shows a general structure of radio and vehicle software directly under the control of the experimenter in AERPAW. All the experimenter software in AERPAW is contained in the experimenter VM (E-VM). In its most general form, in the current sample applications, there are three components to the the experimenter software (any of these three components may be missing). The processes can be completely decoupled, partially integrated or completely integrated.
Traffic Generator
The traffic generator is used to test end-to-end performance of the radio system. Trivial examples of the traffic generator are iperf and ping. More complex examples may include a video streaming application, a web server, or other types of traffic generators. In some cases (e.g., for channel sounding), the traffic generator may be missing (effectively the generation and termination are then handled by the radio software).
Radio Software
The radio software typically modulates and demodulates data from the traffic generator and sends and receives through and from the radio module. If the radio module is a software defined radio (SDR), the radio software is likely open source (e.g., srsLTE, GNU Radio, OAI, etc.), and under the direct control of the experimenter (through modifying the source code, settings, scripts, etc.) If the radio is a conventional radio (e.g., LoRa, a cellular modem, WiFi card, etc.), the radio software component is essentially missing.
Vehicle Control Application
The vehicle control application can directly control the vehicle if the E-VM runs on a portable node with a vehicle that is controllable (e.g., a drone or a rover), or can just monitor the movements of the vehicle (if the vehicle is being controlled by other entities, e.g., a Wolflink shuttle, or a helikite), or can be completely missing if the E-VM runs on a fixed node or on a cloud node.
Other
It is possible that, in the future, for some experiments, other sensing and acting processes can be added to the experiment (e.g., images from a video camera). In that case, additional processes will be added to the three mentioned above (either by adding an entirely separate process, adding a different thread of an existing process, or completely integrating the functionality).
Collecting and Processing Experiment Data
Data Collection
Each of the three types of experimental software have the potential to generate data interesting to an experimenter. For example, the vehicle control application can generate a trace of locations of the vehicle, as well as orientation, battery levels, and other vehicle related variable. The traffic generator can generate information like, for example one-way, or round-trip delay (e.g., ping), throughput (e.g., iperf), as well as packet error rates (both ping and iperf). Finally, the radio software can generate physical layer information for example, received signal strength, signal to noise ratio, error vector magnitude, etc. In the figure above, each of the processes is shown to produce a log which stores locally (in the E-VM) the quantities of interest to the researcher.
The three different types of software running in the E-VM can be run as three separate processes (assuming all three are present), or can be partially or completely integrated. If the processes are running completely or semi-independently of each other, there has to be a way to correlate the separate logs. We suggest using time-stamps for each log entry. A post-processor can then be used to integrate the data in different logs after the experiment completes. The data can then be analyzed using any standard research tools (e.g., Matlab, etc.). AERPAW sample applications make extensive use of the unix tool screen. For the convenience of AERPAW Experimenters, we provide a short introduction in using the screen tool.
Alternatively, the processes that are shown as discrete processes in the figure above can be integrated (all three or only two of them). For example, the vehicle control application can be modified to call iperf for a short measurement session or cell_search to scan a frequency band for availability of commercial base stations. In this case, an integrated log can be produced by the integrated application, and the use of timestamps is not necessary.
Timestamping
We found that an easy and convenient way to timestamp data logs is to use the utility ts commonly available in the package moreutils in many Linux distributions (including Ubuntu, which is used in AERPAW). The default way to use it in the sample applications provided by AERPAW is :
$ <data_generating_script.sh> | ts '[%Y-%m-%d %H:%M:%.S]' | tee logname-`date +%F-%T`.csv
where the ts format is used for ease of post-processing, the tee is used to allow both for logging into a file and visual check (especially useful for development), and the `date` is used to avoid overwriting the data in the log files.
Data Post-processing
For the convenience of the AERPAW Experimeters, we provide a data post-processing workflow.