The Dronecode SDK (previously known as "DroneCore") is an API and library for the PX4 flight stack using MAVLink.
It is written in C++11 and aiming to be:
- Easy to use with a simple API.
- Fast and lightweight.
- Cross-platform (Linux, Mac, Windows, iOS, Android).
- Extensible (using compile-time plugins).
The SDK currently takes care of the MAVLink messaging. Connections over serial, UDP, and TCP are supported on Linux, macOS, and Windows.
The library provides both synchronous (blocking) API calls, as well as asynchronous API calls using callbacks.
API consumers use the DronecodeSDK
class to discover and manage vehicles (System
objects). Using the System
object plugins such as e.g. Action
, Telemetry
, or Mission
can be instantiated which provide information about the state of the drone and allow to interact with it.
The links below take you to the respective header files:
- dronecode_sdk: set up connection, discover devices
- system: an class representing one drone which can consist of multiple components
- info: general info about a device
- telemetry: to receive telemetry data
- action: to send commands such as arm, disarm, takeoff, land to drone
- mission/mission_item: to upload a waypoint mission
- offboard: for velocity control
- gimbal: control a gimbal
- camera: capture images, videos, and set camera settings
- follow_me: drone tracks a position supplied by the Dronecode SDK.
- calibration: calibrate drone sensors including gyro, accelerometer, and magnetometer.
- logging: (not implemented) data logging and streaming from the vehicle.
For more information see the API Overview in the Dronecode SDK Guide.
Instructions for how to use the library can be found in the SDK Guide.
Quick Links:
This project is licensed under the permissive BSD 3-clause, see LICENSE.md.