mavlink/MAVSDK

API and library for MAVLink compatible systems written in C++ 20

What it solves

MAVSDK simplifies the process of interacting with drones and unmanned vehicles by providing a high-level API for MAVLink, removing the need for developers to handle the complex, low-level MAVLink protocol directly.

How it works

It uses a C++ core library to handle basic MAVLink communication and feature-specific plugins. To support multiple programming languages, it implements a gRPC server that allows clients (such as Python, Swift, and Java) to connect and interact with the drone using idiomatic patterns and syntax for their respective languages.

Who it’s for

It is designed for developers building software for drones and robotics who need a cross-platform, lightweight, and easy-to-use interface to control MAVLink-compliant vehicles.

Highlights

  • Cross-platform support: Works on Linux, macOS, Windows, iOS, and Android.
  • Multi-language clients: Offers libraries for Python, Swift, Java, and others via gRPC.
  • Flexible API: Supports both synchronous (blocking) and asynchronous (callback-based) API calls.
  • Extensible: Allows for custom extensions through the MavlinkDirect plugin.

Related

  • Project
  • Project
  • Project
  • Project
  • Project