DroneCore is an API and library for the PX4 flight stack using Mavlink.
It is written in C++ 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 next steps will be:
- Add Camera settings and actions interface.
- Add language bindings for Android, iOS, and Python
DroneCore currently takes care of the mavlink messaging using a UDP network connection to the drone. Connecting via TCP, or serial is planned but not implemeted yet.
The library provides both synchronous (blocking) API calls, as well as asynchronous API calls using callbacks.
API consumers use the DroneCore
class to discover and manage vehicles (Device
objects), which in turn provide access to all other drone information and control objects (e.g. Telemetry
, Mission
etc.).
The links below take you to the respective header files:
- dronecore: set up connection, discover devices
- device: a device providing access to modules below using ...
- device_plugin_container.h.in which is auto-generated on build.
- 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
- follow_me: drone tracks a position supplied by DroneCore.
- logging: (not implemented) data logging and streaming from the vehicle.
For more information see the API Overview in the DroneCore Guide.
Instructions for how to use the library can be found in the DroneCore Guide.
Quick Links:
The DroneCore project is licensed under the permissive BSD 3-clause, see LICENSE.md.
See AUTHORS.md.