Introduction#

Ground SDK provides APIs to control camera parameters, video recording and picture capture, so called camera APIs. The purpose of this camera guide is to present how to use these camera APIs.

Note that camera APIs don’t provide tools to control video streaming. See StreamServer peripheral for this.

Camera 1 vs Camera 2#

Depending on the drone model, cameras are controlled either with Camera1 or Camera2 APIs.

Drone

GroundSdk enum

Camera API Type

Anafi 4K

Drone.Model.anafi4k

Camera1

Anafi Thermal

Drone.Model.anafiThermal

Camera1

Anafi UA

Drone.Model.anafiUa

Camera1

Anafi USA

Drone.Model.anafiUsa

Camera1

Anafi AI

Drone.Model.anafi2

Camera2

Peripherals#

Camera APIs are provided via peripherals. The availability of these peripherals depends on drone models.

As shown in the following table, there are different camera peripherals to access to different camera types and camera API types.

Camera API Type

Peripheral

Camera Type

Camera1

mainCamera

Main front camera

thermalCamera

Thermal camera

blendedThermalCamera

Blended thermal camera

Camera2

mainCamera2

Main front camera

thermalCamera2

Thermal camera

A camera peripheral can be retrieved as follows:

// get camera peripheral for main front camera
let camera = drone.getPeripheral(Peripherals.mainCamera)
print("\(camera?.isActive)")

It is also possible to register a listener that will be notified when camera peripheral changes:

// get reference on camera peripheral for main front camera
let cameraRef = drone.getPeripheral(Peripherals.mainCamera) { camera in
    // called at every peripheral change
    print("\(camera?.isActive)")
}