DJI Mobile SDK Documentation

      class DJIGimbal

      @interface DJIGimbal : DJIBaseComponent
      Header:DJIGimbal.h
      Inherits From:DJIBaseComponent
      SDK Key:DJIGimbalKey.DJIGimbalComponent
      Description:

      This class provides multiple methods to control the gimbal. These include setting the gimbal work mode, rotating the gimbal with angle, starting the gimbal auto calibration, etc. This object is available from the DJIAircraft or DJIHandheld object which is a subclass of DJIBaseProduct.

      Class Members:

      State Updates

      General
      property
      property delegate
      @property(nonatomic, weak) id<DJIGimbalDelegate> delegate
      Header:DJIGimbal.h
      Description:

      Returns the delegate of DJIGimbal.

      See Also:

      DJIGimbalDelegate


      Information

      Gimbal Capability
      property
      property capabilities
      @property(nonatomic, readonly) NSDictionary *_Nonnull capabilities
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamCapabilities
      Description:

      Returns the gimbal's features and possible range of settings. Each dictionary key is a possible gimbal feature and uses the DJIGimbalParam prefix. The value for each key is an instance of DJIParamCapability or its sub-classes. The isSupported property can be used to query if a feature is supported by the gimbal and the min and max properties of DJIParamCapabilityMinMax can be used to query the valid range for the setting. When a feature is not supported, the values for min and max are undefined.


      Operation Mode

      Set Work Mode
      method
      method setMode:withCompletion
      - (void)setMode:(DJIGimbalMode)mode
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMode
      Description:

      Sets the gimbal's work mode. See enum DJIGimbalMode for modes.

      Input Parameters:
      DJIGimbalMode modeGimbal work mode to be set.
      DJICompletionBlock completionRemote execution result error block.
      Reset Gimbal
      method
      method resetWithCompletion
      - (void)resetWithCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamReset
      Description:

      Resets the gimbal. The behaviors are product-dependent. Osmo series (e.g. Osmo, Osmo Pro): The gimbal's pitch and yaw will be set to the origin, which is the standard position for the gimbal. Phantom series (e.g. Phantom 3 Professional, Phantom 4 series): The first call sets gimbal to point down vertically to the earth. The second call sets gimbal to the standard position. Other products (e.g. Inspire 1): Only the gimbal's pitch will the set to the origin.

      Input Parameters:
      DJICompletionBlock completionRemote execution result error block.


      Moving the Gimbal

      method rotateWithRotation:completion
      - (void)rotateWithRotation:(DJIGimbalRotation *)rotation
      completion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamRotate
      Description:

      Rotate gimbal's pitch, roll, and yaw with DJIGimbalRotation. For X5S, X4S and X7, rotating the gimbal with mode DJIGimbalRotationModeRelativeAngle or DJIGimbalRotationModeAbsoluteAngle, will reset the gimbal mode to DJIGimbalModeFree.

      Input Parameters:
      DJIGimbalRotation * rotationAn instance of DJIGimbalRotation.
      DJICompletionBlock completionCompletion block.


      Calibration

      method startCalibrationWithCompletion
      - (void)startCalibrationWithCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamStartCalibration
      Description:

      Starts calibrating the gimbal. The product should be stationary (not flying, or being held) and horizontal during calibration. For gimbal's with adjustable payloads, the payload should be present and balanced before doing a calibration. For Osmo Mobile series, user should double-click the trigger (or mode button on Osmo Mobile 2) or restart the device to re-center the gimbal after the calibration.

      Input Parameters:
      DJICompletionBlock completionRemote execution result error block.
      method fineTuneRollInDegrees:withCompletion
      - (void)fineTuneRollInDegrees:(float)offset withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamFineTuneRollInDegrees
      Description:

      The gimbal roll can be fine tuned with a custom offset. The range for the custom offset is [-2.0, 2.0] degrees. If the offset is negative, the gimbal will be fine tuned the specified number of degrees in the counterclockwise direction.

      Input Parameters:
      float offsetFine-tuned offset, in degrees, to be tuned.
      DJICompletionBlock completionCompletion block.
      method fineTunePitchInDegrees:withCompletion
      - (void)fineTunePitchInDegrees:(float)offset withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      Description:

      The gimbal pitch can be fine tuned with a custom offset. The range for the custom offset is [-2.0, 2.0] degrees. If the offset is negative, the gimbal will be fine tuned the specified number of degrees in the counterclockwise direction. It is only supported by Spark and Mavic 2 Series.

      Input Parameters:
      float offsetFine-tuned offset, in degrees, to be tuned.
      DJICompletionBlock completionCompletion block.
      method fineTuneYawInDegrees:withCompletion
      - (void)fineTuneYawInDegrees:(float)offset withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      Description:

      The gimbal yaw can be fine tuned with a custom offset. The range for the custom offset is [-2.0, 2.0] degrees. If the offset is negative, the gimbal will be fine tuned the specified number of degrees in the counterclockwise direction. It is only supported by Mavic Air and Mavic 2 Series.

      Input Parameters:
      float offsetFine-tuned offset, in degrees, to be tuned.
      DJICompletionBlock completionCompletion block.
      method startBalanceTestWithCompletion
      - (void)startBalanceTestWithCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamStartBalanceTest
      Description:

      Starts testing the balance of the gimbal payload. For gimbals that allow payloads to be changed, a balance test should be performed to ensure the camera is mounted correctly. The product should be stationary (not flying, or being held) and horizontal during testing. See DJIGimbalState for the test result.

      Input Parameters:
      DJICompletionBlock completionCompletion block that receives the execution result. The completion block will return when the balance test is successfully started.


      Movement Setting

      Gimbal Movement Setting
      method
      method setMovementSettingsProfile:withCompletion
      - (void)setMovementSettingsProfile:(DJIGimbalMovementSettingsProfile)profile
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMovementSettingsProfile
      Description:

      Sets the movement settings profile. The movement settings profile has options for both preset and custom profiles for SmoothTrack and Controller settings. Settings for SmoothTrack and Controller can only be set manually when using a custom profile.

      Input Parameters:
      DJIGimbalMovementSettingsProfile profileProfile to set.
      DJICompletionBlock completionCompletion block that receives the execution result.
      method getMovementSettingsProfileWithCompletion
      - (void)getMovementSettingsProfileWithCompletion:(void (^_Nonnull)(DJIGimbalMovementSettingsProfile profile,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMovementSettingsProfile
      Description:

      Gets the advanced settings profile. Use DJIGimbalMovementSettingsProfile to check if it is supported by the gimbal.

      Input Parameters:
      DJIGimbalMovementSettingsProfile profileThe advanced settings profile.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJIGimbalMovementSettingsProfile profile, NSError *_Nullable error) completionCompletion block that receives the execution result.
      Load Factory Settings
      method
      method restoreFactorySettings
      - (void)restoreFactorySettings:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamRestoreFactorySettings
      Description:

      Restores the gimbal's settings to factory settings.

      Input Parameters:
      DJICompletionBlock completionThe completion block that receives execution result.


      Range Extension

      Enable Pitch Range Extension
      method
      method setPitchRangeExtensionEnabled:withCompletion
      - (void)setPitchRangeExtensionEnabled:(BOOL)isEnabled
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchRangeExtensionEnabled
      Description:

      Extends the pitch range of gimbal. If extended, the gimbal's pitch control range can be [-30, 90], otherwise, it's [0, 90]. Use DJIGimbalParamPitchRangeExtensionEnabled to check if it is supported by the gimbal.

      Input Parameters:
      BOOL isEnabledWhether the pitch range should be extended
      DJICompletionBlock completionThe completion block that receives execution result.
      method getPitchRangeExtensionEnabledWithCompletion
      - (void)getPitchRangeExtensionEnabledWithCompletion:(void (^_Nonnull)(BOOL isExtended,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchRangeExtensionEnabled
      Description:

      Get the extend gimbal pitch range state. Use DJIGimbalParamPitchRangeExtensionEnabled to check if it is supported by the gimbal.

      Input Parameters:
      BOOL isExtendedWhether the pitch range should be extended.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL isExtended, NSError *_Nullable error) completionThe completion block that receives execution result.


      Motor Control Configuration

      method applyMotorControlPreset:withCompletion
      - (void)applyMotorControlPreset:(DJIGimbalMotorControlPreset)preset
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamApplyMotorControlPreset
      Description:

      Configures gimbal's motor control with a preset configuration applicable for most popular cameras. In order to the optimize the performance, motor control tuning is still required.

      Input Parameters:
      DJIGimbalMotorControlPreset presetThe preset configuration to set.
      DJICompletionBlock completionThe completion block that receives execution result.
      method setMotorControlStiffness:onAxis:withCompletion
      - (void)setMotorControlStiffness:(NSInteger)stiffness
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawMotorControlStiffness, DJIGimbalKey.DJIGimbalParamPitchMotorControlStiffness, DJIGimbalKey.DJIGimbalParamRollMotorControlStiffness
      Description:

      Sets the coefficient of speed error control. It can be seen as the coefficient for the proportional term in the PID controller. Use DJIGimbalParamPitchMotorControlStiffness, DJIGimbalParamYawMotorControlStiffness and DJIGimbalParamRollMotorControlStiffness with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger stiffnessThe stiffness value to set.
      DJIGimbalAxis axisThe axis that the setting is applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getMotorControlStiffnessOnAxis:withCompletion
      - (void)getMotorControlStiffnessOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger stiffness,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawMotorControlStiffness, DJIGimbalKey.DJIGimbalParamPitchMotorControlStiffness, DJIGimbalKey.DJIGimbalParamRollMotorControlStiffness
      Description:

      Gets the coefficient of speed error control. It can be seen as the coefficient for the proportional term in the PID controller. Use DJIGimbalParamPitchMotorControlStiffness, DJIGimbalParamYawMotorControlStiffness and DJIGimbalParamRollMotorControlStiffness with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger stiffnessThe proportional term in the PID controller.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger stiffness, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setMotorControlStrength:onAxis:withCompletion
      - (void)setMotorControlStrength:(NSInteger)strength
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawMotorControlStrength, DJIGimbalKey.DJIGimbalParamPitchMotorControlStrength, DJIGimbalKey.DJIGimbalParamRollMotorControlStrength
      Description:

      Sets the coefficient of attitude accuracy control. It can be seen as the coefficient for the integral term in the PID controller. Use DJIGimbalParamPitchMotorControlStrength, DJIGimbalParamYawMotorControlStrength and DJIGimbalParamRollMotorControlStrength with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger strengthThe strength value to set.
      DJIGimbalAxis axisThe axis that the setting is applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getMotorControlStrengthOnAxis:withCompletion
      - (void)getMotorControlStrengthOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger strength,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawMotorControlStrength, DJIGimbalKey.DJIGimbalParamPitchMotorControlStrength, DJIGimbalKey.DJIGimbalParamRollMotorControlStrength
      Description:

      Gets the coefficient of attitude accuracy control. It can be seen as the coefficient for the integral term in the PID controller. Use DJIGimbalParamPitchMotorControlStrength, DJIGimbalParamYawMotorControlStrength and DJIGimbalParamRollMotorControlStrength with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger strengthThe strength value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger strength, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setMotorControlGyroFilteringFactor:onAxis:withCompletion
      - (void)setMotorControlGyroFilteringFactor:(NSInteger)filteringFactor
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchMotorControlGyroFilteringFactor, DJIGimbalKey.DJIGimbalParamRollMotorControlGyroFilteringFactor, DJIGimbalKey.DJIGimbalParamYawMotorControlGyroFilteringFactor
      Description:

      Sets the coefficient of denoising the output. Use DJIGimbalParamPitchMotorControlGyroFilteringFactor, DJIGimbalParamYawMotorControlGyroFilteringFactor and DJIGimbalParamRollMotorControlGyroFilteringFactor with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger filteringFactorThe gyro filtering value to set.
      DJIGimbalAxis axisThe axis that the setting is applied to.
      DJICompletionBlock completionAsynchronous execution result.
      method getMotorControlGyroFilteringFactorOnAxis:withCompletion
      - (void)getMotorControlGyroFilteringFactorOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger filteringFactor,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchMotorControlGyroFilteringFactor, DJIGimbalKey.DJIGimbalParamRollMotorControlGyroFilteringFactor, DJIGimbalKey.DJIGimbalParamYawMotorControlGyroFilteringFactor
      Description:

      Gets the coefficient of denoising the output. Use DJIGimbalParamPitchMotorControlGyroFilteringFactor, DJIGimbalParamYawMotorControlGyroFilteringFactor and DJIGimbalParamRollMotorControlGyroFilteringFactor with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger filteringFactorThe smoothing factor.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger filteringFactor, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setMotorControlPreControl:onAxis:withCompletion
      - (void)setMotorControlPreControl:(NSInteger)preControl
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchMotorControlPreControl, DJIGimbalKey.DJIGimbalParamRollMotorControlPreControl, DJIGimbalKey.DJIGimbalParamYawMotorControlPreControl
      Description:

      Sets the value for pre-adjust. It can be seen as the coefficient for the derivative term in the PID controller. Use DJIGimbalParamPitchMotorControlPreControl, DJIGimbalParamYawMotorControlPreControl and DJIGimbalParamRollMotorControlPreControl with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis that the setting is applied to.
      NSInteger preControlThe Precontrol value to set.
      DJICompletionBlock completionAsynchronous execution result.
      method getMotorControlPreControlOnAxis:withCompletion
      - (void)getMotorControlPreControlOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger preControl,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchMotorControlPreControl, DJIGimbalKey.DJIGimbalParamRollMotorControlPreControl, DJIGimbalKey.DJIGimbalParamYawMotorControlPreControl
      Description:

      Gets the value for pre-adjust. It can be seen as the coefficient for the derivative term in the PID controller. Only supported by Ronin-MX. Use DJIGimbalParamPitchMotorControlPreControl, DJIGimbalParamYawMotorControlPreControl and DJIGimbalParamRollMotorControlPreControl with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger preControlThe derivative term in the PID controller.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger preControl, NSError *_Nullable error) completionThe completion block that receives execution result.


      Controller Setting

      method setControllerDeadband:onAxis:withCompletion
      - (void)setControllerDeadband:(NSInteger)deadband
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerDeadband, DJIGimbalKey.DJIGimbalParamPitchControllerDeadband
      Description:

      Sets physical controller (e.g. the joystick on Osmo or the remote controller of the aircraft) deadband on an axis. A larger deadband requires more controller movement to start gimbal motion. Use DJIGimbalParamYawControllerDeadband and DJIGimbalParamPitchControllerDeadband with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger deadbandThe deadband value to be set.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getControllerDeadbandOnAxis:withCompletion
      - (void)getControllerDeadbandOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger deadband,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerDeadband, DJIGimbalKey.DJIGimbalParamPitchControllerDeadband
      Description:

      Gets physical controller deadband value on an axis. A larger deadband requires more controller movement to start gimbal motion. Use DJIGimbalParamYawControllerDeadband and DJIGimbalParamPitchControllerDeadband with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger deadbandThe deadband value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger deadband, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setControllerSpeedCoefficient:onAxis:withCompletion
      - (void)setControllerSpeedCoefficient:(NSInteger)speedCoefficient
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerSpeedCoefficient, DJIGimbalKey.DJIGimbalParamPitchControllerSpeedCoefficient
      Description:

      Sets physical controller (e.g. the joystick on Osmo or the remote controller of the aircraft) speed on an axis. Speed setting controls the mapping between the movement of the controller and the gimbal speed. Use DJIGimbalParamYawControllerSpeedCoefficient and DJIGimbalParamPitchControllerSpeedCoefficient with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger speedCoefficientThe speed value to be set.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionAsynchronous execution result.
      method getControllerSpeedCoefficientOnAxis:withCompletion
      - (void)getControllerSpeedCoefficientOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger speedCoefficient,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerSpeedCoefficient, DJIGimbalKey.DJIGimbalParamPitchControllerSpeedCoefficient
      Description:

      Gets physical controller speed value on an axis. Speed setting controls the mapping between the movement of the controller and the gimbal speed. Use DJIGimbalParamYawControllerSpeedCoefficient and DJIGimbalParamPitchControllerSpeedCoefficient with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger speedCoefficientThe coefficient value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger speedCoefficient, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setControllerSmoothingFactor:onAxis:withCompletion
      - (void)setControllerSmoothingFactor:(NSInteger)smoothingFactor
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerSmoothingFactor, DJIGimbalKey.DJIGimbalParamPitchControllerSmoothingFactor
      Description:

      Sets physical controller (e.g. the joystick on Osmo or the remote controller of the aircraft) smoothing on an axis. Smoothing controls the deceleration of the gimbal. Use DJIGimbalParamYawControllerSmoothingFactor and DJIGimbalParamPitchControllerSmoothingFactor with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger smoothingFactorThe smoothing value to be set.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getControllerSmoothingFactorOnAxis:withCompletion
      - (void)getControllerSmoothingFactorOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger smoothingFactor,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawControllerSmoothingFactor, DJIGimbalKey.DJIGimbalParamPitchControllerSmoothingFactor
      Description:

      Gets physical controller smoothing value on an axis. Smoothing controls the deceleration of the gimbal. Use DJIGimbalParamYawControllerSmoothingFactor and DJIGimbalParamPitchControllerSmoothingFactor with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger smoothingFactorThe smoothing value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger smoothingFactor, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setControllerMaxSpeed:onAxis:withCompletion
      - (void)setControllerMaxSpeed:(NSInteger)maxSpeed onAxis:(DJIGimbalAxis)axis withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      Description:

      Gets physical controller max speed value on an axis. It controls the mapping between the movement of the controller and the gimbal speed. Use DJIGimbalParamPitchControllerMaxSpeed and DJIGimbalParamYawControllerMaxSpeed with "capabilities" to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger maxSpeedThe maximum speed to set for one axis.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getControllerMaxSpeedOnAxis:withCompletion
      - (void)getControllerMaxSpeedOnAxis:(DJIGimbalAxis)axis withCompletion:(void (^_Nonnull)(NSInteger maxSpeed,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      Description:

      Gets physical controller max speed value on an axis. It controls the mapping between the movement of the controller and the gimbal speed. Use DJIGimbalParamPitchControllerMaxSpeed and DJIGimbalParamYawControllerMaxSpeed with "capabilities" to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger maxSpeedThe maximum speed of the axis.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger maxSpeed, NSError *_Nullable error) completionThe completion block that receives execution result.


      Smooth Track Setting

      method setSmoothTrackEnabled:onAxis:withCompletion
      - (void)setSmoothTrackEnabled:(BOOL)enabled
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackEnabled, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackEnabled
      Description:

      Enables SmoothTrack for the axis. Only supported by Osmo. Ronin-MX supports SmoothTrack but it is always enabled for both pitch axis and yaw axis. Use DJIGimbalParamPitchSmoothTrackEnabled and DJIGimbalParamYawSmoothTrackEnabled with capabilities to check if the gimbal supports this feature.

      Input Parameters:
      BOOL enabledYES to enable SmoothTrack on the axis.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getSmoothTrackEnabledOnAxis:withCompletion
      - (void)getSmoothTrackEnabledOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(BOOL isEnabled,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackEnabled, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackEnabled
      Description:

      Gets whether an axis has SmoothTrack enabled. Only supported by Osmo. Ronin-MX supports SmoothTrack but it is always enabled for both pitch axis and yaw axis. Use DJIGimbalParamPitchSmoothTrackEnabled and DJIGimbalParamYawSmoothTrackEnabled with capabilities to check if the gimbal supports this feature.

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      BOOL isEnabledYES if smooth track enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL isEnabled, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setSmoothTrackSpeed:onAxis:withCompletion
      - (void)setSmoothTrackSpeed:(NSInteger)speed
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackSpeed, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackSpeed
      Description:

      Sets gimbal SmoothTrack catch up speed on an axis. SmoothTrack speed determines how fast the gimbal will catch up with a large, translated handle movement. Use DJIGimbalParamPitchSmoothTrackSpeed and DJIGimbalParamYawSmoothTrackSpeed with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger speedSmoothTrack speed [0,100].
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getSmoothTrackSpeedOnAxis:withCompletion
      - (void)getSmoothTrackSpeedOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger speed,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackSpeed, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackSpeed
      Description:

      Gets gimbal SmoothTrack speed on an axis. SmoothTrack speed determines how fast the gimbal will catch up with a large, translated handle movement. Use DJIGimbalParamPitchSmoothTrackSpeed and DJIGimbalParamYawSmoothTrackSpeed with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      NSInteger speedThe gimbal smoothTrack speed.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger speed, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setSmoothTrackDeadband:onAxis:withCompletion
      - (void)setSmoothTrackDeadband:(NSInteger)deadband
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackDeadband, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackDeadband
      Description:

      Sets SmoothTrack deadband on an axis. A larger deadband requires more handle movement to translate into gimbal motion. Use DJIGimbalParamPitchSmoothTrackDeadband and DJIGimbalParamYawSmoothTrackDeadband with capabilities to check if the gimbal supports this feature and the range of possible values in degrees.

      Input Parameters:
      NSInteger deadbandSmoothTrack deadband [0,90].
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getSmoothTrackDeadbandOnAxis:withCompletion
      - (void)getSmoothTrackDeadbandOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger deadband,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackDeadband, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackDeadband
      Description:

      Gets SmoothTrack deadband on an axis. A larger deadband requires more handle movement to translate into gimbal motion. Use DJIGimbalParamPitchSmoothTrackDeadband and DJIGimbalParamYawSmoothTrackDeadband with capabilities to check if the gimbal supports this feature and the range of possible values in degrees.

      Input Parameters:
      DJIGimbalAxis axisGimbal axis.
      NSInteger deadbandThe deadband value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger deadband, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setSmoothTrackAcceleration:onAxis:withCompletion
      - (void)setSmoothTrackAcceleration:(NSInteger)acceleration
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackAcceleration, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackAcceleration
      Description:

      Sets SmoothTrack acceleration on an axis. Acceleration determines how closely the camera will follow the translated yaw handle movement. Use DJIGimbalParamPitchSmoothTrackAcceleration and DJIGimbalParamYawSmoothTrackAcceleration with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      NSInteger accelerationSmoothTrack acceleration [0,30].
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getSmoothTrackAccelerationOnAxis:withCompletion
      - (void)getSmoothTrackAccelerationOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(NSInteger acceleration,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawSmoothTrackAcceleration, DJIGimbalKey.DJIGimbalParamPitchSmoothTrackAcceleration
      Description:

      Gets SmoothTrack acceleration on an axis. Acceleration determines how closely the camera will follow the translated yaw handle movement. Use DJIGimbalParamPitchSmoothTrackAcceleration and DJIGimbalParamYawSmoothTrackAcceleration with capabilities to check if the gimbal supports this feature and the range of possible values (unitless).

      Input Parameters:
      DJIGimbalAxis axisGimbal axis.
      NSInteger accelerationThe acceleration value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger acceleration, NSError *_Nullable error) completionThe completion block that receives execution result.


      Endpoint Setting

      method setEndpoint:forDirection:withCompletion
      - (void)setEndpoint:(NSInteger)endpoint
      forDirection:(DJIGimbalEndpointDirection)direction
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchUpEndpoint, DJIGimbalKey.DJIGimbalParamPitchDownEndpoint, DJIGimbalKey.DJIGimbalParamYawLeftEndpoint, DJIGimbalKey.DJIGimbalParamYawRightEndpoint
      Description:

      Endpoint settings determine the farthest points to which the gimbal will rotate during manual controller input. Only supported by Ronin-MX. Use DJIGimbalParamPitchUpEndpoint, DJIGimbalParamPitchDownEndpoint, DJIGimbalParamYawLeftEndpoint and DJIGimbalParamYawRightEndpoint in capabilities to check if the gimbal supports this feature and what the valid range of endpoints are.

      Input Parameters:
      NSInteger endpointThe endpoint value to set.
      DJIGimbalEndpointDirection directionThe direction that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getEndpointForDirection:withCompletion
      - (void)getEndpointForDirection:(DJIGimbalEndpointDirection)direction
      withCompletion:(void (^_Nonnull)(NSInteger endpoint,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamPitchUpEndpoint, DJIGimbalKey.DJIGimbalParamPitchDownEndpoint, DJIGimbalKey.DJIGimbalParamYawLeftEndpoint, DJIGimbalKey.DJIGimbalParamYawRightEndpoint
      Description:

      Gets the farthest points to which the gimbal will rotate during manual controller input. Use DJIGimbalParamPitchUpEndpoint, DJIGimbalParamPitchDownEndpoint, DJIGimbalParamYawLeftEndpoint and DJIGimbalParamYawRightEndpoint with capabilities to check if the gimbal supports this feature.

      Input Parameters:
      DJIGimbalEndpointDirection directionThe endpoint direction.
      NSInteger endpointThe endpoint value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger endpoint, NSError *_Nullable error) completionThe completion block that receives execution result.


      Other Settings

      method setMotorEnabled:withCompletion
      - (void)setMotorEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMotorEnabled
      Description:

      Turns on and off the gimbal motors. NO means the gimbal power remains on, however the motors will not work.

      Input Parameters:
      BOOL enabledYES to enable the motor.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getMotorEnabledWithCompletion
      - (void)getMotorEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMotorEnabled
      Description:

      Determines whether the gimbal motors are enabled to work or not.

      Input Parameters:
      BOOL enabledThe enabled value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionThe completion block that receives execution result.
      Toggle Gimbal Selfie
      method
      method toggleSelfieWithCompletion
      - (void)toggleSelfieWithCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamToggleSelfie
      Description:

      Resets gimbal position to selfie setup. If the gimbal yaw is not at 180 degrees, then calling this method will rotate the gimbal yaw to 180 degrees (effectively pointing the camera to the person holding the gimbal). If the gimbal yaw is at 180 degrees, then the gimbal will rotate in yaw to 0 degrees. It's only supported by DJI OSMO, OSMO Pro and OSMO Raw.

      Input Parameters:
      DJICompletionBlock completionThe completion block that receives execution result.
      Gimbal Controller Mode
      method
      method setStickControllerMode:withCompletion
      - (void)setStickControllerMode:(DJIHandheldControllerStickControlMode)mode
      withCompletion:(DJICompletionBlock)completion
      Header:DJIHandheldController.h
      SDK Key:DJIGimbalKey.DJIGimbalParamStickControlMode
      Description:

      Sets the gimbal's controller mode. The control mode for the gimbal controller (joystick for Osmo). The total controller deflection is a combination of horizontal and vertical deflection. This translates to gimbal movement around the yaw and pitch axes. The gimbal can be set to either move in both yaw and pitch simultaneously based on horizontal and vertical deflection of the controller, or move in only yaw or pitch exclusively based on whether horizontal or vertical deflection is larger.

      Input Parameters:
      DJIHandheldControllerStickControlMode modeThe stick control mode to set.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getStickControllerModeWithCompletion
      - (void)getStickControllerModeWithCompletion:(void (^_Nonnull)(DJIHandheldControllerStickControlMode mode,
      NSError *_Nullable error))completion
      Header:DJIHandheldController.h
      SDK Key:DJIGimbalKey.DJIGimbalParamStickControlMode
      Description:

      Gets the gimbal's controller mode.

      Input Parameters:
      DJIHandheldControllerStickControlMode modeThe gimbal controller mode.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJIHandheldControllerStickControlMode mode, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setInvertedControlEnabled:onAxis:withCompletion
      - (void)setInvertedControlEnabled:(BOOL)enabled
      onAxis:(DJIGimbalAxis)axis
      withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawInvertedControlEnabled, DJIGimbalKey.DJIGimbalParamPitchInvertedControlEnabled
      Description:

      Inverts the physical control for gimbal movement on an axis. The setting can only be applied to the pitch or yaw axis.

      Input Parameters:
      BOOL enabledYES to enable inverted control.
      DJIGimbalAxis axisThe axis that the setting will be applied to.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getInvertedControlEnabledOnAxis:withCompletion
      -(void)getInvertedControlEnabledOnAxis:(DJIGimbalAxis)axis
      withCompletion:(void (^_Nonnull)(BOOL enabled,
      NSError *_Nullable error))completion
      Header:DJIGimbal.h
      SDK Key:DJIGimbalKey.DJIGimbalParamYawInvertedControlEnabled, DJIGimbalKey.DJIGimbalParamPitchInvertedControlEnabled
      Description:

      Determines whether the physical control is inverted for gimbal movement on an axis. The setting can only be applied to the pitch or yaw axis.

      Input Parameters:
      DJIGimbalAxis axisThe axis to query.
      BOOL enabledThe enabled value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setAttitudeSynchronizationEnabled:withCompletion
      - (void)setAttitudeSynchronizationEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      Description:

      Synchronizes the attitude of port (left) gimbal and starboard (right) gimbal. It is only valid when both gimbals are connected. If only 1 gimbal is connected, this setting will be reset to NO. Enables this setting will reset getControllingGimbalIndexWithCompletion to index 0. It is only supported by M210 and M210 RTK.

      Input Parameters:
      BOOL enabledYES to enable the synchronization.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getAttitudeSynchronizationEnabledWithCompletion
      - (void)getAttitudeSynchronizationEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIGimbal.h
      Description:

      Determines whether both gimbals' attitudes are synchronized. If only 1 gimbal is connected, this setting will be reset to NO. It is only supported by M210 and M210 RTK.

      Input Parameters:
      BOOL enabledYES to enable the synchronization.
      NSError *_Nullable errorThe encountered error if any.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionThe completion block that receives execution result.
      method setYawSimultaneousFollowEnabled:withCompletion
      - (void)setYawSimultaneousFollowEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIGimbal.h
      Description:

      Enables this to make the gimbal respond to the controller command to rotate aircraft's heading. Enabling this setting makes gimbal rotate simultaneously with aircraft's heading when the user is controlling the aircraft's heading with the remote controller.

      Input Parameters:
      BOOL enabledYES to enable yaw simultaneous follow.
      DJICompletionBlock completionThe completion block that receives execution result.
      method getYawSimultaneousFollowEnabledWithCompletion
      - (void)getYawSimultaneousFollowEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIGimbal.h
      Description:

      Determines whether yaw simultaneous follow is enabled. Enabling this setting makes gimbal rotate simultaneously with aircraft's heading when the user is controlling the aircraft's heading with the remote controller.

      Input Parameters:
      BOOL enabledYES if it is enabled.
      NSError *_Nullable errorThe encountered error if any.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionThe completion block that receives execution result.


      General
      class
      struct DJIGimbalAttitude
      typedef struct
      {
      float pitch;
      float roll;
      float yaw;
      } DJIGimbalAttitude
      Header:DJIGimbalBaseTypes.h
      SDK Key:DJIGimbalKey.DJIGimbalParamAttitudeInDegrees
      Description:

      The gimbal's attitude in degrees relative to the aircraft.

      Struct Members:
      float pitchPitch value in degrees.
      float rollRoll value in degrees.
      float yawYaw value in degrees.
      enum DJIGimbalAxis
      typedef NS_ENUM (uint8_t, DJIGimbalAxis)
      Header:DJIGimbalBaseTypes.h
      Description:

      Gimbal Axis.

      Enum Members:
      DJIGimbalAxisYawGimbal's yaw axis.
      DJIGimbalAxisPitchGimbal's pitch axis.
      DJIGimbalAxisRollGimbal's roll axis.
      enum DJIGimbalMode
      typedef NS_ENUM (uint8_t, DJIGimbalMode)
      Header:DJIGimbalBaseTypes.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMode
      Description:

      Gimbal work modes.

      Enum Members:
      DJIGimbalModeFreeThe gimbal can move independently of the aircraft's yaw. In this mode, even if the aircraft yaw changes, the camera will continue pointing in the same world direction. This mode is only available for the Ronin-MX when the M600 or M600 Pro landing gear is retracted.
      DJIGimbalModeFPVThe gimbal's work mode is FPV mode. In this mode, the gimbal yaw will follow the aircraft's heading, and the gimbal roll will follow the RC's roll channel value. The pitch will be available to move. This mode is only available for the Ronin-MX when the M600 landing gear is retracted.
      DJIGimbalModeYawFollowThe gimbal's work mode is such that it will follow the yaw. In this mode, the gimbal yaw will be fixed, while pitch and roll will be available to move.
      DJIGimbalModeUnknownThe gimbal's work mode is unknown.
      enum DJIGimbalBalanceTestResult
      typedef NS_ENUM (uint8_t, DJIGimbalBalanceTestResult)
      Header:DJIGimbalBaseTypes.h
      Description:

      For gimbals that allow payloads to be changed, a balance test should be performed to ensure the camera is mounted correctly.

      Enum Members:
      DJIGimbalBalanceTestResultPassThe balance test result is great.
      DJIGimbalBalanceTestResultMarginalThe balance test result is good. When this result is returned, it is possible there was some noise in the balance measurement. For best results, it is recommended to run the balance test again and adjust the payload position until the result becomes great.
      DJIGimbalBalanceTestResultFailThe balance test result is bad. The payload should be adjusted when this result is returned.
      DJIGimbalBalanceTestResultUnknownThe balance test result is unknown.
      enum DJIGimbalMovementSettingsProfile
      typedef NS_ENUM (uint8_t, DJIGimbalMovementSettingsProfile)
      Header:DJIGimbalBaseTypes.h
      SDK Key:DJIGimbalKey.DJIGimbalParamMovementSettingsProfile
      Description:

      The Movement Settings Profile contains presets for SmoothTrack and the Physical Controller sensitivity. SmoothTrack and Controller settings can only be manually changed if Custom1 or Custom2 profiles are selected.

      Enum Members:
      DJIGimbalMovementSettingsProfileFastThe gimbal's SmoothTrack and Controller sensitivity is high. When the gimbal is using this profile, user cannot change the Movement Settings manually.
      DJIGimbalMovementSettingsProfileMediumThe gimbal's SmoothTrack and Controller sensitivity is medium. When the gimbal is using this profile, user cannot change the Movement Settings manually.
      DJIGimbalMovementSettingsProfileSlowThe gimbal's SmoothTrack and Controller sensitivity is slow. When the gimbal is using this profile, user cannot change the Movement Settings manually.
      DJIGimbalMovementSettingsProfileCustom1The gimbal uses a custom configuration in memory slot 1 where the yaw and pitch speed, deadband, and acceleration can be defined.
      DJIGimbalMovementSettingsProfileCustom2The gimbal uses a custom configuration in memory slot 2 where the yaw and pitch speed, deadband, and acceleration can be defined.
      DJIGimbalMovementSettingsProfileUnknownThe gimbal's user config type is unknown.
      enum DJIGimbalMotorControlPreset
      typedef NS_ENUM (uint8_t, DJIGimbalMotorControlPreset)
      Header:DJIGimbalBaseTypes.h
      Description:

      For gimbals that allow payloads to be changed, the motor control configuration can be used to optimize gimbal performance for the different payloads.

      Enum Members:
      DJIGimbalMotorControlPresetREDThe gimbal's motor control configuration is optimized for RED cameras.
      DJIGimbalMotorControlPresetDSLRThe gimbal's motor control configuration is optimized for most DSLR cameras.
      DJIGimbalMotorControlPresetMirrorlessThe gimbal's motor control configuration is optimized for most mirrorless cameras.
      enum DJIGimbalEndpointDirection
      typedef NS_ENUM (uint8_t, DJIGimbalEndpointDirection)
      Header:DJIGimbalBaseTypes.h
      Description:

      Gimbal endpoint setting.

      Enum Members:
      DJIGimbalEndpointDirectionPitchUpPitch (also called tilt) endpoint setting in the upwards direction.
      DJIGimbalEndpointDirectionPitchDownPitch (also called tilt) endpoint setting in the downwards direction.
      DJIGimbalEndpointDirectionYawLeftYaw (also called pan) endpoint setting in the left direction.
      DJIGimbalEndpointDirectionYawRightYaw (also called pan) endpoint setting in the right direction.
      enum DJIGimbalBalanceState
      typedef NS_ENUM (uint8_t, DJIGimbalBalanceState)
      Header:DJIGimbalBaseTypes.h
      Description:

      The loading balance status of the gimbal. The gimbal loading is changeable for Osmo Mobile. When the mounted mobile device is changed, in order to optimize the gimbal performance, user can adjust the gimbal physically based on the status.

      Enum Members:
      DJIGimbalBalanceStateBalancedThe gimbal is balanced.
      DJIGimbalBalanceStateTiltingLeftThe gimbal is tilting left. Adjust the photo to the right hand side to balance the gimbal.
      DJIGimbalBalanceStateTiltingRightThe gimbal is tilting right. Adjust the photo to the left hand side to balance the gimbal.
      DJIGimbalBalanceStateUnknownThe balance status is unknown.
      State Updates
      protocol
      protocol DJIGimbalDelegate
      @protocol DJIGimbalDelegate <NSObject>
      Header:DJIGimbal.h
      Inherits From:NSObject
      Description:

      This protocol provides delegate methods to receive the updated state and user configuration.

      Protocol Methods:

      Protocol Method

      method gimbal:didUpdateState
      @optional
      - (void)gimbal:(DJIGimbal *)gimbal didUpdateState:(DJIGimbalState *)state
      Header:DJIGimbal.h
      Description:

      Updates the gimbal's current state.

      Input Parameters:
      DJIGimbal * gimbalThe gimbal object.
      DJIGimbalState * stateThe gimbal state.
      method gimbal:didUpdateMovementSettings
      @optional
      - (void)gimbal:(DJIGimbal *)gimbal didUpdateMovementSettings:(DJIGimbalMovementSettings *)settings
      Header:DJIGimbal.h
      Description:

      Update the gimbal's user configuration data. This method is only supported by Osmo series.

      Input Parameters:
      DJIGimbal * gimbalAn instance of DJIGimbal.
      DJIGimbalMovementSettings * settingsAn instance of DJIGimbalMovementSettings.
      method gimbal:didUpdateBatteryRemainingCharge
      @optional
      - (void)gimbal:(DJIGimbal *)gimbal didUpdateBatteryRemainingCharge:(NSInteger)remainingChargeInPercent
      Header:DJIGimbal.h
      Description:

      Update the gimbal's remaining energy in percentage.

      Input Parameters:
      DJIGimbal * gimbalAn instance of DJIGimbal.
      NSInteger remainingChargeInPercentAn NSInteger value.
      const DJIGimbalParamAdjustPitch
      extern NSString *const DJIGimbalParamAdjustPitch
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in the capabilities dictionary that holds the complete capability of the gimbal. A negative value in the valid range represents counter-clockwise rotation. A positive value in the valid range represents clockwise rotation.

      const DJIGimbalParamAdjustYaw
      extern NSString *const DJIGimbalParamAdjustYaw
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal supports yaw axis adjustment. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range in degrees is returned. A negative value in the valid range represents counter-clockwise rotation. A positive value in the valid range represents clockwise rotation. For Gimbal's that allow a pitch range extension (see DJIGimbalParamPitchRangeExtensionEnabled, the range will be representative of the extended range whether it is enabled or not.

      const DJIGimbalParamAdjustRoll
      extern NSString *const DJIGimbalParamAdjustRoll
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal supports roll axis adjustment. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range in degrees is returned. A negative value in the valid range represents counter-clockwise rotation. A positive value in the valid range represents clockwise rotation.

      const DJIGimbalParamMovementSettingsProfile
      extern NSString *const DJIGimbalParamMovementSettingsProfile
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string string in capabilities associated with whether the gimbal supports Advanced Settings Profiles. The corresponding value in capabilities is an instance of DJIParamCapability.

      const DJIGimbalParamPitchRangeExtensionEnabled
      extern NSString *const DJIGimbalParamPitchRangeExtensionEnabled
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal supports a range extension in pitch. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range in degrees is returned.

      const DJIGimbalParamPitchControllerSpeedCoefficient
      extern NSString *const DJIGimbalParamPitchControllerSpeedCoefficient
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis response speed to manual control can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawControllerSpeedCoefficient
      extern NSString *const DJIGimbalParamYawControllerSpeedCoefficient
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis response speed to manual control can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchControllerSmoothingFactor
      extern NSString *const DJIGimbalParamPitchControllerSmoothingFactor
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis smoothing can be adjusted when using manual control. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawControllerSmoothingFactor
      extern NSString *const DJIGimbalParamYawControllerSmoothingFactor
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis smoothing can be adjusted when using manual control. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchControllerDeadband
      extern NSString *const DJIGimbalParamPitchControllerDeadband
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's manual control pitch axis deadband can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawControllerDeadband
      extern NSString *const DJIGimbalParamYawControllerDeadband
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's manual control yaw axis deadband can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchControllerMaxSpeed
      extern NSString *const DJIGimbalParamPitchControllerMaxSpeed
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's manual control pitch axis max speed can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawControllerMaxSpeed
      extern NSString *const DJIGimbalParamYawControllerMaxSpeed
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's manual control yaw axis max speed can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchSmoothTrackEnabled
      extern NSString *const DJIGimbalParamPitchSmoothTrackEnabled
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis SmoothTrack can be toggled. The corresponding value in capabilities is an instance of DJIParamCapability. Ronin-MX cannot toggle the SmoothTrack functionality and it is always enabled.

      const DJIGimbalParamYawSmoothTrackEnabled
      extern NSString *const DJIGimbalParamYawSmoothTrackEnabled
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis SmoothTrack can be toggled. The corresponding value in capabilities is an instance of DJIParamCapability. Ronin-MX cannot toggle the SmoothTrack functionality and it is always enabled.

      const DJIGimbalParamPitchSmoothTrackAcceleration
      extern NSString *const DJIGimbalParamPitchSmoothTrackAcceleration
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis SmoothTrack acceleration can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawSmoothTrackAcceleration
      extern NSString *const DJIGimbalParamYawSmoothTrackAcceleration
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis SmoothTrack acceleration can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchSmoothTrackSpeed
      extern NSString *const DJIGimbalParamPitchSmoothTrackSpeed
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis SmoothTrack speed can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawSmoothTrackSpeed
      extern NSString *const DJIGimbalParamYawSmoothTrackSpeed
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis SmoothTrack speed can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchSmoothTrackDeadband
      extern NSString *const DJIGimbalParamPitchSmoothTrackDeadband
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis SmoothTrack deadband can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawSmoothTrackDeadband
      extern NSString *const DJIGimbalParamYawSmoothTrackDeadband
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis SmoothTrack deadband can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchUpEndpoint
      extern NSString *const DJIGimbalParamPitchUpEndpoint
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch up endpoint can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchDownEndpoint
      extern NSString *const DJIGimbalParamPitchDownEndpoint
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch down endpoint can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawLeftEndpoint
      extern NSString *const DJIGimbalParamYawLeftEndpoint
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw left endpoint can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawRightEndpoint
      extern NSString *const DJIGimbalParamYawRightEndpoint
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw right endpoint can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchMotorControlStiffness
      extern NSString *const DJIGimbalParamPitchMotorControlStiffness
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis motor control stiffness can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawMotorControlStiffness
      extern NSString *const DJIGimbalParamYawMotorControlStiffness
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis motor control stiffness can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamRollMotorControlStiffness
      extern NSString *const DJIGimbalParamRollMotorControlStiffness
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's roll axis motor control stiffness can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchMotorControlStrength
      extern NSString *const DJIGimbalParamPitchMotorControlStrength
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis motor control strength can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawMotorControlStrength
      extern NSString *const DJIGimbalParamYawMotorControlStrength
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis motor control strength can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamRollMotorControlStrength
      extern NSString *const DJIGimbalParamRollMotorControlStrength
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's roll axis motor control strength can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchMotorControlGyroFilteringFactor
      extern NSString *const DJIGimbalParamPitchMotorControlGyroFilteringFactor
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis motor control gyro filtering can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawMotorControlGyroFilteringFactor
      extern NSString *const DJIGimbalParamYawMotorControlGyroFilteringFactor
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis motor control gyro filtering can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamRollMotorControlGyroFilteringFactor
      extern NSString *const DJIGimbalParamRollMotorControlGyroFilteringFactor
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's roll axis motor control gyro filtering can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamPitchMotorControlPreControl
      extern NSString *const DJIGimbalParamPitchMotorControlPreControl
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's pitch axis motor control "precontrol" can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamYawMotorControlPreControl
      extern NSString *const DJIGimbalParamYawMotorControlPreControl
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's yaw axis motor control "precontrol" can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.

      const DJIGimbalParamRollMotorControlPreControl
      extern NSString *const DJIGimbalParamRollMotorControlPreControl
      Header:DJIGimbalBaseTypes.h
      Description:

      Key string in capabilities associated with whether the gimbal's roll axis motor control "precontrol" can be adjusted. The corresponding value in capabilities is an instance of DJIParamCapabilityMinMax meaning both the feature's existence as well as its possible range (unitless) is returned.