Giter VIP home page Giter VIP logo

mavsdk's Introduction

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).
  • Docs - MAVSDK docs source.

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.

Maintenance

This project is maintained by volunteers:

Maintenance is not sponsored by any company, however, hosting of the docs and the forum is provided by the Dronecode Foundation.

Support and issues

If you just have a question, consider asking in the forum.

If you have run into an issue, discovered a bug, or want to request a feature, create an issue. If it is important or urgent to you, consider sponsoring any of the maintainers to move the issue up on their todo list.

If you need private support, consider paid consulting:

(Create a pull request if you wish to be listed here.)

mavsdk's People

Contributors

julianoes avatar jonasvautherin avatar hamishwillee avatar darioxz avatar douglaswsilva avatar irsdkv avatar ykhedar avatar dbowerman avatar krady21 avatar hrnbot avatar dayjaby avatar rjasuja avatar tsc21 avatar cswkim avatar katawann avatar coderkalyan avatar yalamareddychaitanya avatar dlech avatar bozkurthan avatar tbago avatar dakejahl avatar stifael avatar bkueng avatar romain-chiap avatar shrit avatar persuader72 avatar dagar avatar potaito avatar danielepettenuzzo avatar aokholm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.