No project description provided
Project description
UAV Collision Avoidance
Python project regarding implementation of UAV physics and collision detection/avoidance algorithms. Archived version
Introduction
UAV Collision Avoidance is my bachelor's thesis project meeting problem of UAVs safe cooperation in the 3D space. Project implements functional physics calculations, scalable GUI, realistic ADS-B probable collision avoidance systems and on-board flight planning.
Premises
3-dimensional space defined in XYZ coordinate system, where X and Y describe flat horizontal plane and Z is height above the sea level. In scope of this project, UAVs are considered HTOL drones (Horizontal Take-off and Landing). The space is shared by two/three UAVs. There is no other objects or gusts of wind assumpted. The default distance unit is meters [m] and speed is meters per second [m/s]. No aerodynamic lift force assumed at this moment. Aircrafts are considered only to move in direction of their speed vectors. No drifting implemented.
Technologies
Python3^1 project is wrapped as a PyPi package^2. PySide6^3, which is PyQt6 library, was used for GUI implementation.
Structures
Algorithms
App arguments
There are three possible arguments at the moment:
- realtime - runs GUI application with realtime simulation
- prerender - runs physical simulation
- tests - runs full tests with comparison of using and not using collision avoidance algorithm App defaults to realtime simulation.
Usage
Use pip install uav-collision-avoidance
to install the app and run one of the following:
- uav-collision-avoidance
- uav-collision-avoidance-realtime
- uav-collision-avoidance-prerender
- uav-collision-avoidance-tests
Build
Build it by cloning the repo and running the following commands:
#!/bin/bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd uav-collision-avoidance
python main.py [argument]
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
cd uav-collision-avoidance
python main.py [argument]
Remarks
One coding convention is not preserved in the scope of the project. Qt's methods are CamelCase formatted and the rest is snake_case, default Python naming convention.
Authors
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for uav-collision-avoidance-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5202b360bf27232adb0c13874bfb48fe1d15bf28a55a38712cf5447d2af46d43 |
|
MD5 | 1940d5d78a2f3e1b4539a2b4bc20acb1 |
|
BLAKE2b-256 | 41044cec8cf4bd79e31f289dbd1ebcbfa12f54ba2c25dc60f175bcb7d811d31b |
Hashes for uav_collision_avoidance-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00639e5e2467578244bc183158bc60527fd575ea9d86bc5ed2f2a75ab66ed41b |
|
MD5 | 3e26f0bf235f069868c44e930c55b28b |
|
BLAKE2b-256 | f819ea542c9eeb039c92f188a37198885802f14da793e64e5b4d4f7c629d1779 |