You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在DJI Mobile SDK中实现多兴趣点(POI)自动任务设置

嘿,我来聊聊你遇到的DJI无人机多POI设置问题——你的现有方案能跑通,但航点超限和任务切换卡顿的痛点确实让人头疼。结合行业里的常见做法和Litchi的实现逻辑,给你拆解下思路和优化方向:

先优化现有航点生成逻辑,解决冗余航点问题

你现在遇到的“飞经POI正上方时生成大量调整航点”的核心问题,是过度频繁地触发了云台俯仰调整的递归检查。其实完全不用这么细粒度的航点插入,可以这么改:

  • 先明确无人机云台的硬件限制:比如大疆多数机型的云台最大俯仰角速度是60°/s左右,你可以基于这个参数,计算当前航点到下一个航点的飞行时间,判断云台是否能在这段飞行中完成俯仰角的平滑过渡。
  • 如果可以完成过渡,直接在这两个航点之间开启云台姿态的平滑插值(DJI Mobile SDK的WaypointMission本身支持设置航点间的云台姿态平滑过渡,不用手动插航点)。
  • 只有当飞行时间不足以完成姿态调整时,再插入1-2个过渡航点,而不是生成一堆冗余点。这样能大幅减少航点数量,避免触发99个的上限。
说说Litchi的多POI实现逻辑

Litchi能做到流畅多POI,核心是它没有依赖DJI原生的单POI接口,而是自己做了全链路的任务规划:

  • 提前计算所有航点的姿态参数:在任务规划阶段,Litchi会把所有POI作为全局参考,一次性算出每个航点对应的机头朝向、云台指向,把这些参数直接嵌入到航点数据里。飞行过程中无人机只需要执行预设的航点,不需要中途动态调整或插点。
  • 设置POI过渡的平滑区间:当无人机接近下一个POI的“触发范围”时(这个范围是根据飞行速度、姿态调整所需时间计算出来的),会提前开始平滑切换机头和云台朝向,而不是到某个点突然跳转,这样就不会有卡顿感。
  • 单任务整合所有POI逻辑:Litchi不会为每个POI创建单独任务,而是把整个多POI飞行作为一个完整的WaypointMission来处理,所有姿态控制都在同一个任务里完成,自然就避免了任务切换的卡顿。
几个可行的替代优化方案

除了调整现有逻辑,你还可以试试这些思路:

  • WaypointMissionwaypointActions扩展:每个航点可以设置多个动作,包括机头朝向、云台俯仰角。你只需要在POI切换的关键过渡航点设置姿态动作,让无人机在后续航点飞行中自动保持朝向,不用在每个中间点插航点。
  • 实时动态姿态控制:在航点任务执行时,通过DJIMissionManager的回调获取无人机实时位置,然后计算当前需要的机头和云台姿态,调用setGimbalPitchsetHeading接口动态调整。这种方法不用依赖航点的预设姿态,适合灵活切换POI,但要注意控制调用频率(比如每秒1-2次),避免频繁指令导致卡顿。
  • 阶段式POI任务规划:把整个飞行路径分成多个阶段,每个阶段对应一个POI。在阶段的起始航点设置该POI的姿态目标,让无人机在整个阶段内保持朝向该POI;阶段结束前的某个航点设置过渡姿态,让无人机平滑切换到下一个POI的朝向。

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

火山引擎 最新活动