The MAVLink "microservices" define higher-level protocols that MAVLink systems can adopt in order to better inter-operate. For example, QGroundControl, ArduPilot and PX4 autopilots all share a common Command Protocol for sending point-to-point messages that require an acknowledgment.
The microservices are used to exchange many types of data, including: parameters, missions, trajectories, images, other files. If the data can be far larger than can be fit into a single message, services will define how the data is split and re-assembled, and how to ensure that any lost data is re-transmitted. Other services provide command acknowledgment and/or error reporting.
Most services use the client-server pattern, such that the GCS (client) initiates a request and the vehicle (server) responds with data.
The main microservices are shown in the sidebar (most are listed below):
- Heartbeat/Connection Protocol
- Mission Protocol
- Parameter Protocol
- Command Protocol
- Camera Protocol
- Gimbal Protocol
- Arm Authorization Protocol
- Image Transmission Protocol
- File Transfer Protocol (FTP)
- Landing Target Protocol
- Ping Protocol
- Path Planning Protocol (Trajectory Interface)
- Smart Battery Protocol
- Tunnel Protocol