飞行控制
飞行控制相关功能的头文件为 uav_flight_control.h
,本文档描述了 uav_flight_control.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
typedef enum E_UAVFlithtControlMode
typedef enum E_UAVFlightControlRCLostAction
typedef enum E_UAVFlightControlEmergencyStopMotor
typedef enum E_UAVHeadingMode
typedef enum E_UAVObstacleMode
typedef struct T_UAVFlightControllerRidInfo
typedef struct T_UAVFlightControlPos
typedef struct T_UAVFlightControlSpeed
typedef struct T_UAVFlightControllerHomeLocation
typedef uint16_t E_UAVFlightControllerGoHomeAltitude
typedef struct T_UAVFlightControllerGeneralInfo函数原型
function UAV_FlightControl_Init
function UAV_FlightControl_Deinit
function UAV_FlightControl_SetControlMode
function UAV_FlightControl_GetControlMode
function UAV_FlightControl_POSControl
function UAV_FlightControl_SpeedControl
function UAV_FlightControl_SetRCLostAction
function UAV_FlightControl_GetRCLostAction
function UAV_FlightControl_TurnOnMotors
function UAV_FlightControl_TurnOffMotors
function UAV_FlightControl_EmergencyStopMotor
function UAV_FlightControl_StartTakeoff
function UAV_FlightControl_StartLanding
function UAV_FlightControl_CancelLanding
function UAV_FlightControl_StartForceLanding
function UAV_FlightControl_SetHomeLocationUsingGPSCoordinates
function UAV_FlightControl_SetHomeLocationUsingCurrentAircraftLocation
function UAV_FlightControl_SetGoHomeAltitude
function UAV_FlightControl_GetGoHomeAltitude
function UAV_FlightControl_StartGoHome
function UAV_FlightControl_CancelGoHome
function UAV_FlightControl_GetGeneralInfo
目宏定义、枚举与结构体
typedef enum E_UAVFlithtControlMode
typedef enum {
UAV_FLIGHTCONTROL_MODE_UNKNOWN = 0,
UAV_FLIGHTCONTROL_MODE_POS_CTL = 1,
UAV_FLIGHTCONTROL_MODE_SPEED_CTL = 2,
}E_UAVFlithtControlMode;
typedef enum E_UAVFlightControlRCLostAction
无人机在失去遥控信号时的动作。
typedef enum {
UAV_FLIGHTCONTROL_RC_LOST_ACTION_HOVER = 0, /*!< Aircraft will execute hover cation when rc is lost. */
UAV_FLIGHTCONTROL_RC_LOST_ACTION_LANDING = 1, /*!< Aircraft will execute land cation when rc is lost. */
UAV_FLIGHTCONTROL_RC_LOST_ACTION_GOHOME = 2, /*!< Aircraft will execute go-home cation when rc is lost. */
}E_UAVFlightControlRCLostAction;
typedef enum E_UAVFlightControlEmergencyStopMotor
- 功能: 启用/禁用紧急停机功能枚举。
注意:
- 在空中启用紧急停机功能非常危险,可能导致无人机坠毁!
typedef enum {
UAV_FLIGHTCONTROL_ENABLE_EMERGENCY_STOP_MOTOR = 1, /*!< Execute emergency-stop-motor action */
}E_UAVFlightControlEmergencyStopMotor;
typedef enum E_UAVHeadingMode
typedef enum {
UAV_HEADING_MODE_NONE = 0, /*!< No heading mode. */
UAV_HEADING_MODE_ALONG = 1, /*!< Along the waypoint line direction. */
UAV_HEADING_MODE_BY_PSDK = 2,/*!< Control the heading by psdk from user. */
}E_UAVHeadingMode;
typedef enum E_UAVObstacleMode
typedef enum {
UAV_OBSTACLE_MODE_NONE = 0, /*!< No obstacle avoidance. */
UAV_OBSTACLE_MODE_LOITER = 1, /*!< Loiter mode. */
UAV_OBSTACLE_MODE_OBS = 2, /*!< Obstacle avoidance mode. */
}E_UAVObstacleMode;
typedef struct T_UAVFlightControllerRidInfo
typedef struct {
double latitude; /*!< Specifies latitude, unit: rad */
double longitude; /*!< Specifies longitude, unit: rad */
float altitude; /*!< Specifies altitude, unit: m */
}T_UAVFlightControllerRidInfo;
typedef struct T_UAVFlightControlPos
typedef struct {
float yaw; /*!< Specifies yaw angle. */
double latitude; /*!< Specifies latitude. */
double longitude; /*!< Specifies longitude. */
double altitude; /*!< Specifies altitude. */
int32_t obstacle_mode; /*!< Specifies obstacle mode, see E_UAVObstacleMode. */
}T_UAVFlightControlPos;
typedef struct T_UAVFlightControlSpeed
typedef struct {
float x; /*!< Specifies x coordinate. */
float y; /*!< Specifies y coordinate. */
float z; /*!< Specifies z coordinate. */
float yaw; /*!< Specifies yaw angle. */
int32_t heading_mode; /*!< Specifies heading mode, see E_UAVHeadingMode. */
int32_t obstacle_mode; /*!< Specifies obstacle mode, see E_UAVObstacleMode. */
}T_UAVFlightControlSpeed;
typedef struct T_UAVFlightControllerHomeLocation
typedef struct {
double latitude; /*!< unit: rad */
double longitude; /*!< unit: rad */
} T_UAVFlightControllerHomeLocation; // pack(1)
typedef uint16_t E_UAVFlightControllerGoHomeAltitud
typedef uint16_t E_UAVFlightControllerGoHomeAltitude; /*!< Unit:meter, range 20~500 */
typedef struct T_UAVFlightControllerGeneralInfo
typedef struct {
char serialNum[32];
} T_UAVFlightControllerGeneralInfo;
函数原型
function UAV_FlightControl_Init
- 功能: 飞行控制初始化请求。
extern T_UAVReturnCode UAV_FlightControl_Init(T_UAVFlightControllerRidInfo ridInfo);
function UAV_FlightControl_Deinit
- 功能: 飞行控制注销请求。
extern void UAV_FlightControl_Deinit(void);
function UAV_FlightControl_SetControlMode
- 功能: 设置飞行控制模式。
extern T_UAVReturnCode UAV_FlightControl_SetControlMode(E_UAVFlithtControlMode mode);
function UAV_FlightControl_GetControlMode
- 功能: 获取飞行控制模式。
extern T_UAVReturnCode UAV_FlightControl_GetControlMode(E_UAVFlithtControlMode &mode);
function UAV_FlightControl_POSControl
- 功能: 通过位置信息控制飞行。
extern T_UAVReturnCode UAV_FlightControl_POSControl(T_UAVFlightControlPos pos);
function UAV_FlightControl_SpeedControl
- 功能: 通过速度信息控制飞行。
extern T_UAVReturnCode UAV_FlightControl_SpeedControl(T_UAVFlightControlSpeed speed);
function UAV_FlightControl_SetRCLostAction
注意:
- 当遥控器和 OSDK 均失联时,此设置才生效。
extern T_UAVReturnCode UAV_FlightControl_SetRCLostAction(E_UAVFlightControlRCLostAction rcLostAction);
- 参数
rcLostAction
:遥控器失联时的动作(悬停/降落/返回)。
function UAV_FlightControl_GetRCLostAction
- 功能: 获取遥控器失联动作(悬停/降落/返回)
注意:
- 当遥控器和 OSDK 均失联时,此设置才生效。
extern T_UAVReturnCode UAV_FlightControl_GetRCLostAction(E_UAVFlightControlRCLostAction &rcLostAction);
- 参数
rcLostAction
:遥控器失联时的动作(悬停/降落/返回)。
function UAV_FlightControl_TurnOnMotors
- 功能: 无人机在地面时启动电机。
extern T_UAVReturnCode UAV_FlightControl_TurnOnMotors(void);
function UAV_FlightControl_TurnOffMotors
- 功能: 无人机在地面时关闭电机。
extern T_UAVReturnCode UAV_FlightControl_TurnOffMotors(void);
function UAV_FlightControl_EmergencyStopMotor
- 功能: 在任何情况下紧急停止电机。
注意:
- 需使用此接口发送禁用指令退出锁定电机状态。
extern T_UAVReturnCode UAV_FlightControl_EmergencyStopMotor(E_UAVFlightControlEmergencyStopMotor command, const char debugMsg[32]);
- 参数
debugMsg
:将调试信息注入飞行控制固件以进行记录,有大小限制。cmd
:参见E_UAVFlightControlEmergencyStopMotor
的引用。
function UAV_FlightControl_StartTakeoff
- 功能: 当无人机在地面时请求起飞。
extern T_UAVReturnCode UAV_FlightControl_StartTakeoff(void);
function UAV_FlightControl_StartLanding
- 功能: 当无人机在空中时请求降落。
extern T_UAVReturnCode UAV_FlightControl_StartLanding(void);
function UAV_FlightControl_CancelLanding
- 功能: 当无人机正在降落时请求取消降落。
extern T_UAVReturnCode UAV_FlightControl_CancelLanding(void);
function UAV_FlightControl_StartForceLanding
- 功能: 在任何情况下都强制着陆。
extern T_UAVReturnCode UAV_FlightControl_StartForceLanding(void);
function UAV_FlightControl_SetHomeLocationUsingGPSCoordinates
- 功能: 设置自定义 GPS(非 RTK)的 home 点位置。
注意:
- 设置自定义起飞点失败的原因可能包括: 新的起飞点与上一个起飞点之间的距离超过 MAX_FLY_RADIUS(20km)。 开机后记录初始起飞点失败。
extern T_UAVReturnCode UAV_FlightControl_SetHomeLocationUsingGPSCoordinates(T_UAVFlightControllerHomeLocation homeLocation);
function UAV_FlightControl_SetHomeLocationUsingCurrentAircraftLocation
- 功能: 使用当前无人机的 GPS(非 RTK)位置设置 home 点位置。
注意:
- 设置起飞点失败的原因可能包括: 无人机的 GPS 等级未达到记录起飞点的条件。 开机后记录初始起飞点失败。
extern T_UAVReturnCode UAV_FlightControl_SetHomeLocationUsingCurrentAircraftLocation(void);;
function UAV_FlightControl_SetGoHomeAltitude
- 功能: 设置返航高度。
注意:
- 如果无人机的当前高度高于返航高度的设置值,无人机将使用当前高度返航。否则,它将爬升到返航高度的设置,然后执行返航操作。返航高度设置为 20m ~ 1500m。
extern T_UAVReturnCode UAV_FlightControl_SetGoHomeAltitude(E_UAVFlightControllerGoHomeAltitude altitude);
function UAV_FlightControl_GetGoHomeAltitude
- 功能: 获取返航高度。
extern T_UAVReturnCode UAV_FlightControl_GetGoHomeAltitude(E_UAVFlightControllerGoHomeAltitude *altitude);
function UAV_FlightControl_StartGoHome
- 功能: 当无人机在空中时,请求返航动作。
extern T_UAVReturnCode UAV_FlightControl_StartGoHome(void);
function UAV_FlightControl_CancelGoHome
- 功能: 在无人机返航时,请求取消返航动作。
extern T_UAVReturnCode UAV_FlightControl_CancelGoHome(void);
function UAV_FlightControl_GetGeneralInfo
- 功能: 获取无人机的通用信息。
extern T_UAVReturnCode UAV_FlightControl_GetGeneralInfo(T_UAVFlightControllerGeneralInfo *generalInfo);