一种支持异常自愈与层级断点续飞的无人机任务调度方法及系统

摘要: 本发明属于无人机任务调度,具体涉及一种支持异常自愈与层级断点续飞的无人机任务调度方法及系统。背景技术:1、现有的无人机调度存在以下问题:2、1.多源任务入口缺乏...
一种支持异常自愈与层级断点续飞的无人机任务调度方法及系统

本发明属于无人机任务调度,具体涉及一种支持异常自愈与层级断点续飞的无人机任务调度方法及系统。

背景技术:

1、现有的无人机调度存在以下问题:

2、1. 多源任务入口缺乏统一生命周期管理。定时任务、人工应急任务、第三方联动任务通常从不同入口触发,若缺少统一派发、去重、优先级和入队机制,容易导致重复建单、重复下发或同一设备被多个任务同时抢占。

3、2. 设备并发控制粒度不足。现有调度方案多关注任务与航线本身,未充分处理多服务节点并发执行、网络延迟和调度器重复唤醒时对同一无人机或机巢的排他控制,容易发生同一设备同时执行多个起飞指令的问题。

4、3. 起飞前异常处理缺少分级补偿机制。对风速过大、电量不足、机巢非空闲等可恢复异常,如果直接失败,会降低自动机场作业率;如果无限重试,又会占用队列资源并造成任务堆积。

5、4. 飞行中断后的续飞任务缺少可审计的层级链路。传统断点恢复可能覆盖原任务或简单重新生成任务,难以记录多次中断、多次补偿执行的先后关系,也难以在已有续飞子任务尚未完成时阻止重复生成。

6、5. 调度、安检、延期和续飞之间缺少闭环联动。现有方案往往将调度、航线规划、故障处理和断点续飞作为分散功能处理,未形成可由状态机驱动的自动闭环。

技术实现思路

1、本发明要解决的是无人机自动机场或无人机常态化巡检场景下的任务调度可靠性问题,提出一种支持异常自愈与层级断点续飞的无人机任务调度方法及系统。

2、为实现上述目的,本发明通过以下技术方案实现:

3、一种支持异常自愈与层级断点续飞的无人机任务调度方法,包括如下步骤:

4、s1. 获取待派发的无人机任务和对应的任务规则,得到可自动调度的任务;

5、s2. 对步骤s1获得的可自动调度的任务,采用基于版本号或原状态条件的数据库更新语句执行派发抢占,得到已派发的任务;

6、s3. 对步骤s2得到的已派发的任务,创建任务明细,并生成去重键,创建任务队列;

7、s4. 调度器基于步骤s3得到的任务队列,选取队列头节点,然后调度器以无人机的设备标识为粒度申请分布式锁,得到具有分布式锁的无人机;

8、s5. 对步骤s4得到的具有分布式锁的无人机,进行校验无人机是否存在已执行任务,若存在,则释放当前分布式锁并将本条队列记录为等待,若不存在,则进入下一步;

9、s6. 进行起飞前安全检查,输出调度动作,基于不同的调度动作安排无人机任务调度。

10、进一步的,步骤s1中按周期从任务申请表drone_tasks中读取状态为待派发的业务任务,并关联读取任务规则配置表、设备绑定表和航线模板表,得到包括任务来源、触发模式、任务等级、目标设备标识、计划执行时间、航线类型以及是否允许断点续飞的基础调度参数;其中,人工触发类任务仅登记为待人工确认状态,暂不进入执行队列。

11、进一步的,步骤s3的具体实现方法包括如下步骤:

12、s3.1. 创建任务明细记录patrol_task_detail,写入任务类型、设备标识、父任务标识、续飞序号、计划开始时间、任务状态和断点续飞配置;其中,任务类型、计划时间来自任务申请表,设备标识来自设备绑定关系,父任务标识和续飞序号在普通任务场景下初始化为0或空值,在续飞场景下由父任务链继承或递增生成;

13、s3.2. 根据任务明细记录生成去重键k_i,并将任务写入调度队列表drone_task_queue,同时写入提交模式等级p_i、业务优先级q_i、可执行时间a_i和队列状态u_i;若任务为应急任务,则在数据库事务提交后向调度器发送即时唤醒事件,若为普通任务,则等待调度器按周期轮询。

14、进一步的,步骤s4中选取队列头节点的表达式为:

15、r_i=(p_i,q_i,a_i,r_i)

16、其中,r_i为任务i的队列头节点;p_i为任务i的提交模式等级,q_i为任务i的业务优先级数值,a_i为任务i的可执行时间戳,r_i为任务i的稳定排序号,然后调度器在候选集合中按照r_i的字典序选择队列头结点。

