skip to main content


Title: AircraftVerse: A Large-Scale Multimodal Dataset of Aerial Vehicle Designs

Dataset accompanying code and paper: AircraftVerse: A Large-Scale Multimodal Dataset of Aerial Vehicle Designs

We present AircraftVerse, a publicly available aerial vehicle design dataset. AircraftVerse contains 27,714 diverse battery powered aircraft designs that have been evaluated using state-of-the-art physics models that characterize performance metrics such as maximum flight distance and hover-time.

This repository contains:

  • A zip file "AircraftVerse.zip", where each design_X contains:
    • design_tree.json: The design tree describes the design topology, choice of propulsion and energy subsystems. The tree also contains continuous parameters such as wing span, wing chord and arm length.
    • design_seq.json: A preorder traversal of the design tree and store this as design_seq.json.
    • design_low_level.json: The most low level representation of the design. This low level representation includes significant repetition that is avoided in the tree representation through the use of symmetry.
    • Geom.stp: CAD design for the Aircraft in composition STP format (ISO 10303 standard).
    • cadfile.stl: CAD design for the Aircraft in stereolithographic STL file,
    • output.json: Summary containing the UAV's performance metrics such as maximum flight distance, maximum hover time, fight distance at maximum speed, maximum current draw, and mass.
    • trims.npy: Contains the [Distance, Flight Time, Pitch, Control Input, Thrust, Lift, Drag, Current, Power] at each evaluated trim state (velocity).
    • pointCloud.npy: Numpy array containing the corresponding point clouds for each design.
  • corpus_dic: The corpus of components (e.g. batteries, propellers) that make up all aircraft designs. It is structured as a dictionary of dictionaries, with the high level components: ['Servo', 'GPS', 'ESC', 'Wing', 'Sensor', 'Propeller', 'Receiver', 'Motor', 'Battery', 'Autopilot'], containing a list of dictionaries corresponding to the component type. E.g. corpus_dic['Battery']['TurnigyGraphene2200mAh3S75C'] contains the detail of this particular battery.

Corresponding code for this work is included at https://github.com/SRI-CSL/AircraftVerse. 

Acknowledgements:

