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.
- 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
- 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
- Operating System: Ubuntu 22.04 or later
- Hardware: CUDA-enabled GPU for accelerated processing
-
Clone the repository (uses Git submodules):
git clone https://github.com/amar-jay/nebula.git --recursive
-
Setup ArduPilot:
- Follow ArduPilot Linux setup guide
- Follow Gazebo and GStreamer setup guide
-
Install Python packages:
python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt
-
Start simulation:
make run_sim
-
Launch Control Station:
make app
-
Launch Controls (optional):
make sim_server # for real drone use `make server`
Note: Currently experimental - to check if it can work across herelink
make server
make app