System software architecture#
To control the aircraft and the cameras, the software is architectured around many processes that finally translate commands into motor commands.
Air SDK allows you to load your own code into the drone. You will be able to access drone’s data, exchange messages with other processes, and communicate with the Mission UI.
Drone onboard software has three main customizable processes:
and one non customizable process:
There are three ways of exchanging data between the different processes:
Telemetry: to access data between processes through a shared memory. Data is classified into sections, each section contains a circular buffer of timestamped samples. Consumer can query data at a specific timestamp. Each section can refresh its data at a different rate.
Video: to access the video feeds from all the different cameras.
Flight supervisor contains most of the intelligence of the drone’s software. It handles commands received from the Mission UI and triggers the correct state machine accordingly. Flight supervisor also reacts to events from other components, like Guidance and Drone controller, and forwards them to the Mission UI.
A Flight mission can modify the state machine in Flight supervisor.
Guidance contains the algorithms to generate the drone and cameras trajectories. It is built around different modes, each one being responsible for a dedicated trajectory generation (takeoff, landing, manual flight, flightplan…). The state machine in Flight supervisor selects the right mode to use at any time. Each mode has access to the drone’s Telemetry and obstacle avoidance to execute the desired trajectory.
For some specific Flight mission, adding new Guidance modes may be required.
Services are specific computer programs that are required for specific guidance. Ex : Visual tracking is used by the followme Guidance mode. Services can be computer vision algorithms, neural networks, communication protocols… Services are run into a separated linux process. They communicate with Flight supervisor and Guidance via Telemetry and Messages.
For advanced Flight mission, adding new Services may be required.
Drone controller contains the algorithms of the autopilot. They make the drone fly. It is an infinite loop doing the following operations: