Skip to content

amar-jay/nebula

Repository files navigation

Nebula

An application system consisting of an edge server and a desktop client (built with PySide and pymavlink), communicating over ZeroMQ to control the Nebula Team's Teknofest 2025 drone, featuring ArduPilot integration and planned image-based package loading.

Demo

Watch the video

Features

  • Control Station: Built for monitoring and controlling the drone
  • Gazebo Simulation: Gazebo and ArduPilot integration
  • Machine Learning Integration: Object detection and monitoring with YOLO
  • GPS Coordinate Estimation: Precise positioning and navigation
  • Controls: Monitoring and controlling interface

Technologies Used

  • Gazebo: Simulation tool for robotics and autonomous systems
  • ArduPilot: Open-source autopilot system supporting various types of vehicles
  • PySide6: Desktop application built with PySide6 using QFluentWidget library
  • YOLO: Object detection system for identifying and tracking objects
  • ZeroMQ: High-performance messaging library for asynchronous communication between edge server and desktop application

Installation

Prerequisites

  • Operating System: Ubuntu 22.04 or later
  • Hardware: CUDA-enabled GPU for accelerated processing

Setup

  1. Clone the repository (uses Git submodules):

    git clone https://github.com/amar-jay/nebula.git --recursive
  2. Setup ArduPilot:

  3. Install Python packages:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt

Usage

Running the Simulation

  1. Start simulation:

    make run_sim
  2. Launch Control Station:

    make app
  3. Launch Controls (optional):

     make sim_server  # for real drone use `make server`

Running with Real Drone

Note: Currently experimental - to check if it can work across herelink

make server
make app

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published