You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DJI航点任务中通过Payload-SDK独立控制偏航?

DJI航点任务中实现迎风偏航调整的可行方案

1. 采用任务叠加式偏航控制,避免覆盖航点指令

直接使用DjiTest_FlightControlVelocityAndYawRateCtrl会覆盖航点任务的位置指令,原因是该接口属于全量摇杆控制模式。你可以切换到任务叠加飞行控制模式,只发送偏航相关指令,保留航点任务的位置控制逻辑:

  • 先设置飞行控制模式为航点任务辅助模式(具体枚举值需参考对应SDK版本的文档,例如DJI_FLIGHT_CONTROL_MODE_WAYPOINT_MISSION_ASSIST):
    DjiFlightController_SetFlightControlMode(DJI_FLIGHT_CONTROL_MODE_WAYPOINT_MISSION_ASSIST);
    
  • 发送仅包含偏航率的摇杆指令,x/y/z轴偏移量设为0(表示不干扰航点任务的位置控制):
    // desiredYawRate为根据风向计算出的目标偏航率
    T_DjiFlightControllerJoystickCommand joystickCommand = {0, 0, 0, desiredYawRate};
    DjiFlightController_SendJoystickCommand(&joystickCommand);
    

2. 实时修改航点任务的偏航参数(无需自定义任务控制器)

利用SDK的航点任务管理接口,在任务执行过程中动态更新当前航点的偏航目标,适配风向变化:

  • 通过DjiSensor_GetWindSpeedDirection获取实时风速风向数据,计算出能最小化滚转分量的目标偏航角targetYaw
  • 调用航点任务接口更新当前航点的偏航设置:
    T_DjiWaypointMission currentMission;
    if (DjiWaypointMission_GetCurrentMission(&currentMission) == DJI_ERROR_SYSTEM_MODULE_SUCCESS) {
        int currentWaypointIdx = DjiWaypointMission_GetCurrentWaypointIndex();
        // 修改当前航点的偏航角
        currentMission.waypoints[currentWaypointIdx].yaw = targetYaw;
        // 推送更新后的任务参数
        DjiWaypointMission_UpdateMission(&currentMission);
    }
    

这种方式完全基于原生航点任务逻辑,能兼容第三方软件,无需自定义任务控制器。

3. PoI模式的动态修改方法

如果采用兴趣点(PoI)指向模式,可通过SDK的PoI任务接口实时修改目标位置,间接调整无人机指向:

  • 先启动PoI指向任务(需确保与航点任务的控制优先级兼容,一般航点任务控制位置,PoI任务控制偏航)
  • 实时更新PoI目标位置,让无人机指向随目标位置变化:
    T_DjiPosition3D newPoiPos = {targetLon, targetLat, targetAlt}; // 根据风向计算的PoI位置
    DjiPoiMission_SetTargetPosition(&newPoiPos);
    

注意需确认SDK支持航点任务与PoI任务的叠加控制,部分机型可能需要调整任务模式配置。


内容的提问来源于stack exchange,提问作者Wachtel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:52:25