Skip to content
/ MAVSDK Public

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

License

Notifications You must be signed in to change notification settings

mavlink/MAVSDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6535d3f · Oct 19, 2020
Oct 19, 2020
Sep 10, 2020
Oct 1, 2020
Oct 16, 2020
Oct 12, 2020
Oct 19, 2020
Oct 14, 2020
May 13, 2020
Oct 1, 2020
Mar 6, 2020
Feb 18, 2019
Oct 14, 2020
Aug 13, 2019
Apr 3, 2018
Jul 12, 2019
Jul 16, 2020
May 13, 2020
Sep 30, 2019
Oct 17, 2019
May 13, 2020

Repository files navigation

MAVSDK

GitHub Actions Status Coverage Status

Description

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 pip.

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.

Repos

  • MAVSDK - this repo containing the source code for the C++ core.
  • MAVSDK-Proto - Common interface definitions for API specified as proto files used by gRPC between language clients and mavsdk_server.
  • MAVSDK-Python - MAVSDK client for Python (first released on Pypi 2019).
  • MAVSDK-Swift - MAVSDK client for Swift (used in production, first released 2018).
  • MAVSDK-Java - MAVSDK client for Java (first released on MavenCentral in 2019).
  • MAVSDK-JavaScript - MAVSDK client in JavaScript (proof of concept, 2019).
  • MAVSDK-Rust - MAVSDK client for Rust (proof of concept, 2019).
  • MAVSDK-CSharp - MAVSDK client for CSharp (proof of concept, 2019).
  • Other Repos - Docs, examples, etc.

Docs (Build instructions etc.)

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).

Quick Links:

License

This project is licensed under the permissive BSD 3-clause, see LICENSE.md.