mavlink/MAVSDK
API and library for MAVLink compatible systems written in C++
What it solves
MAVSDK provides a high-level, easy-to-use API for interacting with MAVLink, simplifying the process of controlling drones and other unmanned vehicles. It removes the complexity of raw MAVLink communication, offering a simpler interface for developers to implement vehicle control and monitoring.
How it works
The project is built around a C++ core library that handles the basic MAVLink communication and feature-specific plugin libraries. It uses a proto IDL to define the API across different languages.
Depending on the language, bindings are implemented in two ways:
- Directly: C, Python, and Kotlin bindings call the C++ library through a C wrapper, avoiding the need for a separate process or gRPC.
- Over gRPC: Other language clients (like Swift, Java, and Go) communicate with a
mavsdk_serverprocess that exposes the API on a local port.
Who it’s for
Developers building applications for unmanned vehicles that need a cross-platform (Linux, macOS, Windows, iOS, Android) and lightweight SDK to communicate with MAVLink-compliant hardware.
Highlights
- Multi-language support: Provides idiomatic APIs for Python, C++, C, Kotlin, Swift, Java, and others.
- Cross-platform: Works across desktop and mobile operating systems.
- Flexible API: Supports both synchronous (blocking) and asynchronous (callback-based) calls.
- Standard Compliant: Fully compliant with the MAVLink standard and definitions.
Related
- Project
- Project
- Project
- Project
- Project