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 setUpwardsAvoidanceEnabled:withCompletion
      - (void)setUpwardsAvoidanceEnabled:(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 getUpwardsAvoidanceEnabledWithCompletion
      - (void)getUpwardsAvoidanceEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      SDK Key:DJIFlightControllerKey.DJIFlightAssistantParamUpwardsAvoidanceEnabled
      Description:

      Gets upward avoidance status (enabled/disabled).

      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 setActiveObstacleAvoidanceEnabled:withCompletion
      - (void)setActiveObstacleAvoidanceEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion DJI_API_DEPRECATED("TODO:DJI Go Not Used, Not friendly for user.")
      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 DJI_API_DEPRECATED("TODO:DJI Go Not Used, Not friendly for user.")
      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 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 supported by Mavic Air and Mavic 2 Series.

      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 is only supported by Mavic Air.

      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 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.
      Bottom Auxiliary Lighting
      method
      method setBottomAuxiliaryLightMode:withCompletion
      - (void)setBottomAuxiliaryLightMode:(DJIBottomAuxiliaryLightMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJIFlightAssistant.h
      Description:

      Sets the mode for the auxiliary light at the bottom of the aircraft. It is only supported by Mavic 2 series.

      Input Parameters:
      DJIBottomAuxiliaryLightMode modeThe lighting mode to set.
      DJICompletionBlock completionCompletion block to receive the result.
      method getBottomAuxiliaryLightModeWithCompletion
      - (void)getBottomAuxiliaryLightModeWithCompletion:(void (^_Nonnull)(DJIBottomAuxiliaryLightMode mode, NSError *_Nullable error))completion
      Header:DJIFlightAssistant.h
      Description:

      Gets the mode for the auxiliary light at the bottom of the aircraft. It is only supported by Mavic 2 series.

      Input Parameters:
      DJIBottomAuxiliaryLightMode modeThe mode of the auxiliary light at the bottom of the aircraft.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJIBottomAuxiliaryLightMode mode, 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.

      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: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: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.
      enum DJIBottomAuxiliaryLightMode
      typedef NS_ENUM(NSInteger, DJIBottomAuxiliaryLightMode)
      Header:DJIVisionTypes.h
      Description:

      Modes for the auxiliary light at the bottom of the aircraft.

      Enum Members:
      DJIBottomAuxiliaryLightModeAutoThe auto mode. In this mode, the auxiliary light will be turned on automatically when the downward vision system is active but the environment is too dark.
      DJIBottomAuxiliaryLightModeOnThe auxiliary light is on.
      DJIBottomAuxiliaryLightModeOffThe auxiliary light is off.
      DJIBottomAuxiliaryLightModeBeaconBeacon 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 ''DJIBottomAuxiliaryLightMode_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 ''DJIBottomAuxiliaryLightMode_Auto''. This mode is only supported by Mavic 2 Enterprise.
      DJIBottomAuxiliaryLightModeUnknownUnknown.
      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.