This section contains additional documentation only necessary for system development. The information provided here will showcase development software and detailed system descriptions that can be used for troubleshooting and system modifications.
Setting Up Atom
While Atom is not required to run any of the programs on this project, it does provide a useful interface for editing code. If you intent to modify any of the code on the UDOO, it is highly suggested that you use Atom as your interface for editing code. Atom is free and open sourced. The video below provides step by step instructions for downloading the software and setting up an environment geared towards python coding.
Radio Telemetry Documentation
The complete UAV-RT system includes a detailed relationship of connections between the UAV flight controller, the UDOO companion computer, and the Ground Control Station (GCS). This sections hopes to shine some light on the interaction of the systems and provide insight into the custom Python scripts developed on the UDOO. This section is not necessary for using the system and is meant to assist in the development and future improvements of the UAV-RT system. The diagram below shows a summary of the UAV-RT system, including each subsystem. Highlighted are the connection for data, power, and control signals within the system. While this documentation will touch on the the GCS system and the UAV flight controller, the focus is the radio telemetry subsystem. Users should reference the corresponding documentation for information pertaining to the other subsystems.
UAV-RT File Structure
While specific initial software configuration is required for UDOO, the main code is housed in the UAV-RT folder. This folder is responsible for establishing a UDP connection, starting/stopping GNU Radio, recording radio data, and housing the GNU radio script. While the contents of the code are broken down and described below, a summary of the folders file structure is provided here. This folder contains the following sub-folders/files:
CURRENT_DATA: This folder remains empty unless a GNU Radio script has been started. This folder is used to temporarily house data while GNU Radio is running (often during a flight). When the user starts GNU Radio, the script begins storing SDR and telemetry data to this folder. In addition, when GNU Radio is started, a copy of the curr_config file and terminal output is temporarily stored here. Once GNU Radio is stopped this folder is cleared and the data is moved to FLIGHT_DATA.
FLIGHT_DATA: This folder houses all the flight and radio data recorded. Each flight where GNU Radio was started and stopped has a time stamped sub-folder. The sub-folders are titled in following format for each flight: UAV-RT -yyyy-mm-dd-THH_MM-SS. Within each folder are 4 files: config.uavrt (a copy of the current config file for that flight), log.txt (copy of the terminal output), SDR.dat (binary radio data recorded), and telem.flt (telemetry data recorded).
GNU_RADIO: This folder contains 3 files related to the operation of GNU Radio. It contains a grc file (GNU Radio companion file), top_block.py (the main GNU Radio script that is modified with the latest configuration file each time before being started), and a back-up of the main script.
UDP: Folder contains multiple custom Python scripts for initializing a UDP connection, controlling GNU Radio, reading the local configuration file, and saving data. Reference UDP documentation for complete description.
curr_config: This configuration file is modified before each flight. This file contains information for the configuration of GNU radio and allows the user to change multiple variables like the beacon frequency, rate of sampling, and gain settings. The MATLAB GUI creates a new configuration file every-time the user starts GNU Radio making sure to incorporate the latest user specified settings from the GCS.
This folder contains three scripts related to the operation of GNU Radio. The main script in this file is titled "top_block.py". This is a top level python script that GNU Radio automatically generates when using GNU Radio Companion (GRC). By running this script, the user is able to run a GNU Radio flowgraph through Python. Also within this folder is the GRC file that these scripts were generated. While modifications have been made (see modifications) this script is the original GRC file used to generate the Python top_block file. Lastly, there is a "top_block.py.bak" file. The contents of this file will be described under operation.
While GNU Radio automatically generates these scripts, a few modifications have been made (the 5 lines that were modified within the code have been marked with a comment "#MODIFIED"). These modifications were made to to automatically detect the file path. By using the python os package code was developed so that the script could automatically detect what folder it was currently in. This modification allows...
The documents below provide information related to software defined radios and collecting radio data using GNU Radio Companion. While detailed filters are described here, make sure to reference signal processing for information regarding the system implemented on-board the UAV-RT.
I/Q Data Guide: Guide for acquiring I/Q data with the GNU radio framework
Matched Filter: Documentation for explaining UAVRT-SDR's current matched filter
SNR Calculation: Documentation for explaining UAVRT-SDR's current SNR calculation