Usage

Specifications

Component

Version

Dependencies

Flight Controller

ArduPilot Copter 4.3

ArduPilot

Communication Protocol

MAVLink 2.0

pymavlink 2.4.37

Edge Runtime

Ubuntu 22.04

Python 3.10

Vision Backend

YOLOv8

OpenCV(v4), PyTorch (v2.7)

UI Framework

PySide6

QFluentWidgets

Note

Hardware Requirements: CUDA-enabled GPU for vision processing, 8 GB RAM minimum.

Installation

  1. Clone the repository (uses Git submodules):

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

  3. Install OpenCV (if not already installed - preferably from source):

    sudo apt-get install libopencv-dev python3-opencv
    
  1. Run setup script:

    make setup
    
  1. Install Python packages (package version might be incompatible with your system, use virtual environment, and adjust package versions if needed):

    python3 -m venv .venv
    source .venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  2. Set Environment Variables:

    make set_env_vars
    
  3. Build src/ardupilot_gazebo using CMake (optional if not working in simulation):

    cd src/ardupilot_gazebo
    mkdir build
    cd build
    cmake ..
    make -j4
    cd ../../../..
    

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`