Git Product home page Git Product logo

drv_public's Introduction

DroneReqValidator

DroneReqValidator (DRV) is a complete Drone simulation ecosystem that automatically generates realistic environments, monitors Drone activities against predefined safety parameters, and generates detailed acceptance test reports for effective debugging and analysis of Drone software applications.

DroneWis

DroneWis is a CFD-based wind simulation component that is integrated with DroneReqValidator. It is used to automatically simulate the wind flow in the environment.

DRV + DroneWis

Instruction for ASE 2024 reviewers:

  1. Switch to the branch ASE-docker

  2. Use the docker compose.yaml file to run the complete system.

    docker-compose up
  3. Then download DRV_1.0.0 from the link

  4. Unzip and run the Blocks.exe file to start the simulation.

now you can interface the ecosystem using the UI at http://localhost:3000

Demo

System requirement

  • Windows 10/11
  • Unreal engine 5.0 (optional)
  • Python 3.10
  • node.js
  • npm

Usage

DroneReqValidator has 3 main components:

  1. Unreal application
  2. Python backend
  3. React frontend

To use the DroneReqValidator, follow the steps based on which OS you are working with:

Citation

If you use this project in your research, please cite our paper:

  1. DroneReqValidator: Facilitating High Fidelity Simulation Testing for Uncrewed Aerial Systems Developers
@inproceedings{zhang2023dronereqvalidator, title={DroneReqValidator: Facilitating High Fidelity Simulation Testing for Uncrewed Aerial Systems Developers}, 
author={Zhang, Bohan and Shivalingaiah, Yashaswini and Agrawal, Ankit}, 
booktitle={2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)}, 
pages={2082--2085}, year={2023},
 organization={IEEE} }
  1. A Requirements-Driven Platform for Validating Field Operations of Small Uncrewed Aerial Vehicles
@inproceedings{agrawal2023requirements,
          title={A Requirements-Driven Platform for Validating Field Operations of Small Uncrewed Aerial Vehicles},
          author={Agrawal, Ankit and Zhang, Bohan and Shivalingaiah, Yashaswini and Vierhauser, Michael and Cleland-Huang, Jane},
          booktitle={2023 IEEE 31st International Requirements Engineering Conference (RE)},
          pages={29--40},
          year={2023},
          organization={IEEE}
        }

Contributing

We welcome contributions to this project. To contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with a descriptive message.
  4. Push your changes to your fork.
  5. Submit a pull request to the main repository.
  6. We will review your changes and merge them if they align with the project's goals.

License

This project is licensed under the MIT license. See the LICENSE file for more information.

drv_public's People

Contributors

ankyagrawal avatar yashaswini-slu avatar bohanzhang1 avatar sr259 avatar

drv_public's Issues

Use a database for the generated report

The current implementation uses the Windows file system to save text, image, and html files to User/Documents/AirSim/report, which requires thread locking for multi-drone missions and requires manual import by the user.
Establish a database of choice that automates the report reading process on the frontend and eliminates thread locking on the backend.

UI: PX4 related configuration settings

For each drone, there should be a new field, "Software pilot" with "SimpleFlight" and "PX4" as options.
When PX4 is selected, expose the following settings

"LocalHostIp": "192.168.1.181", string, IP of the host machine, aka where unreal game is running at.(NOT WHERE PX4 IS), ideally this should be the same as there the frontend is running, but allow user to manually set it.

"VehicleType": "PX4Multirotor", string, if they selected PX4 softwarepilot, this is unchangeable, has to be this

The following are default, note that "ControlPortLocal" and "ControlPortRemote" are different for each drone.
"TcpPort": 4560,
"ControlPortLocal": 14540,
"ControlPortRemote": 14580,

The following must be present, otherwise PX4 will not work correctly, use them as default.
"Sensors":{
"Barometer":{
"SensorType": 1,
"Enabled": true,
"PressureFactorSigma": 0.0001825
}
},
"Parameters": {
"NAV_RCL_ACT": 0,
"NAV_DLL_ACT": 0,
"COM_OBL_ACT": 1,
"LPE_LAT": 47.641468,
"LPE_LON": -122.140165
}

note that "LPE_LAT": 47.641468, "LPE_LON": -122.140165, should be the same as cesium origin.

Fronetend simulation status indecator

Add an indicator on the frontend page to show

  1. how many tasks are queued?
  2. status of the backend {idle, running, error happened}

Enhance the existing API Get /currentRunning in server.py to return the necessary information.

Docker Unreal

Create and run a dockerized unreal application to be run on

  • Windows
  • Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.