• Stars
    star
    607
  • Rank 73,845 (Top 2 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.

More Repositories

1

qgroundcontrol

Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
C++
3,232
star
2

mavlink

Marshalling / communication library for drones.
Python
1,703
star
3

mavros

MAVLink to ROS gateway with proxy for Ground Control Station
C++
752
star
4

MAVSDK-Python

MAVSDK client for Python.
Python
308
star
5

c_uart_interface_example

Simple MAVLink to UART interface example for *nix systems
C++
236
star
6

c_library_v2

Official reference C / C++ library for the v2 protocol
C
163
star
7

rust-mavlink

MAVLink library for Rust.
Rust
127
star
8

mavlink-devguide

MAVLink Developer Guide
HTML
98
star
9

mavlink-camera-manager

MAVLink Camera Manager Service
Rust
87
star
10

c_library_v1

MAVLink protocol C/C++ implementation auto-generated from latest protocol specs.
C
77
star
11

MAVSDK-Java

MAVSDK client for Java.
Jinja
70
star
12

mavlink2rest

mavlink2rest creates a REST server that provides mavlink information from a mavlink source
Rust
57
star
13

qgc-user-guide

QGroundControl User Guide (Gitbook source)
CSS
42
star
14

qgc-dev-guide

QGroundControl Developers Guide
41
star
15

MAVSDK-Proto

Collection of proto files used by gRPC in MAVSDK
Python
36
star
16

MAVSDK-Swift

MAVSDK client for Swift.
Swift
25
star
17

MAVSDK-JavaScript

JS wrapper for MAVSDK using grpc-web to generate a static http client, communicating through the Envoy proxy.
JavaScript
24
star
18

MAVSDK-docs

MAVSDK Guide Docs - Source Code
23
star
19

mavlink-gbp-release

git-buildpackage repository for releasing mavlink as 3-rd party library for ROS
CMake
21
star
20

MAVSDK-Rust

MAVSDK client for Rust. https://mavsdk.mavlink.io
Rust
16
star
21

MAVSDK-CSharp

MAVSDK client for C#. https://mavsdk.mavlink.io
C#
16
star
22

MAVSDK-Go

Go
15
star
23

containers

Docker image for building QGroundControl
Shell
15
star
24

MAVSDK-Swift-Example

Example app using MAVSDK for iOS (Swift)
Swift
14
star
25

libevents

C++
11
star
26

rfcs

Requests for Comment for MAVLink protocol spec
9
star
27

mavros-release

Bloom release repository for mavros.
7
star
28

mavlink-ivy-interface

MAVLink to IVY Bus Interface
C
6
star
29

docs.qgroundcontrol.com

QGroundControl User Guide Content: See https://github.com/mavlink/qgc-user-guide
HTML
5
star
30

dev.qgroundcontrol.com

QGroundControl Developers Guide Content: See https://github.com/mavlink/qgc-dev-guide
HTML
2
star
31

mavsdk.mavlink.io

Mavlink SDK guide
HTML
2
star
32

mavlink.io

Mavlink Developer Guide Content: See https://github.com/mavlink/mavlink-devguide
HTML
2
star
33

homebrew-mavsdk

Homebrew repository for MAVSDK
Ruby
1
star
34

MAVSDK-XCFramework

Swift
1
star