DJI Mobile SDK Documentation

      class DJIFlightAssistant

      @interface DJIFlightAssistant : NSObject
      Header:DJIFlightAssistant.h
      Inherits From:NSObject
      SDK Key:DJIFlightControllerKey.DJIFlightControllerFlightAssistantSubComponent
      Description:

      This class contains components of the Intelligent Flight Assistant and provides methods to change its settings.

      Class Members:
      State Updates
      property
      property delegate
      @property(nonatomic, weak) id<DJIFlightAssistantDelegate> delegate
      Header:DJIFlightAssistant.h
      Description:

      Intelligent flight assistant delegate.

      See Also:

      DJIFlightAssistantDelegate

      method setCollisionAvoidanceEnabled:withCompletion
      - (void)setCollisionAvoidanceEnabled:(BOOL)enable
      withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamCollisionAvoidanceEnabled
      Description:

      Enable collision avoidance. When enabled, the aircraft will stop and try to go around detected obstacles.

      Input Parameters:
      BOOL enableA boolean value.
      DJICompletionBlock completionCompletion block that receives the execution result.
      method getCollisionAvoidanceEnabledWithCompletion
      - (void)getCollisionAvoidanceEnabledWithCompletion:(void (^_Nonnull)(BOOL enable, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamCollisionAvoidanceEnabled
      Description:

      Gets collision avoidance status (enabled/disabled).

      Input Parameters:
      BOOL enableYES if collision avoidance is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enable, NSError *_Nullable error) completionCompletion block to receive the result.
      method setActiveObstacleAvoidanceEnabled:withCompletion
      - (void)setActiveObstacleAvoidanceEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamActiveObstacleAvoidanceEnabled
      Description:

      Enables/disables active obstacle avoidance. When enabled, and an obstacle is moving toward the aircraft, the aircraft will actively fly away from it. If while actively avoiding a moving obstacle, the aircraft detects another obstacle in its avoidance path, it will stop. setCollisionAvoidanceEnabled:withCompletion must also be enabled.

      Input Parameters:
      BOOL enabledYES to enable the active avoidance.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getActiveObstacleAvoidanceEnabledWithCompletion
      - (void)getActiveObstacleAvoidanceEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamActiveObstacleAvoidanceEnabled
      Description:

      Gets active obstacle avoidance status (enabled/disabled).

      Input Parameters:
      BOOL enabledYES if active obstacle avoidance is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setUpwardVisionObstacleAvoidanceEnabled:withCompletion
      - (void)setUpwardVisionObstacleAvoidanceEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamUpwardsAvoidanceEnabled
      Description:

      Enables/disables upward avoidance. When the Inspire 2's upwards-facing infrared sensor detects an obstacle, the aircraft will slow its ascent and maintain a minimum distance of 1 meter from the obstacle. The sensor has a 10-degree horizontal field of view (FOV) and 10-degree vertical FOV. The maximum detection distance is 5m.

      Input Parameters:
      BOOL enabledYES to enable the upwards avoidance.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getUpwardVisionObstacleAvoidanceEnabledWithCompletion
      - (void)getUpwardVisionObstacleAvoidanceEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets upward avoidance status (enabled/disabled). It is only supported by Matrice 300 RTK.

      Input Parameters:
      BOOL enabledYES if upwards avoidance is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setAdvancedGestureControlEnabled:withCompletion
      - (void)setAdvancedGestureControlEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables/disables advanced gesture control. When enabled, users can use PalmLaunch, PalmLand, PalmControl and Beckon. When enabled, the various modes can be initiated by the user. In summary:
      - Aircraft starts idle on users hand
      - User double clicks the power button and FaceAware becomes active
      - Once a face is recogized, PalmLaunch will happen
      - When flying, the user can control the aircraft position by moving their palm
      - If the user waves one hand, the aircraft will fly up and backwards and start following the user.
      - If the user waves both hands, the aircraft will execute Beckon and return to the user.
      It is only supported by Spark.

      Input Parameters:
      BOOL enabledYES to enable advanced gesture control.
      DJICompletionBlock completionThe completion block with the returned execution result.
      method getAdvancedGestureControlEnabledWithCompletion
      - (void)getAdvancedGestureControlEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines whether advanced gesture control is enabled. When enabled, users can use PalmLaunch, PalmLand, PalmControl and Beckon. It is only supported by Spark.

      Input Parameters:
      BOOL enabledYES to enable advanced gesture control.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      Smart Capture
      method
      method isSmartCaptureSupported
      - (BOOL)isSmartCaptureSupported
      Header:DJIFlightAssistant.h
      Description:

      Determines if SmartCapture is supported. This feature is only supported by Mavic Air.

      Return:
      BOOLYES if Smart Capture is supported.
      method setSmartCaptureEnabled:withCompletion
      - (void)setSmartCaptureEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables/disables SmartCapture. When enabled, deep learning gesture recognition allows the user to take selfies, record videos, and control the aircraft (GestureLaunch, Follow and GestureLand) using simple hand gestures. It is only supported when isSmartCaptureSupported returns YES.

      Input Parameters:
      BOOL enabledYES to enable SmartCapture.
      DJICompletionBlock completionCompletion block with the returned execution result.
      method getSmartCaptureEnabledEnabledWithCompletion
      - (void)getSmartCaptureEnabledEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines whether SmartCapture is enabled. When enabled, users can When enabled, deep learning gesture recognition allows the user to take selfies, record videos, and control the aircraft (GestureLaunch, Follow and GestureLand) using simple hand gestures. It is only supported when isSmartCaptureSupported returns YES.

      Input Parameters:
      BOOL enabledYES if SmartCapture is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setSmartCaptureFollowingMode:withCompletion
      - (void)setSmartCaptureFollowingMode:(DJISmartCaptureFollowingMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the following mode for SmartCapture. It is only valid when SmartCapture is enabled.

      Input Parameters:
      DJISmartCaptureFollowingMode modeThe following mode to set.
      DJICompletionBlock completionThe completion block with the returned execution result.
      method getSmartCaptureFollowingModeWithCompletion
      - (void)getSmartCaptureFollowingModeWithCompletion:(void (^_Nonnull)(DJISmartCaptureFollowingMode mode, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets the following mode for SmartCapture. It is only valid when SmartCapture is enabled.

      Input Parameters:
      DJISmartCaptureFollowingMode modeThe following mode for SmartCapture.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJISmartCaptureFollowingMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setAdvancedPilotAssistanceSystemEnabled:withCompletion
      - (void)setAdvancedPilotAssistanceSystemEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables the Advanced Pilot Assistance System (APAS). When APAS is enabled, the aircraft continues to respond to user commands and plans its path according to both control stick inputs and the flight environment. APAS makes it easier to avoid obstacles and obtain smoother footage, and gives a better fly experiences. It is only valid when the aircraft is in P-mode. It is only supported by Mavic Air, Mavic 2 Pro, Mavic 2 Zoom, Mavic 2 Enterprise.

      Input Parameters:
      BOOL enabledYES to enable APAS.
      DJICompletionBlock completionCompletion block with the returned execution result.
      method getAdvancedPilotAssistanceSystemEnabledWithCompletion
      - (void)getAdvancedPilotAssistanceSystemEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines whether the Advanced Pilot Assistance System (APAS) is enabled or not. When APAS is enabled, the aircraft continues to respond to user commands and plans its path according to both control stick inputs and the flight environment. APAS makes it easier to avoid obstacles and obtain smoother footage, and gives a better fly experiences. It It is only supported by Mavic Air, Mavic 2 Pro, Mavic 2 Zoom, Mavic 2 Enterprise.

      Input Parameters:
      BOOL enabledYES if APAS is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setForbidSideFlyEnable:withCompletion
      - (void)setForbidSideFlyEnable:(BOOL)enable withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables/Disabled the Forbid Side Fly Switch. In APAS mode when the Forbid Side Fly Switch is turned on, the aircraft cannot fly sideways. Supported by DJI Air 2S.

      Input Parameters:
      BOOL enableYES to enable forbid side fly.
      DJICompletionBlock completionCompletion block with the returned execution result.
      method getForbidSideFlyEnableWithCompletion
      - (void)getForbidSideFlyEnableWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines whether the Forbid Side Fly Switch is enabled or not.

      Input Parameters:
      BOOL enabledYES if forbid side fly is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setRTHObstacleAvoidanceEnabled:withCompletion
      - (void)setRTHObstacleAvoidanceEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables Obstacle Avoidance during RTH. This is only active when the environment is bright enough. It is not active when the aircraft is landing. CAUTION: If RTH Obstacle Avoidance is disabled, aircraft will not check obstacles during RTH or ascend to avoid obstacles, which may cause great risks.

      Input Parameters:
      BOOL enabledYES to enable Obstacle Avoidance during RTH.
      DJICompletionBlock completionCompletion block to receive the result.
      method getRTHObstacleAvoidanceEnabledWithCompletion
      - (void)getRTHObstacleAvoidanceEnabledWithCompletion:(void(^)(BOOL enable, NSError* error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines if Obstacle Avoidance is enabled during RTH. This is only active when the environment is bright enough. It is not active when the aircraft is landing. CAUTION: If RTH Obstacle Avoidance is disabled, aircraft will not check obstacles during RTH or ascend to avoid obstacles, which may cause great risks.

      Input Parameters:
      BOOL enableYES if Obstacle Avoidance during RTH is enabled.
      NSError* errorError retrieving the value.
      void(^)(BOOL enable, NSError* error) completionCompletion block to receive the result.
      RTH Remote Obstacle Avoidance
      method
      method setRTHRemoteObstacleAvoidanceEnabled:withCompletion
      - (void)setRTHRemoteObstacleAvoidanceEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Enables Remote Obstacle Avoidance during RTH. Enabling this, the aircraft will adjust its RTH route automatically to avoid obstacles in far distance. The gimbal will not respond to any commands from the application or the remote controller.

      Input Parameters:
      BOOL enabledYES to enable Remote Obstacle Avoidance during RTH.
      DJICompletionBlock completionCompletion block to receive the result.
      method getRTHRemoteObstacleAvoidanceEnabledWithCompletion
      - (void)getRTHRemoteObstacleAvoidanceEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Determines if RTH Remote Obstacle Avoidance is enabled or not. When it is enabled, the aircraft will adjust its RTH route automatically to avoid obstacles in far distance. The gimbal will not respond to any commands from the application or the remote controller.

      Input Parameters:
      BOOL enabledYES if Remote RTH Obstacle Avoidance is enabled during RTH.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      Downward Fill Light Mode
      method
      method setDownwardFillLightMode:withCompletion
      - (void)setDownwardFillLightMode:(DJIFillLightMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the downward fill light mode. It is supported by Mavic 2 series and Matrice 300 RTK.

      Input Parameters:
      DJIFillLightMode modeSee enum DJIFillLightMode.
      DJICompletionBlock completionCompletion block to receive the result.
      method getDownwardFillLightModeWithCompletion
      - (void)getDownwardFillLightModeWithCompletion:(void (^_Nonnull)(DJIFillLightMode mode, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets the downward fill light mode. It is supported by Mavic 2 series and Matrice 300 RTK.

      Input Parameters:
      DJIFillLightMode modeSee enum DJIFillLightMode.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJIFillLightMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      Upward Fill Light Mode
      method
      method setUpwardFillLightMode:withCompletion
      - (void)setUpwardFillLightMode:(DJIFillLightMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the upward fill light mode. It is only supported by Matrice 300 RTK. The distance range for DJIFlightAssistantObstacleSensingDirectionHorizontal is 1m~5m. The distance range for DJIFlightAssistantObstacleSensingDirectionUpward is 1m~10m. The distance range for DJIFlightAssistantObstacleSensingDirectionDownward is 1dm~30dm.

      Input Parameters:
      DJIFillLightMode modeSee enum DJIFillLightMode.
      DJICompletionBlock completionCompletion block to receive the result.
      method getUpwardFillLightModeWithCompletion
      - (void)getUpwardFillLightModeWithCompletion:(void (^_Nonnull)(DJIFillLightMode mode, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets upward fill light mode. It is only supported by Matrice 300 RTK.

      Input Parameters:
      DJIFillLightMode modeSee enum DJIFillLightMode.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJIFillLightMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setMaxPerceptionDistance:onDirection:withCompletion
      - (void)setMaxPerceptionDistance:(NSUInteger)distance
      onDirection:(DJIFlightAssistantObstacleSensingDirection)direction
      withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the maximum perception distance that could be measured. It is supported only by Matrice 300 RTK. The distance range is 5m~45m for all direction.

      Input Parameters:
      NSUInteger distanceThe maximum perception distance that could be measured.
      DJIFlightAssistantObstacleSensingDirection directionThe perception direction.
      DJICompletionBlock completionCompletion block to receive the result.
      method getMaxPerceptionDistanceOnDirection:withCompletion
      - (void)getMaxPerceptionDistanceOnDirection:(DJIFlightAssistantObstacleSensingDirection)direction
      withCompletion:(void (^_Nonnull)(NSUInteger distance, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets the maximum perception distance that could be measured. It is supported only by Matrice 300 RTK.

      Input Parameters:
      DJIFlightAssistantObstacleSensingDirection directionThe perception direction.
      NSUInteger distanceThe maximum perception distance that is measured.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger distance, NSError *_Nullable error) completionCompletion block to receive the result.
      method setVisualObstaclesAvoidanceDistance:onDirection:withCompletion
      - (void)setVisualObstaclesAvoidanceDistance:(float)distance
      onDirection:(DJIFlightAssistantObstacleSensingDirection)direction
      withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the distance to engage Active Brake for obstacles avoidance.

      Input Parameters:
      float distanceThe distance to engage Active Brake.
      DJIFlightAssistantObstacleSensingDirection directionThe perception direction. If is DJIFlightController_DJIFlightAssistantObstacleSensingDirection_Downward, the distance range is [0.1, 3], For Matrice 300 RTK the range is [0.4, 3]. If is DJIFlightController_DJIFlightAssistantObstacleSensingDirection_Upward, the distance range is [1.0, 10]. If is DJIFlightController_DJIFlightAssistantObstacleSensingDirection_Horizontal, the distance range is [1.0, 5].
      DJICompletionBlock completionCompletion block to receive the result.
      method getVisualObstaclesAvoidanceDistanceOnDirection:withCompletion
      - (void)getVisualObstaclesAvoidanceDistanceOnDirection:(DJIFlightAssistantObstacleSensingDirection)direction
      withCompletion:(void (^_Nonnull)(float distance, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets current distance to engage Active Brake for obstacles avoidance.

      Input Parameters:
      DJIFlightAssistantObstacleSensingDirection directionThe perception direction.
      float distanceThe distance to engage Active Brake
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(float distance, NSError *_Nullable error) completionCompletion block to receive the result.
      method setVisionAssistedPositioningEnabled:withCompletion
      - (void)setVisionAssistedPositioningEnabled:(BOOL)enabled
      withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightController.h
      SDK Key:DJIFlightControllerKey.DJIFlightControllerParamVisionAssistedPositioningEnabled
      Description:

      Enable vision positioning. Vision positioning is used to augment GPS to improve location accuracy when hovering and improve velocity calculation when flying.

      Input Parameters:
      BOOL enabledYES to enable vision assisted positioning.
      DJICompletionBlock completionCompletion block that receives the execution result.
      method getVisionAssistedPositioningEnabledWithCompletion
      - (void)getVisionAssistedPositioningEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled,
      NSError *_Nullable error))completion
      Header:DJIFlightController.h
      SDK Key:DJIFlightControllerKey.DJIFlightControllerParamVisionAssistedPositioningEnabled
      Description:

      Gets vision positioning status (enabled/disabled).

      Input Parameters:
      BOOL enabledYES if the vision position is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setPrecisionLandingEnabled:withCompletion
      - (void)setPrecisionLandingEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamPrecisionLandingEnabled
      Description:

      Enables/disables precision landing. When enabled, the aircraft will record its take-off location visually (as well as with GPS). On a Return-To-Home action the aircraft will attempt to perform a precision landing using the additional visual information. This method only works on a Return-To-Home action when the home location is successfully recorded during take-off, and not changed during flight, It will take effect only after flying 10 meters high at the return point.

      Input Parameters:
      BOOL enabledYES to enable the precise landing.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getPrecisionLandingEnabledWithCompletion
      - (void)getPrecisionLandingEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamPrecisionLandingEnabled
      Description:

      Gets precision landing status (enabled/disabled).

      Input Parameters:
      BOOL enabledYES if precision landing is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      method setLandingProtectionEnabled:withCompletion
      - (void)setLandingProtectionEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamLandingProtectionEnabled
      Description:

      Enables/disables landing protection. During auto-landing, the downwards facing vision sensor will check if the ground surface is flat enough for a safe landing. If it is not and landing protection is enabled, then landing will abort and need to be manually performed by the user.

      Input Parameters:
      BOOL enabledYES to enable the landing protection.
      DJICompletionBlock completionCompletion block<<>android:Callback> that receives the setter result.
      method getLandingProtectionEnabledWithCompletion
      - (void)getLandingProtectionEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamLandingProtectionEnabled
      Description:

      Gets landing protection status (enabled/disabled).

      Input Parameters:
      BOOL enabledYES if landing protection is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      protocol DJIFlightAssistantDelegate
      @protocol DJIFlightAssistantDelegate <NSObject>
      Header:DJIFlightAssistant.h
      Inherits From:NSObject
      Description:

      This protocol provides an delegate method to update the Intelligent Flight Assistant current state.

      Protocol Methods:

      Protocol Method

      method flightAssistant:didUpdateVisionDetectionState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant
      didUpdateVisionDetectionState:(DJIVisionDetectionState *)state
      Header:DJIFlightAssistant.h
      Description:

      Callback function that updates the vision detection state. The frequency of this method is 10Hz.

      Input Parameters:
      DJIFlightAssistant * assistantIntelligent flight assistant that has the updated state.
      DJIVisionDetectionState * stateThe state of vision sensor.
      method flightAssistant:didUpdateVisionControlState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant
      didUpdateVisionControlState:(DJIVisionControlState *)state
      Header:DJIFlightAssistant.h
      Description:

      Callback function that updates the aircraft state controlled by the intelligent flight assistant.

      Input Parameters:
      DJIFlightAssistant * assistantIntelligent flight assistant that has the updated state.
      DJIVisionControlState * stateThe control state.
      method flightAssistant:didUpdateVisionFaceAwareState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateVisionFaceAwareState:(DJIVisionFaceAwareState)state
      Header:DJIFlightAssistant.h
      Description:

      Callback function that updates the FaceAware state. When starting a PalmLaunch, the aircraft will start FaceAware. If FaceAware activates successfully, the motors will start spinning and the aircraft will hover after releasing it.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJIVisionFaceAwareState stateThe FaceAware state.
      method flightAssistant:didUpdateVisionPalmControlState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateVisionPalmControlState:(DJIVisionPalmControlState)state
      Header:DJIFlightAssistant.h
      Description:

      Callback function that updates the palm control state.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJIVisionPalmControlState stateThe palm control state.
      method flightAssistant:didUpdateVisionSmartCaptureState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateVisionSmartCaptureState:(DJISmartCaptureState *)state
      Header:DJIFlightAssistant.h
      Description:

      Callback function that updates the SmartCapture state. It is only supported by Mavic Air.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJISmartCaptureState * stateThe SmartCapture state.
      method flightAssistant:didUpdateObstacleAvoidanceSensorState
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateObstacleAvoidanceSensorState:(DJIFlightAssistantObstacleAvoidanceSensorState *)state
      Header:DJIFlightAssistant.h
      Description:

      Updates the obstacle avoidance sensor's state.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJIFlightAssistantObstacleAvoidanceSensorState * stateThe Avoidance state.
      method flightAssistant:didUpdateVisualPerceptionInformation
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateVisualPerceptionInformation:(DJIFlightAssistantPerceptionInformation *)information
      Header:DJIFlightAssistant.h
      Description:

      Updates the visual perception information. It is supported only by Matrice 300 RTK, Mavic Air 2, DJI Air 2S.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJIFlightAssistantPerceptionInformation * informationThe Visual Perception information.
      method flightAssistant:didUpdateToFPerceptionInformation
      @optional
      - (void)flightAssistant:(DJIFlightAssistant *)assistant didUpdateToFPerceptionInformation:(DJIFlightAssistantPerceptionInformation *)information
      Header:DJIFlightAssistant.h
      Description:

      Updates the TOF perception information. It is supported only by Matrice 300 RTK, Mavic Air 2, DJI Air 2S.

      Input Parameters:
      DJIFlightAssistant * assistantFlight assistant that has the updated state.
      DJIFlightAssistantPerceptionInformation * informationThe TOF Perception information.
      enum DJIVisionFaceAwareState
      typedef NS_ENUM(NSUInteger, DJIVisionFaceAwareState)
      Header:DJIVisionTypes.h
      Description:

      FaceAware states. FaceAware is a step of PalmLaunch. Tapping the battery battery power button twice, FaceAware will start to work automatically. If FaceAware is activated successfully, the aircraft will takeoff from the palm.

      Enum Members:
      DJIVisionFaceAwareStateIdleThe aircraft is not executing FaceAware.
      DJIVisionFaceAwareStateActivatingThe aircraft is in the process of detecting a human face in front of the camera.
      DJIVisionFaceAwareStateActivatedFaceAware has been activated. The aircraft will beep twice and the motors will start spinning.
      DJIVisionFaceAwareStateFailedNoFaceDetectedFaceAware has failed to activate because no face was detected.
      DJIVisionFaceAwareStateUnknownUnknown.
      enum DJIVisionPalmControlState
      typedef NS_ENUM(NSUInteger, DJIVisionPalmControlState)
      Header:DJIVisionTypes.h
      Description:

      States of PalmControl.

      Enum Members:
      DJIVisionPalmControlStateInitializingThe aircraft is initializing for PalmControl.
      DJIVisionPalmControlStateRecognizingPalmThe aircraft is recognizing the palm.
      DJIVisionPalmControlStateStartingFollowThe aircraft is moving into position for the PalmControl Follow command. In this state, the aircraft is ascending and flying backward to a position that is 3m horizontally away from the user and 2.3m above the ground. Once it has reached this position, the state will move to DJIVisionPalmControlStateFollowing and the aircraft will then follow the user. The Follow command can be initiated by raising one arm and quickly waving your hand at the camera.
      DJIVisionPalmControlStateFollowingThe aircraft is currently following the user. To reach this state, the user first raises one arm and quickly waves their hand at the aircraft's camera. The aircraft will then move into position (3m from the user and 2.3m above the ground), and reach this state.
      DJIVisionPalmControlStateAdjustingPositionThe aircraft's position is being adjusted by the moving palm.
      DJIVisionPalmControlStatePalmControlStoppedPalmControl is stopped. PalmControl can be stopped by moving the sticks on the physical remote controller or sending commands through DJIMobileRemoteController when the physical remote controller is absent.
      DJIVisionPalmControlStateUnknownUnknown.
      enum DJIFillLightMode
      typedef NS_ENUM(NSInteger, DJIFillLightMode)
      Header:DJIVisionTypes.h
      Description:

      Modes for the fill light at the bottom or top of the aircraft.

      Enum Members:
      DJIFillLightModeAutoThe auto mode. In this mode, the auxiliary light will be turned on automatically when the downward or top vision system is active but the environment is too dark.
      DJIFillLightModeOnThe auxiliary light is on.
      DJIFillLightModeOffThe auxiliary light is off.
      DJIFillLightModeBeaconBeacon mode. In this mode, the auxiliary light will have different behaviors in different conditions:
      - When the aircraft just takes off, the auxiliary light will have the same behavior as ''DJIFillLightMode_Auto''.
      - When the aircraft ascends above 5.5 meters, the auxiliary light starts to blink in 1Hz.
      - When the aircraft descends below 4.5 meters, the auxiliary light will have the same behavior as ''DJIFillLightMode_Auto''. This mode is only supported by Mavic 2 Enterprise.
      DJIFillLightModeUnknownUnknown.