API and library for MAVLink compatible systems written in C++17
MAVSDK is a set of libraries providing a high-level API to MAVLink. It aims to be: - Easy to use with a simple API supporting both synchronous (blocking) API calls and asynchronous API calls using callbacks. - Fast and lightweight. - Cross-platform (Linux, macOS, Windows, iOS, Android). - Extensible (using compile-time plugins). - Fully compliant with the MAVLink common standard/definitions.
In order to support multiple programming languages, MAVSDK implements a gRPC server in C++ which allows clients in different programming languages to connect to. The API is defined by the proto IDL (proto files). This architecture allows the clients to be implemented in idiomatic patterns, so using the tooling and syntax expected by end users. For example, the Python library can be installed from PyPi using
The MAVSDK C++ part consists of: - The core library implementing the basic MAVLink communication. - The plugin libraries implementing the MAVLink communication specific to a feature. - The mavsdk_server implementing the gRPC server for the language clients.
Instructions for how to use the C++ library can be found in the MAVSDK docs (links to other programming languages can be found from the documentation sidebar).
This project is licensed under the permissive BSD 3-clause, see LICENSE.md.