This material is based upon work supported by the United States Air Force and DARPA under Contract No. FA8750-20-C-0002.  Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Air Force and DARPA.

 

 
more » « less
Award ID(s):
1839971
NSF-PAR ID:
10501750
Author(s) / Creator(s):
; ; ; ; ; ; ; ; ; ; ;
Publisher / Repository:
Zenodo
Date Published:
Subject(s) / Keyword(s):
Aircrafts CAD Generative AI Multimodal Multi-Physics Machine Learning AI Deep Learning
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Data files were used in support of the research paper titled “Mitigating RF Jamming Attacks at the Physical Layer with Machine Learning" which has been submitted to the IET Communications journal.

    ---------------------------------------------------------------------------------------------

    All data was collected using the SDR implementation shown here: https://github.com/mainland/dragonradio/tree/iet-paper. Particularly for antenna state selection, the files developed for this paper are located in 'dragonradio/scripts/:'

    • 'ModeSelect.py': class used to defined the antenna state selection algorithm
    • 'standalone-radio.py': SDR implementation for normal radio operation with reconfigurable antenna
    • 'standalone-radio-tuning.py': SDR implementation for hyperparameter tunning
    • 'standalone-radio-onmi.py': SDR implementation for omnidirectional mode only

    ---------------------------------------------------------------------------------------------

    Authors: Marko Jacovic, Xaime Rivas Rey, Geoffrey Mainland, Kapil R. Dandekar
    Contact: krd26@drexel.edu

    ---------------------------------------------------------------------------------------------

    Top-level directories and content will be described below. Detailed descriptions of experiments performed are provided in the paper.

    ---------------------------------------------------------------------------------------------

    classifier_training: files used for training classifiers that are integrated into SDR platform

    • 'logs-8-18' directory contains OTA SDR collected log files for each jammer type and under normal operation (including congested and weaklink states)
    • 'classTrain.py' is the main parser for training the classifiers
    • 'trainedClassifiers' contains the output classifiers generated by 'classTrain.py'

    post_processing_classifier: contains logs of online classifier outputs and processing script

    • 'class' directory contains .csv logs of each RTE and OTA experiment for each jamming and operation scenario
    • 'classProcess.py' parses the log files and provides classification report and confusion matrix for each multi-class and binary classifiers for each observed scenario - found in 'results->classifier_performance'

    post_processing_mgen: contains MGEN receiver logs and parser

    • 'configs' contains JSON files to be used with parser for each experiment
    • 'mgenLogs' contains MGEN receiver logs for each OTA and RTE experiment described. Within each experiment logs are separated by 'mit' for mitigation used, 'nj' for no jammer, and 'noMit' for no mitigation technique used. File names take the form *_cj_* for constant jammer, *_pj_* for periodic jammer, *_rj_* for reactive jammer, and *_nj_* for no jammer. Performance figures are found in 'results->mitigation_performance'

    ray_tracing_emulation: contains files related to Drexel area, Art Museum, and UAV Drexel area validation RTE studies.

    • Directory contains detailed 'readme.txt' for understanding.
    • Please note: the processing files and data logs present in 'validation' folder were developed by Wolfe et al. and should be cited as such, unless explicitly stated differently. 
      • S. Wolfe, S. Begashaw, Y. Liu and K. R. Dandekar, "Adaptive Link Optimization for 802.11 UAV Uplink Using a Reconfigurable Antenna," MILCOM 2018 - 2018 IEEE Military Communications Conference (MILCOM), 2018, pp. 1-6, doi: 10.1109/MILCOM.2018.8599696.

    results: contains results obtained from study

    • 'classifier_performance' contains .txt files summarizing binary and multi-class performance of online SDR system. Files obtained using 'post_processing_classifier.'
    • 'mitigation_performance' contains figures generated by 'post_processing_mgen.'
    • 'validation' contains RTE and OTA performance comparison obtained by 'ray_tracing_emulation->validation->matlab->outdoor_hover_plots.m'

    tuning_parameter_study: contains the OTA log files for antenna state selection hyperparameter study

    • 'dataCollect' contains a folder for each jammer considered in the study, and inside each folder there is a CSV file corresponding to a different configuration of the learning parameters of the reconfigurable antenna. The configuration selected was the one that performed the best across all these experiments and is described in the paper.
    • 'data_summary.txt'this file contains the summaries from all the CSV files for convenience.
     
    more » « less
  2. MCMC chains for the GWB analyses performed in the paper "The NANOGrav 15 yr Data Set: Search for Signals from New Physics". 

    The data is provided in pickle format. Each file contains a NumPy array with the MCMC chain (with burn-in already removed), and a dictionary with the model parameters' names as keys and their priors as values. You can load them as

    with open ('path/to/file.pkl', 'rb') as pick: temp = pickle.load(pick) params = temp[0] chain = temp[1]

    The naming convention for the files is the following:

    • igw: inflationary Gravitational Waves (GWs)
    • sigw: scalar-induced GWs
      • sigw_box: assumes a box-like feature in the primordial power spectrum.
      • sigw_delta: assumes a delta-like feature in the primordial power spectrum.
      • sigw_gauss: assumes a Gaussian peak feature in the primordial power spectrum.
    • pt: cosmological phase transitions
      • pt_bubble: assumes that the dominant contribution to the GW productions comes from bubble collisions.
      • pt_sound: assumes that the dominant contribution to the GW productions comes from sound waves.
    • stable: stable cosmic strings
      • stable-c: stable strings emitting GWs only in the form of GW bursts from cusps on closed loops.
      • stable-k: stable strings emitting GWs only in the form of GW bursts from kinks on closed loops.
      • stable-m: stable strings emitting monochromatic GW at the fundamental frequency.
      • stable-n: stable strings described by numerical simulations including GWs from cusps and kinks.
    • meta: metastable cosmic strings
      • meta-l: metastable strings with GW emission from loops only.
      • meta-ls metastable strings with GW emission from loops and segments.
    • super: cosmic superstrings.
    • dw: domain walls
      • dw-sm: domain walls decaying into Standard Model particles.
      • dw-dr: domain walls decaying into dark radiation.

    For each model, we provide four files. One for the run where the new-physics signal is assumed to be the only GWB source. One for the run where the new-physics signal is superimposed to the signal from Supermassive Black Hole Binaries (SMBHB), for these files "_bhb" will be appended to the model name. Then, for both these scenarios, in the "compare" folder we provide the files for the hypermodel runs that were used to derive the Bayes' factors.

    In addition to chains for the stochastic models, we also provide data for the two deterministic models considered in the paper (ULDM and DM substructures). For the ULDM model, the naming convention of the files is the following (all the ULDM signals are superimposed to the SMBHB signal, see the discussion in the paper for more details)

    • uldm_e: ULDM Earth signal.
    • uldm_p: ULDM pulsar signal
      • uldm_p_cor: correlated limit
      • uldm_p_unc: uncorrelated limit
    • uldm_c: ULDM combined Earth + pulsar signal direct coupling 
      • uldm_c_cor: correlated limit
      • uldm_c_unc: uncorrelated limit
    • uldm_vecB: vector ULDM coupled to the baryon number
      • uldm_vecB_cor: correlated limit
      • uldm_vecB_unc: uncorrelated limit 
    • uldm_vecBL: vector ULDM coupled to B-L
      • uldm_vecBL_cor: correlated limit
      • uldm_vecBL_unc: uncorrelated limit
    • uldm_c_grav: ULDM combined Earth + pulsar signal for gravitational-only coupling
      • uldm_c_grav_cor: correlated limit
        • uldm_c_cor_grav_low: low mass region  
        • uldm_c_cor_grav_mon: monopole region
        • uldm_c_cor_grav_low: high mass region
      • uldm_c_unc: uncorrelated limit
        • uldm_c_unc_grav_low: low mass region  
        • uldm_c_unc_grav_mon: monopole region
        • uldm_c_unc_grav_low: high mass region

    For the substructure (static) model, we provide the chain for the marginalized distribution (as for the ULDM signal, the substructure signal is always superimposed to the SMBHB signal)

     
    more » « less
  3. This dataset contains the data used in the paper (arXiv:2301.02398) on the estimation and subtraction of glitches in gravitational wave data using an adaptive spline fitting method called SHAPES .

    Each .zip file corresponds to one of the glitches considered in the paper. The name of the class to which the glitch belongs (e.g., "Blip") is included in the name of the corresponding .zip file (e.g., BLIP_SHAPESRun_20221229T125928.zip). When uncompressed, each .zip file expands to a folder containing the following.

    • An HDF5 file containing the Whitened gravitational wave (GW) strain data in which the glitch appeared. The data has been whitened using a proprietary code. The original (unwhitened) strain data file is available from gwosc.org. The name of the original data file is the part preceding the token '__dtrndWhtnBndpss' in the name of the file.
    • A JSON file containing information pertinent to the glitch that was analyzed (e.g., start and stop indices in the whitened data time series).
    • A set of .mat  files containing segmented estimates of the glitch as described in the paper. 

    A MATLAB script, plotglitch.m, has been provided that plots, for a given glitch folder name, the data segment that was analyzed in the paper. Another script, plotshapesestimate.m, plots the estimated glitch. These scripts require the JSONLab package.

     
    more » « less
  4. This dataset contains machine learning and volunteer classifications from the Gravity Spy project. It includes glitches from observing runs O1, O2, O3a and O3b that received at least one classification from a registered volunteer in the project. It also indicates glitches that are nominally retired from the project using our default set of retirement parameters, which are described below. See more details in the Gravity Spy Methods paper. 

    When a particular subject in a citizen science project (in this case, glitches from the LIGO datastream) is deemed to be classified sufficiently it is "retired" from the project. For the Gravity Spy project, retirement depends on a combination of both volunteer and machine learning classifications, and a number of parameterizations affect how quickly glitches get retired. For this dataset, we use a default set of retirement parameters, the most important of which are: 

    1. A glitches must be classified by at least 2 registered volunteers
    2. Based on both the initial machine learning classification and volunteer classifications, the glitch has more than a 90% probability of residing in a particular class
    3. Each volunteer classification (weighted by that volunteer's confusion matrix) contains a weight equal to the initial machine learning score when determining the final probability

    The choice of these and other parameterization will affect the accuracy of the retired dataset as well as the number of glitches that are retired, and will be explored in detail in an upcoming publication (Zevin et al. in prep). 

    The dataset can be read in using e.g. Pandas: 
    ```
    import pandas as pd
    dataset = pd.read_hdf('retired_fulldata_min2_max50_ret0p9.hdf5', key='image_db')
    ```
    Each row in the dataframe contains information about a particular glitch in the Gravity Spy dataset. 

    Description of series in dataframe

    • ['1080Lines', '1400Ripples', 'Air_Compressor', 'Blip', 'Chirp', 'Extremely_Loud', 'Helix', 'Koi_Fish', 'Light_Modulation', 'Low_Frequency_Burst', 'Low_Frequency_Lines', 'No_Glitch', 'None_of_the_Above', 'Paired_Doves', 'Power_Line', 'Repeating_Blips', 'Scattered_Light', 'Scratchy', 'Tomte', 'Violin_Mode', 'Wandering_Line', 'Whistle']
      • Machine learning scores for each glitch class in the trained model, which for a particular glitch will sum to unity
    • ['ml_confidence', 'ml_label']
      • Highest machine learning confidence score across all classes for a particular glitch, and the class associated with this score
    • ['gravityspy_id', 'id']
      • Unique identified for each glitch on the Zooniverse platform ('gravityspy_id') and in the Gravity Spy project ('id'), which can be used to link a particular glitch to the full Gravity Spy dataset (which contains GPS times among many other descriptors)
    • ['retired']
      • Marks whether the glitch is retired using our default set of retirement parameters (1=retired, 0=not retired)
    • ['Nclassifications']
      • The total number of classifications performed by registered volunteers on this glitch
    • ['final_score', 'final_label']
      • The final score (weighted combination of machine learning and volunteer classifications) and the most probable type of glitch
    • ['tracks']
      • Array of classification weights that were added to each glitch category due to each volunteer's classification

     

    ```
    For machine learning classifications on all glitches in O1, O2, O3a, and O3b, please see Gravity Spy Machine Learning Classifications on Zenodo

    For the most recently uploaded training set used in Gravity Spy machine learning algorithms, please see Gravity Spy Training Set on Zenodo.

    For detailed information on the training set used for the original Gravity Spy machine learning paper, please see Machine learning for Gravity Spy: Glitch classification and dataset on Zenodo. 

     
    more » « less
  5. These data are soil, CO2 efflux, dissolved organic carbon leaching, and various other measures from a mesocosm experiment performed in long-term (12-years) crop diversity experiment near Hickory Corners, MI, United States.Briefly, we tracked dual-labelled (13C and 15N), isotopically enriched wheat (Triticum aestivum) residue in situ for two years as it decomposed in three agroecosystems: maize-soybean rotation (CS), maize-soybean-wheat plus red clover and cereal rye cover crops (CSW2), and spring fallow management with regeneration of natural grassland species (7-10 species; SF). We measured losses of wheat residue (Cwheat and Nwheat) in leached soil solution and greenhouse gas fluxes, as well as how much was recovered in microbial biomass and bulk soil at 5-cm increments down to 20 cm.

    COLLECTION INFORMATION:

    • Time period(s): 2011 to 2013
    • Location(s): Hickory Corners, MI, United States
    • Long-term Experiment: Cropping Biodiversity Gradient Experiment
    • Further Site Information: https://lter.kbs.msu.edu/research/long-term-experiments/biodiversity-gradient/
     
    more » « less