Giter Site home page Giter Site logo

uav-collision-avoidance-2's Introduction

UAV Collision Avoidance

Project implements simple Python3 application simulating flight of two independent UAVs utilizing collision avoidance algorithm in order to prevent aircraft crashing into each other. GUI is represented using PySide61 library.

Note

Project considers two aircrafts only.

Running the app

In order to run the App you need to have Python3 installed including pip and PyQt6. This instruction makes use of venv/virtualenv avoiding need of installing whole PyQt library. After cloning, run following commands in the project directory

Windows

python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
python main.py

Note

Using venv in Windows requires accepting script running policy.

Linux

virtualenv -p python3 venv
source ./venv/bin/activate
pip install -r requirements.txt
python main.py

Important

This process may vary depending on the OS used.

Interaction

The simulator defaults to showcase mode where there is no way to interact with the app other than closing it with Escape or Ctrl+C. Debug mode can be activated using tilde ~

Shortcuts

  1. General
    • / - pause the simulation
    • R - reset the simulation
    • 1 - toggle aircraft info
    • 2 - toggle app info
    • 3 - toggle course trajectory
    • 4 - toggle yaw angle trajectory
    • 5 - toggle safezone
    • 6 - toggle distance covered (paths)
    • 7 - toggle second aircraft targeting first to crash
    • 8 - toggle hitboxes
  2. Aircraft steering
    • First aircraft
      • W - set 270° course
      • S - set 90° course
      • A - set 180° course
      • D - set 0° course
      • Y - decrease course by small iterator
      • U - increase course by small iterator
      • F2 - slow the aircraft down
      • F3 - speed the aircraft up
    • Second aircraft
      • I - set 270° course
      • K - set 90° course
      • J - set 180° course
      • L - set 0° course
      • O - decrease course by small iterator
      • P - increase course by small iterator
      • F6 - slow the aircraft down
      • F7 - speed the aircraft up

Progress

  • Run simulation and Gui separately
  • Add smooth angle transition
  • Add safezones and its handling
  • Transition from PyQt6 to PySide6
  • Add resolution based scaling
  • Add python package
  • Add flight control computer (FCC) to handle setting destination and vectors
  • Implement collision avoidance algorithm

Footnotes

  1. https://doc.qt.io/qtforpython-6/

uav-collision-avoidance-2's People

Contributors

mldxo avatar

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.