/udacidrone

An API for working with flying objects, simulated, unidentified, and otherwise.

Primary LanguagePython

Welcome to the UdaciDrone API!

CircleCI

Overview

This is the Udacity Drone Python API. It provides a protocol agnostic API for communicating with a quadcopter, be it in the simulators provided in the Flying Car Nanodegree Program or even some real drones.

The API is designed in two parts: a Drone class and a set of connection classes. The Drone class provides a representation of the physical or simulated drone and exposes the core API enabling interaction with the connected drone. The connection classes are protocol specific implementations of the abstract Connection class, enabling the Drone to be configured to communicate over several different protocols used with drones today.

For those looking to just dive right in to using the UdaciDrone API, check out our Getting Started guide.

Drone

The core element of the UdaciDrone API is the Drone class. This drone class is a representation of the physical or simulated drone you are connect to. Through this Drone class, you are able to retrieve state information and send various commands. Most importantly, Drone is communication protocol independent, which means any code you write interacting with Drone will work on any simulator or drone who's protocol has a Connection implementation!

For a detailed understanding of the Drone class, check out the detailed Drone documentation.

Connection

These set of classes contain implementations of specific communication protocols over which Drone can connect with a real drone or simulator.

Currently Supported Protocols

While the Drone API is designed to be protocol agnostic, in order to communicate with different types of drones, an implementation of each desired protocol needs to be built in the backend. Currently, UdaciDrone supports the following communication protocols:

This means that this API currently works with the Udacity Simulator any PX4 powered drone, and the crazyflie!.

For a detailed understanding of the Connection class, check out the detailed Connection documentation.

More Details

For more detailed documentation, check out our docs page.