Skip to main content

飞行控制

概述

使用 PSDK 的无人机飞行控制功能,能够设置并获取无人机各项基础参数,控制无人机执行基础飞行动作。

基础概念

无人机基础信息

PSDK 开放了设置无人机基础参数的接口,开发者通过设置并获取无人机的基础参数,能够实现对无人机的精准控制:

  • 设置无人机的返航点和返航高度。
  • 设置失控行为。

具有信息管理功能的应用程序,能够方便用户获取无人机基础参数的信息:

  • 获取无人机返航点和返航高度。

无人机基础飞行动作

无人机的基础飞行动作主要包含无人机起飞、降落和无人机返航三类,开发者使用 PSDK 提供的接口,即可根据实际的控制需求,控制无人机执行指定的飞行动作。

功能类型 基本功能 功能说明
起飞和降落 自动起飞 使用该功能时,无人机会自动起飞
自动降落 使用该功能时,无人机会自动降落
取消自动降落 使用该功能时,无人机在下降过程中会停止降落,并悬停在空中
强制降落 无视降停面的状态,强制无人机降落(降落速度较快)
无人机返航 返航 使用该功能时,无人机会自动返航
取消返航 使用该功能时,无人机会悬停在空中

说明

  • 不同型号的无人机在执行起飞、降落和返航动作时的高度可能会有差异,详情请参见选购机型的用户手册。
  • 无人机解锁后,若未接收到起飞指令,无人机将自动上锁,螺旋桨会停止旋转,若无人机解锁失败,请根据错误码查询解锁失败的原因。

使用飞行控制功能

使用无人机飞行控制功能需要先初始化飞行控制模块,再设置无人机的基础参数。

说明:

  • 当完全脱离遥控器使用 PSDK 控制无人机时,需要通过订阅无人机端的关键数据,严格检查无人机的当前状态是否允许进行飞行控制。务必检查当前电量、返航点、失联行为、RTK 开关、避障开关等关键飞行参数。此外,还需要严格遵守当地的无人驾驶航空器法规要求,如美国需要强制上报 RID 信息,否则会导致无人机阻飞,需要第三方开发者保证 RID 信息的准确性。在飞行任务过程中,需要实时监控无人机实时的状态和告警信息,用来辅助远程驾驶员或者程序的决策,参考信息管理HMS 功能章节。

1. 初始化飞行控制模块

在使用飞行控制功能的相关接口之前,需要先调用 UAV_FlightControl_Init 接口初始化飞行控制模块。

returnCode = UAV_FlightControl_Init(ridInfo);
if (returnCode != true) {
LOG_ERROR("Init flight Control sample failed,error code:0x%08llX", returnCode);
return returnCode;
}

2. 获取和设置无人机参数

在控制无人机自动飞行之前,需要先检查和设置无人机的相关参数,飞行控制模块提供了一系列 Set 和 Get 的接口,可以获取和设置无人机参数,实时生效。以失联行为示例

    iRet = UAV_FlightControl_SetRCLostAction(UAV_FLIGHTCONTROL_RC_LOST_ACTION_GOHOME);
CHECK("set rc lost action", iRet);

E_FLIGHTCONTROL_LCLOST_ACTION action;
iRet = UAV_FlightControl_GetRCLostAction(&action);
CHECK("get rc lost action", iRet);

3. 控制无人机执行基础飞行动作

开发者使用 PSDK 提供的接口,即可根据实际的控制需求,控制无人机执行指定的飞行动作。考虑到飞行控制安全,建议通过数据订阅订阅相关的无人机参数进行闭环检查和控制,确保飞行动作执行正确。

T_UAVReturnCode uavStat;

//! Start takeoff
uavStat = UAV_FlightControl_StartTakeoff();
if (uavStat != true) {
USER_LOG_ERROR("Request to take off failed, error code: 0x%08X", uavStat);
return false;
}