===== Pressure Sensing Dataset and Hardware ===== For the paper: Heinrich, G. A., Vogt, S., Lawrance, N. R., Stastny, T. J., & Siegwart, R. Y. (2022). [[https://arc.aiaa.org/doi/10.2514/1.G006412|In-Wing Pressure Measurements for Airspeed and Airflow Angle Estimation and High Angle-of-Attack Flight]]. Journal of Guidance, Control, and Dynamics, ==== Introduction ==== This page provides the hardware designs (PCB and 3D print) and a dataset for in-wing differential pressure sensors for sensing pressure around the wings of an uncrewed aerial vehicle (UAV). The dataset consists of aerodynamic data recorded in both wind tunnel and flight tests on a small UAV (EasyGlider 4) performed at ETH Zurich. The dataset includes data from in-wing differential pressure sensors and aircraft navigation data (originally recorded using a Pixhawk autopilot with PX4 firmware saved into the ulog format). The intended purpose of the data is to provide a source for understanding the properties of the pressure sensors, for predicting other aerodynamic data (such as airspeed and angles of attack and sideslip), and for understanding the flight mechanics of deep stall and high angle-of-attack manouevres. The designs are also made available to others wishing to replicate or extend on this work. * It is highly recommended to read the corresponding paper first. * There are four data sets. The differences in processing are described further down. * There is a short python script provided to help understand the data format and create a simple data plot. * Processing with Matlab's h5read, h5write and h5disp functions is also feasible. * There are also freely-available inspection GUIs on the web to provide an overview of the files. (e.g. HDFView) ==== Hardware designs ==== Designs for the differential pressure sensing modules are provided. The PCB designs as well as CAD files are available in the download links below. * Differential pressure modules as step files (''dp_module_step_files.zip'') * PCB board layouts as KiCAD projects (''KiCad.zip'') ==== Data ==== There are two main data sets each in a separate directory: calibrated (''Cal_Data_Set'') and raw (''Raw_Data_Set''). Inside each of these, there are wind tunnel and flight data sets, each with a corresponding h5 file. The following processing has been performed for each data set: * **Raw Data Set Wind Tunnel:** * The native data from PX4 ulog files is converted and resampled to 40 Hz and synchronised to common timestamps. This is necessary since different values are logged with different rates at different timestamps. * A preliminary airspeed is computed using the differential pressure and the geometry. * The data from the PX4 ulog files and the collected data from the wind tunnel is synchronised. During this process, the mounting offset of the ATI Sensor and the Angle offset at the sting base is corrected. * Some of the strongest RPM outliers are removed. * **Raw Data Set Flight:** * The native data from PX4 ulog files is converted and resampled to 40 Hz and synchronised to common timestamps. This is necessary since different values are logged with different rates at different timestamps. * A preliminary airspeed is computed using the differential pressure and the geometry. * **Calibrated Data Set** (Same procedure for both wind tunnel and flight data): * The airspeed, the airflow angles and the current is calibrated in accordance to the procedure described in the paper. * Asp_True can be considered as most reliable since the calibration parameters have been derived on its values. == Field descriptions == Important fields in the dataset. Each hdf5 file contains data from multiple logs, with the top level group referring to the original ulog file that generated that data (''HH_MM_SS.ulg''). Then most fields have human-readable names. The are also additional aircraft data standard to the PX4 ulog format. ^ Field name ^ Unit ^ Description ^ | Time | [s] | Time stamp | airflow_aoa_0.aoa_rad | [rad] | Angle of attack value | | airflow_aoa_0.valid | [0/1] | Angle of attack valid | | airflow_slip_0.slip_rad | [rad] | Angle of sideslip value | | airflow_slip_0.valid | [0/1] | Angle of sideslip valid | | airspeed_0.true_airspeed_m_s | [m/s] | Airspeed | | airspeed_1.true_airspeed_m_s | [m/s] | Airspeed (sensor 1) | | sdp31module_0.dPX_Y | [Pa] | Differential pressure module X, sensor Y | | vehicle_attitude_0.q_X | [] | Attitude quaternion (X in {0,1,2,3}) | == Python script == To help with a basic data processing example, we have included a simple python script that reads an hdf5 file and plots a sample of data. To use the python script: Extract the data and navigate to data folder: cd /PATH/TO/ZIP_LOCATION 7z x Data_Deep_Stall.7z cd Data_Deep_Stall Install required packages and run: pip install -r requirements.txt python example_script.py Basic help on the script can be found with: python example_script.py -h If you unzip to a different location, use: python example_script.py -d /PATH/TO/Data_Deep_Stall The ''-a'' flag will also create an ''attributes.txt'' file in the current directory which recursively lists all attributes in the h5 file. python example_script.py -a ==== Download Links ==== [[http://robotics.ethz.ch/~asl-datasets/2021_deep_stall/Data_Deep_Stall.7z|Data_Deep_Stall.7z]] -- 3.0 GB -- Wind tunnel and flight data set [[http://robotics.ethz.ch/~asl-datasets/2021_deep_stall/dp_module_step_files.zip|dp_module_step_files.zip]] -- 6.6 MB -- Step files for differential pressure modules [[http://robotics.ethz.ch/~asl-datasets/2021_deep_stall/KiCad.zip|KiCad.zip]] -- 2.0 MB -- PCB layouts as KiCAD project files