Pressure Sensing Dataset and Hardware

For the paper: Heinrich, G. A., Vogt, S., Lawrance, N. R., Stastny, T. J., & Siegwart, R. Y. (2022). 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]
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

Data_Deep_Stall.7z – 3.0 GB – Wind tunnel and flight data set

dp_module_step_files.zip – 6.6 MB – Step files for differential pressure modules

KiCad.zip – 2.0 MB – PCB layouts as KiCAD project files

You are here: homedeepstall
Valid CSS Driven by DokuWiki Valid XHTML 1.0