/drone-vis

Full compatible drone library to automate computer vision algorithms on parrot drones.

Primary LanguagePythonMIT LicenseMIT

CI Documentation Status coverage report codestyle Version

DroneVision

Drone Vision (DroneVis) is a full compatible drone library to automate computer vision algorithms on parrot drones. You can read a detailed documentation of Drone Vision docs.

DroneVis is a cutting-edge drone software library that has been specifically designed for use with the AR. Drone. It has been extensively tested both indoors and outdoors, and offers a wide range of features including adaptability in connecting to the drone, advanced computer vision algorithms, and 3 user-friendly interfaces. This makes it easy for users to take full advantage of the drone's capabilities and control it with simple commands. All of the implemented real-time data, inference, and detection achieve a minimum fps >= 4.5 on an Intel core 8 CPU.

Features

  • Unified state-of-the art computer vision algoritms
  • Full control over the drone
  • PEP8 compliant (unified code style)
  • Documented functions and classes
  • Tests, high code coverage and type hints
  • Clean code
  • Multiple implementations for the same models
  • Logger with timestamps
  • Three UI for easier usage (GUI, CLI, Gesture Recognition)

Computer Vision Models

You provide a wide variety of 20+ computer vision and recommends users to the best models in terms of accuracy and speed, whilst giving users the chance to use any model of their choice.

Drone Control

  • Right ➡️, Left ⬅️
  • Up ⬆️, Down ⬇️
  • Forward ▶️, Backward ◀️
  • Takeoff 🚀, Land 🛬
  • Reset 🔄, Emergency 🚨
  • Rotate Left ↩️ /Right ↪️
  • Hover 🔍, Calibrate 🔧
  • Camera Stream 📹/Record ⏺️
  • Hand Gesture Control 🖌️

How to Install

Install PyTorch You should consider installing the version of Pytorch that corresponds to your cuda version.

You start controling your drone now with just two commands:

pip install dronevis # install the library 
dronevis-gui # run library GUI

Press the start button to start a demo drone simulation, and run your favourite algorithms with the stream button.

You can control your drone with our CLI:

dronevis

Getting Started

Dronevis is built with multiple modes for customizibility. You can view all the options for either runnning our GUI or CLI as follows:

dronevis --help

The default mode for running either the CLI or the GUI is the demo mode. You can alter the mode by providing "real" to --drone argument.

dronevis --drone=real # cli real drone mode

or for GUI,

dronevis-gui --drone=real # gui real drone mode

Documentation

Dronevis is developed with an extensive documentation for easier user contributions. You can check our full documentation in here to go more in-depth of how the library is structure and how to contribute your favourite model.

Citing the Project

To cite this repository:

@software{drone-vis,
  author  = {Ahmed Heakl, Fatma Youssef, Abdallah-Elbarkokry},
  title   = {Dronevis: Full compatible drone library to automate computer vision algorithms on parrot drones},
  year    = {2023},
  url     = {github.com/ahmedheakl/drone-vis},
  version = {1.3.0}
}