紧急降落功能
概述
为确保无人机符合基本安全要求,欧盟发布了无人机 EU 2019/945 UAS 认证法规要求。其中 C5 和 C6 级别无人机,作为特许类别无人机需要进行不同的合规性测试,以确认其功能,无人机系统通过认证实验室进行一系列合规性测试,才能进入欧洲市场。
为了满足欧盟 C6 合规认证,PSDK 为用户提供了 GEO Caging 功能,无人机在三个区域内有对应不同的飞行表现。
名词解释
作业区域 (FG, Flight Geography Area)
在此区域内,飞行器可正常起飞、降落以及进行飞行作业。
应急区域 (CA, Contigency Area)
在此区域内,飞行器无法起飞、降落,且无法使用包括返航、指点飞行等智能功能。若飞行器进入应急区域边缘,飞行器将刹车悬停。
飞行区域 (OV, Operation Volume)
飞行区域包括作业区域 (FG) 和应急区域 (CV)。如飞行器飞出飞行区域,会触发飞行终止系统 (FTS),将直接使用降落伞降落。
飞行终止系统 (FTS, Flight Termination System)
在飞行出现安全隐患时主动强制停止飞行并独立飞行器自身控制系统的一套设备和软件。
FTS 功能
GEO Caging 包括可作业区域、应急区域。飞行器应在作业区域内作业,如进入应急区域飞行器将悬停,并有持续告警,需要手动飞行回作业区域。如飞出应急区域,飞行器将触发 FTS 飞行终止系统,若飞行器安装降落伞,直接使用降落伞降落,紧急迫降。请在作业前检测作业目标点或在飞行过程中注意飞行器的提示。
图 1.FTS 功能图示
使用 FTS 功能
开发者需要提供 FTS 信号回调函数,在回调函数里面实现 FTS 信号的触发,并返回正确的执行结果,若返回值不正确,FTS 回调将会被持续触发执行,保证通知到位。
注意: 因为 FTS 触发是飞行周期一次性行为,所以只提供回调函数的注册接口,不提供注销接口。
1. 初始化飞行控制模块
在使用飞行控制功能的相关接口之前,需要先调用 DjiTest_FlightControlInit 接口初始化飞行控制模块。
returnCode = DjiTest_FlightControlInit(ridInfo);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("Init flight Control sample failed,error code:0x%08llX", returnCode);
return returnCode;
}
2. 实现 FTS 回调函数
在实际环境中,开发者自行在回调中填充 FTS 信号的触发动作,并返回结果。示例代码由于不接入 FTS 实际物理信号,故采用 Log 提示的方式,供开发者参考实现。
T_DjiReturnCode DjiTest_TriggerFtsEventCallback(void)
{
USER_LOG_INFO("Received FTS Trigger event.");
USER_LOG_WARN("Note: This is an empty implementation, and the FTS signal needs to be triggered by the PWM signal.");
return DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
3. 注册回调函数
returnCode = DjiFlightController_RegTriggerFtsEventCallback(DjiTest_TriggerFtsEventCallback);
if (returnCode != DJI_ERROR_SYSTEM_MODULE_CODE_SUCCESS) {
USER_LOG_ERROR("Register trigger FTS event callback failed.");
return returnCode;
} else {
s_isFtsCallbackRegistered = true;
USER_LOG_INFO("Register trigger FTS event callback successfully."
"Please wait for the aircraft to trigger the payload to execute FTS action.");
}