QGroundControl (QGC) is a professional-grade, cross-platform ground control station for MAVLink-enabled unmanned aerial vehicles (UAVs), supporting both PX4 and ArduPilot autopilots. It provides full flight control, real-time telemetry monitoring, mission planning with complex survey/scan patterns, video streaming with hardware-accelerated decoding (D3D, Vulkan, DMABuf), log analysis (ULog, DataFlash), and vehicle configuration wizards. The architecture is a monolithic Qt/C++17 application with a QML-based UI, organized around a plugin system for firmware-specific features, a custom state machine framework for async workflows, and a type-safe Fact system for parameter management. It also includes extensive CI/CD infrastructure, a comprehensive test suite, and support for Android, iOS, macOS, Windows, and Linux. The repository is hybrid in that it contains documentation (vitepress), Python tooling for CI/code generation, and data-oriented log parsers, but its dominant character is a complex desktop/mobile application.
Gobot is a Go framework for robotics, physical computing, and the Internet of Things. It provides a consistent hardware abstraction layer (HAL) over dozens of single-board computers (Raspberry Pi, BeagleBone, Intel Edison, Jetson, etc.), microcontrollers (Arduino via Firmata, Digispark), and communication protocols (GPIO, I2C, SPI, BLE, serial, MQTT, NATS, MAVLink). The architecture is modular: platform-specific adaptors implement core interfaces (DigitalPinner, PWMPinner, I2cBusAdaptor, etc.) and are composed from reusable building blocks in the `platforms/adaptors` package. Drivers for sensors, actuators, displays, and robots (Sphero, Parrot drones, DJI Tello, GoPiGo3) are organized by bus type (gpio, i2c, spi, ble, aio, onewire, serial) and share a common lifecycle pattern with event publishing and command registration. A built-in HTTP API server (with optional basic auth and CORS) exposes robot state and commands over REST and Server-Sent Events, and includes an embedded web UI (Robeaux). The framework supports both high-level orchestration via `Robot` and `Manager` and low-level 'metal' usage for direct hardware control. External dependencies include `periph.io` for GPIO, `tinygo.org/x/bluetooth` for BLE, `gocv.io/x/gocv` for computer vision, and `go.bug.st/serial` for serial communication. The codebase is extensively tested with mock filesystem and syscall infrastructure, and uses functional options for configuration throughout.
Flix is an open-source ESP32-based quadcopter project built from scratch. The repository contains flight controller firmware, a Python control/telemetry library, C++ utilities for log conversion, simulation assets, and extensive documentation. It is primarily an application repo, though it also includes CAD models and data-conversion tools that serve as supporting assets. At runtime, the ESP32 firmware reads IMU data, estimates attitude, and drives motors, communicating via MAVLink and ESP-NOW for telemetry and control. The Python library (tools/pyflix/flix.py) provides an observable API for interacting with the vehicle, and CLI tools convert flight logs from CSV to MCAP and ULog formats for analysis in standard robotics tooling. A Gazebo simulation and a Python test harness validate behavior without hardware. Architecture is a multi-part monorepo: firmware, Python tools, C++ tools, docs, and 3D-printable mechanical parts. External dependencies include the Arduino ESP32 core, MAVLink, ESP-NOW, Gazebo, and custom math classes. The code is generally well-structured, but some data flow relies on global variables and hardware-specific assumptions, limiting reuse outside the ESP32 ecosystem. The project appears actively maintained with CI workflows, but dependency pinning and tight hardware coupling create moderate drift risk.
This repository contains the ESP-Drone firmware, an open-source flight control system for quadcopters based on Espressif ESP32/ESP32-S2/ESP32-S3 microcontrollers. It is a port of the Bitcraze Crazyflie firmware (GPLv3) and is primarily designed for STEAM education. The system provides a complete drone control stack including sensor drivers (IMU, barometer, magnetometer, ToF range finders, optical flow), state estimation (complementary filter, extended Kalman filter), attitude/position controllers (PID, Mellinger, INDI), and communication via Wi-Fi (UDP, ESP-NOW) and CRTP protocol. It supports modular expansion 'decks' for additional hardware like flow sensors, thermal cameras, and localization systems (Lighthouse V1/V2, UWB TDoA). The firmware runs on FreeRTOS and uses ESP-IDF v5.0 as its development framework.
SimART is an open-source simulation platform for wireless communication and sensing research, integrating ray-tracing (Sionna RT), 3D visualization (VTK/Qt), drone simulation (AirSim/Unreal Engine), and ROS1 for data streaming. The system provides a desktop GUI (C++/Qt5) that loads 3D scenes from files, OpenStreetMap, or AirSim, and orchestrates real-time or offline radio propagation simulations. It generates channel knowledge maps (CKMs), beam codebooks, and system-level metrics (SINR, BLER, MCS), and supports machine learning-based beam selection via a DeepSense predictor. The platform is designed for researchers prototyping algorithms for UAV communications, beamforming, and link adaptation. While the codebase is functionally rich and modular in parts (scene providers, transform manager, socket workers), it suffers from significant technical drift: it depends on ROS1 (end-of-life), Unreal Engine 4.27 (discontinued), Qt5, and legacy VTK APIs. The C++ code contains large monolithic files (e.g., OsmSceneProvider.cpp ~1100 lines) and duplication between C++ and Python transform logic. There are no automated tests, and many configuration files lack schema validation. Despite these issues, several components (blender scripts, beam codebook utilities, scene provider interface) are well-isolated and could be reused in other projects with minimal adaptation.