Skip to content

darrahts/uavTestbed

Repository files navigation

Contributors LinkedIn


Logo

Prognostics Center of Excellence

Diagnostics and Prognostics Group

Planning and Scheduling Group

UAV Simulation Testbed

A testbed for the development of prognostic, health management, and decision making algorithms.
Explore the docs »
View Demo

Table of Contents
  1. About The Project
  2. Prerequisites
  3. Installation
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Publications
  10. Acknowledgements

UPDATE - Dataset

A dataset for the experiments will be released soon. In the meantime, contact us for access. The dataset contains run-to-failure flight data for over 100 UAVs, starting from a new UAV with brand new components, and includes battery changes and degradation in 9 different components. There are over 20 different mission plans that operate in an urban environment with varying wind conditions.

About The Project

This is a complete UAV simulation testbed that is intended to be used with the data management framework. A Postgres database schema and an API in MATLAB / python is used in conjunction. This framework will support a wide variety of simulation-based experiments as well as real-world experiments using the same interface.

This is a Work In Progress [WIP]! Updates are being made as of July 15th, 2022. Many of these steps may remain out of date for the time being.

Currenlty we are conducting several run-to-failure experiments in effort to collect telementry and degradation data to facilitate research into deep learning approaches to problems such as remaining useful life (RUL) estimation, fault detection & isolation (FDI), decision making, and others.

TODO

  • add power demand estimation based on trajectory
  • add in trajectory risk / reward

Prerequisites

  • PostgreSQL 12+ (other versions are probably fine but untested)
  • MATLAB r2020+ (r2020 had database issues, see notes below).

Setup

  1. Clone this repo git clone https://github.com/darrahts/uavTestbed && cd uavTestbed

  2. Clone the data management framework repo and follow the installation instructions to install postgres and timescaledb. NOTE: windows ports of some scripts are in progress.

  3. Execute the SQL scripts which extend the data management framework for the UAV simulation.

  4. Optional Install DBeaver, a database management application and follow the guide here to set up a remote connection to your database.

  5. Optional Install VS Code.

Usage

Note

  • There is an active support case regarding an error with code in MATLAB's database toolbox that drops miliseconds from the telemetry data. This causes the transaction to fail due to violating the unique constraint on the dt column. The current workaround is to sample the at 1hz.

NOTE This has been tested on Windows 10 with ODBC driver and R2020a. Currently working on a Linux implementation with the native postgres driver and R2021a. Here is another active support case regarding the errors within MATLAB.

Run the file example.mlx. The original octocopter and dynamics are no longer supported (although still work), and therefore it is recommended to use the tarot uav instead (it is also alot faster due to different implementation of the dynamics).

Prerequisites

  • setup a database following the above instructions and included the default setups
  • have the database connection setup in MATLAB (instructions here)

Discuss the following:

  • database schema (PHM 2021 paper)
  • trajectory selection (aerospace journal paper)
  • Degradation (2020 AIAA paper)
  • RUL estimation
  • parameter estimation
  • train/test/validation data

Roadmap

To be incorporated:

  • takeoff and landing
  • prognostics-based waypoint selection
  • power estimation based on trajectory
  • 4D flight plan
  • dynamic craft speed based on flight plan
  • mission or maintenance scheduling
  • optimize flight time vs maintenance time
  • in-mission decision making
  • NN-based decision making
  • multi-agent mission assignment
  • multi-agent resource allocation
  • more...

Mentors

  • Gautam Biswas
  • Marcos Quinones
  • Jeremy Frank
  • Chetan Kulkarni
  • Chris Teubert

Technical contributors

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Tim Darrah - timothy.s.darrah@vanderbilt.edu

Project Link: https://github.com/darrahts/uavTestbed

Publications

Acknowledgements

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published