17、进一步的,步骤s4中调度器以无人机的设备标识为粒度申请分布式锁的方法为使用redis键lock:drone:{deviceid}执行原子加锁指令set nx px,lock:drone:为加锁值前缀字符串,deviceid为设备id。

18、1. 根据权利要求5所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,其特征在于,步骤s5中进行校验无人机是否存在已执行任务的方法为查询任务明细表中同一设备是否已存在状态为执行中in_progress或已认领待执行claimed的执行中任务。

19、进一步的,步骤s6的具体实现方法包括如下步骤:

20、s6.1. 执行起飞前安全检查时,分别从无人机osd遥测接口读取在线状态、电量b_i和飞行状态,从机巢状态接口读取舱门、充电和占用状态,从气象服务读取当前风速w_i,从授权或证书服务读取权限有效期,从任务配置表读取最低电量阈值b_min和最大允许风速阈值w_max;随后对起飞条件进行判定,并输出可执行execute、推迟执行delay、不满足起飞条件fail三类调度动作;

21、对起飞条件进行判定的公式为:

22、

23、其中,为任务i对应分布式锁获取状态,为任务i对应无人机是否存在执行中任务,为任务i对应无人机的当前电量,为允许起飞的最低电量阈值,为任务i起飞时的当前风速,为任务i对应机巢空闲状态,ei为任务i对应的起飞条件判定结果;

24、s6.2. 对调度动作为execute的,根据任务类型下发常规航线指令、指点任务指令或续飞指令,并将队列状态和任务明细状态更新为执行中;

25、若调度动作为delay,系统依据异常类型确定e_i,并选择对应的延期时间、计算新的可执行时间,使队列返回等待状态;

26、选择任务i对应的延期时间的公式为:

27、

28、其中,f为决策函数,  为安检输出的可恢复异常类型,为机巢非空闲时的延期时间,为电量不足时的延期时间,为风速超标时的延期时间;

29、计算新的可执行时间的公式为:

30、

31、其中,tnow为基准时间;

32、s6.3. 对调度动作为fail的,将队列和任务明细置为执行失败failed,并对状态为失败且允许断点续飞的顶级父任务进行扫描;当不存在未完成续飞子任务时,判断续飞生成条件,并生成新的续飞子任务,将其再次写入调度队列,后续调度时根据非零父任务标识识别为续飞任务并下发断点续飞指令;

33、判断续飞生成条件的公式为:

34、

35、其中,为任务i是否处于失败状态,gi为任务i是否允许断点续飞,pi为任务i的父任务标识,为任务i的续飞子任务集合,j为续飞子任务,xj为续飞子任务j的执行状态;

36、为未完成续飞状态集合;

37、生成新的续飞子任务的公式为:

38、

39、其中,为新计算出来的子任务序号,为所有子任务集合已有的序号值集合,为与任务i相邻的节点集合,max为最大值函数。

40、一种支持异常自愈与层级断点续飞的无人机任务调度方法的系统,包括处理器、存储器和存储在所述存储器中且可运行在所述处理器上的计算机程序,所述计算机程序运行时实现所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法的步骤。

41、本发明的有益效果:

42、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,形成从任务申请到异常恢复的完整调度闭环。本发明将业务任务派发、队列注册、设备锁、安检、执行、延期、失败和续飞统一在同一生命周期内处理,避免现有方案中调度、航线执行和故障恢复割裂的问题。

43、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,降低多源任务和多实例部署下的并发冲突。通过乐观锁抢占、去重键入队、设备级分布式锁和执行中状态互斥校验的多级防护,本发明能够在多调度器实例和多任务入口并存时防止重复派发、重复入队和同一设备并发起飞。

44、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,提升无人值守作业的自愈能力。对机巢非空闲、电量不足、风速超标等暂态异常,本发明不直接失败,而是根据异常类型计算延期时间并自动重排,使任务在条件恢复后继续被调度,提高自动机场连续作业能力。

45、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,提升断点续飞的可审计性和可控性。本发明通过父任务标识和递增续飞序号建立层级续飞链,使每次中断和每次续飞都有独立任务记录;同时通过未完成子任务状态扫描阀门避免重复生成续飞子任务。

46、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,兼容常规任务、应急任务和续飞任务。续飞子任务生成后再次进入统一调度队列,由同一排序、锁定、安检和执行框架处理,无需为续飞另建孤立调度链路,便于系统维护和扩展。

47、本发明所述的一种支持异常自愈与层级断点续飞的无人机任务调度方法,便于工程实现和参数化配置。本发明中的扫描周期、延期时间、电量阈值、风速阈值、优先级映射和去重键构成均可参数化,能够适配不同机型、机场和业务场景。