The Dronecode SDK is a MAVLink Library for the PX4 flight stack, with APIs for C++, Python, Android, and iOS (coming soon).
The SDK is the best way to integrate with PX4 over MAVLink!
It is supported by Dronecode, ensuring that it is robust, well tested, and maintained.
The library provides a simple core C++ API for managing one or more vehicles, providing programmatic access to vehicle information and telemetry, and control over missions, movement and other operations.
Developers can extend the SDK using plugins in order to add any other required MAVLink API (for example, to integrate PX4 with custom cameras, gimbals, or other hardware over MAVLink).
The library can run on a vehicle-based companion computer or on a ground-based GCS or mobile device.
These devices have significantly more processing power that an ordinary flight controller, enabling tasks like computer vision, obstacle avoidance, and route planning.
The SDK is still in alpha development.
The core C++ API has been created and is (largely) stable.
Currently you can only develop in C++.
Cross-platform wrappers are being developed using gRPC and Reactive Extensions.
To use the SDK you will need to build the C++ library.
The Guide explains how to write SDK apps using C++.
A number complete examples can be found here.
The core library is written in C++, with auto-generated bindings for other supported programming languages.
The library is:
Straightforward and easy to use. It has an API that supports both synchronous (blocking) and asynchronous calls (using callbacks).
Fast, robust, and lightweight. Built to handle onboard usage with high rate messaging.
The main features provided by the core API are (in all programing languages):
Connect to and manage up to 255 vehicles via a TCP, UDP or serial connection.
Get information about vehicles (vendor, software versions, product versions etc.)
Get vehicle telemetry and state information (e.g. battery, GPS, RC connection, flight mode etc.) and set telemetry update rates.
Send commands to arm, disarm, kill, takeoff, land and return to launch.
Create and manage missions.
Control a camera and gimbal both inside and outside of missions.
Send commands to directly control vehicle movement.
Send commands to start sensor calibration.
See the FAQ for answers to common questions about the library.
DronecodeSDK is the main library class. API consumers use DronecodeSDK to discover and access vehicles (System objects), which in turn provide access to all other drone information and control objects (e.g. Telemetry, Mission etc.).
The Contributing section contains everything you need to contribute, including topics about building the SDK from source code, running our integration and unit tests, and all other aspects of core development.
The Dronecode SDK is licensed under the permissive BSD 3-clause.
This documentation is licensed under CC BY 4.0 license.