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)")
}