用于自动驾驶系统的处理任务的调度方法及其装置与流程

文档序号:36420907发布日期:2023-12-20 10:19阅读:68来源:国知局
用于自动驾驶系统的处理任务的调度方法及其装置与流程

本发明涉及自动驾驶,尤其涉及用于自动驾驶系统的处理任务的调度方法及其装置。


背景技术:

1、自动驾驶系统是目前人工智能的一个重要的应用领域。在无人车系统中,运行着对应不同功能的多个功能模块,各个功能模块由程序实现,可以有或没有配合的硬件设备。典型的功能模块如,驾驶(driver)模块、感知(perception)模块和规划(planning)模块等。不同的无人车系统,会由于配置的硬件设备不同,或软件功能不同,而设置不同的功能模块。

2、现有技术中,每个功能模块都有对应的若干处理任务,各处理任务负责对实时产生的各类数据进行处理,例如,感知模块的感知任务,在实时接收到采集的感知数据时就会进行处理。各处理任务之间会需要交互数据。例如,规划模块的规划任务输出的路线数据,会提供给驾驶模块的驾驶任务,从而对驾驶进行控制。由于处理任务之间的数据交互关系,导致处理任务之间存在依赖关系,必须串行处理。

3、此外,自动驾驶系统的另一个同样关键的需求是实时性,即从接收新的一帧感知数据到发送新的一帧控制信息的延时需要有确定的上限,即延时≤上限。延时的确定的上限可以确保自动驾驶车辆在任意时刻都能对外界事件做出及时的反应,以确保自动驾驶功能的安全性,车辆安全等级在此方面也有相应的刚性要求。

4、因此,在自动驾驶系统中,如何优化若干处理任务的执行次序,以满足延时≤总延迟阈值的要求,就成为一个亟待解决的问题。


技术实现思路

1、有鉴于此,本发明的主要目的在于提供一种用于自动驾驶系统的处理任务的调度方法及其装置。

2、为达到上述目的,本发明的技术方案是这样实现的:一种用于自动驾驶系统的处理任务的调度方法,包括以下步骤:

3、获取多个处理任务、总延迟阈值、以及每个处理任务对应的属性信息,所述属性信息包括:处理任务的若干触发条件、若干输出消息、最坏执行时间和每个输出消息对应的延迟时间;当处理任务对应的所有触发条件都被满足时,自动驾驶系统能够启动所述处理任务,所述处理任务的实际执行时间≤对应的最坏执行时间;在所述处理任务完成执行时,发出若干输出消息;每个输出消息,在经过对应的时间time之后,自动驾驶系统能够探测到所述输出消息,所述时间time≤所述输出消息的延迟时间。

4、创建多个处理任务对应的dag图,在所述dag图中,每个处理任务均对应到唯一的节点,每个处理任务对应的节点的权重为所述处理任务的最坏执行时间;当第一处理任务的输出消息等于第二处理任务的触发条件时,第一处理任务对应的节点有指向第二处理任务对应节点的有向边,所述有向边的权重为所述输出消息的延迟时间;当第三处理任务有输出消息,但不存在任一的处理任务的触发条件为所述输出消息时,创建一个权重为零的目标节点,第三处理任务对应的节点有指向目标节点的有向边,所述有向边的权重为所述输出消息的延迟时间。

5、对于每个节点均做以下处理:如果箭头朝向所述节点的有向边的数量为零,则所述节点的最早启动时间time1=0;所述节点的最早结束时间time3=最早启动时间time1+最坏执行时间;如果箭头朝向所述节点的有向边的数量为num1,且分别为,num1为自然数,所述节点的最早启动时间time1=的箭尾指向的节点的最早结束时间对应的延迟时间;对所述dag图中的关键路径中的每个节点均做以下处理:所述节点的最晚启动时间time2=最早启动时间time1,所述节点的启动时间=最早启动时间time1。

6、对于每个不处于所述关键路径中的节点均做以下处理:如果箭尾朝向所述节点的有向边的数量为零,则所述节点的最晚启动时间time2=总延迟阈值-所述节点的权重;如果箭尾朝向所述节点的有向边的数量为num2,分别为,num2为自然数,所述节点的最晚启动时间time3=的箭头指向的节点的最晚启动时间对应的延迟时间-所述节点对应的最坏执行时间;对于所有不处于所述关键路径中的节点分配到若干执行路径中,在每个执行路径中,对应的最早启动时间time1≤处理任务的启动时间≤对应的最晚启动时间time2。

7、所述自动驾驶系统为关键路径和每条路径均分配不同的线程上,控制每个线程运行,其中,目标节点不执行。

8、作为本发明实施例的一种改进,还包括以下步骤:如果所述关键路径中的最后一个节点的最早结束时间>总延迟阈值时,发出警报。

9、作为本发明实施例的一种改进,所述控制每个线程运行具体包括:将每个线程分配到不同的cpu核心上运行,在线程的执行过程中,cpu核心不执行中断。

10、作为本发明实施例的一种改进,所述对于所有不处于所述关键路径中的节点分配到若干第一执行路径中具体包括:按照最早启动时间time1的由小到大的顺序,对于所有不处于所述关键路径中的节点进行排序,得到节点队列,且节点的最晚完成时间time4=最晚启动时间time2+最坏执行时间。

11、创建空的集合,按照预设的次序,对所述节点队列中的每个节点均进行以下处理:

12、如果所述集合中存在第一执行路径,且第一执行路径满足第一条件和第二条件,且第四、第五处理任务相邻时,则将所述节点插入到第一执行路径中的第四、第五处理任务之间,之后执行第一操作和第二操作。

13、如果所述集合中存在第二执行路径,且第二执行路径满足第一条件,且第四处理任务没有后续的处理任务时,则将所述节点插入到第三执行路径中的第四处理任务之后,之后执行第一操作。

14、如果所述集合中存在第三执行路径,且第三执行路径满足第二条件,且第五处理任务没有前续的处理任务时,则将所述节点插入到第三执行路径中的第五处理任务之前,之后执行第二操作。

15、第一条件为:存在第四处理任务且第四处理任务的最早结束时间time3≤节点的最早启动time1;第二条件为:存在第五处理任务且节点的最早结束时间time3≤第五处理任务的最晚启动时间time2时。

16、第一操作为:如果节点的最早启动time1≤第四处理任务的最晚完成时间time4,则len1=第四处理任务的最晚完成时间time4-节点的最早启动time1,将第四处理任务的最晚启动时间time2减去len1;第二操作为:第五处理任务的最早启动时间time1≤节点的最早完成时间time3,则len2=节点的最早完成时间time3-第五处理任务的最早启动时间time1,将第五处理任务的最早启动时间增加len2。

17、作为本发明实施例的一种改进,所述按照预设的次序具体包括:按照从队头朝向队尾的次序。

18、本发明实施例还提供了一种用于自动驾驶系统的处理任务的调度装置,包括以下模块:

19、信息获取模块,用于获取多个处理任务、总延迟阈值、以及每个处理任务对应的属性信息,所述属性信息包括:处理任务的若干触发条件、若干输出消息、最坏执行时间和每个输出消息对应的延迟时间;当处理任务对应的所有触发条件都被满足时,自动驾驶系统能够启动所述处理任务,所述处理任务的实际执行时间≤对应的最坏执行时间;在所述处理任务完成执行时,发出若干输出消息;每个输出消息,在经过对应的时间time之后,自动驾驶系统能够探测到所述输出消息,所述时间time≤所述输出消息的延迟时间。

20、adg图生成模块,用于创建多个处理任务对应的dag图,在所述dag图中,每个处理任务均对应到唯一的节点,每个处理任务对应的节点的权重为所述处理任务的最坏执行时间;当第一处理任务的输出消息等于第二处理任务的触发条件时,第一处理任务对应的节点有指向第二处理任务对应节点的有向边,所述有向边的权重为所述输出消息的延迟时间;当第三处理任务有输出消息,但不存在任一的处理任务的触发条件为所述输出消息时,创建一个权重为零的目标节点,第三处理任务对应的节点有指向目标节点的有向边,所述有向边的权重为所述输出消息的延迟时间。

21、第一处理模块,用于对于每个节点均做以下处理:如果箭头朝向所述节点的有向边的数量为零,则所述节点的最早启动时间time1=0;所述节点的最早结束时间time3=最早启动时间time1+最坏执行时间;如果箭头朝向所述节点的有向边的数量为num1,且分别为,num1为自然数,所述节点的最早启动时间time1=的箭尾指向的节点的最早结束时间对应的延迟时间;对所述dag图中的关键路径中的每个节点均做以下处理:所述节点的最晚启动时间time2=最早启动时间time1,所述节点的启动时间=最早启动时间time1。

22、第二处理模块,用于对于每个不处于所述关键路径中的节点均做以下处理:如果箭尾朝向所述节点的有向边的数量为零,则所述节点的最晚启动时间time2=总延迟阈值-所述节点的权重;如果箭尾朝向所述节点的有向边的数量为num2,分别为,num2为自然数,所述节点的最晚启动时间time3=的箭头指向的节点的最晚启动时间对应的延迟时间-所述节点对应的最坏执行时间;对于所有不处于所述关键路径中的节点分配到若干执行路径中,在每个执行路径中,对应的最早启动时间time1≤处理任务的启动时间≤对应的最晚启动时间time2。

23、执行模块,用于所述自动驾驶系统为关键路径和每条路径均分配不同的线程上,控制每个线程运行,其中,目标节点不执行。

24、作为本发明实施例的一种改进,还包括以下模块:第三处理模块,用于如果所述关键路径中的最后一个节点的最早结束时间>总延迟阈值时,发出警报。

25、作为本发明实施例的一种改进,所述执行模块还用于:将每个线程分配到不同的cpu核心上运行,在线程的执行过程中,cpu核心不执行中断。

26、作为本发明实施例的一种改进,所述第二处理模块还用于:按照最早启动时间time1的由小到大的顺序,对于所有不处于所述关键路径中的节点进行排序,得到节点队列,且节点的最晚完成时间time4=最晚启动时间time2+最坏执行时间。

27、创建空的集合,按照预设的次序,对所述节点队列中的每个节点均进行以下处理:

28、如果所述集合中存在第一执行路径,且第一执行路径满足第一条件和第二条件,且第四、第五处理任务相邻时,则将所述节点插入到第一执行路径中的第四、第五处理任务之间,之后执行第一操作和第二操作。

29、如果所述集合中存在第二执行路径,且第二执行路径满足第一条件,且第四处理任务没有后续的处理任务时,则将所述节点插入到第三执行路径中的第四处理任务之后,之后执行第一操作。

30、如果所述集合中存在第三执行路径,且第三执行路径满足第二条件,且第五处理任务没有前续的处理任务时,则将所述节点插入到第三执行路径中的第五处理任务之前,之后执行第二操作。

31、第一条件为:存在第四处理任务且第四处理任务的最早结束时间time3≤节点的最早启动time1;第二条件为:存在第五处理任务且节点的最早结束时间time3≤第五处理任务的最晚启动时间time2时。

32、第一操作为:如果节点的最早启动time1≤第四处理任务的最晚完成时间time4,则len1=第四处理任务的最晚完成时间time4-节点的最早启动time1,将第四处理任务的最晚启动时间time2减去len1;第二操作为:第五处理任务的最早启动时间time1≤节点的最早完成时间time3,则len2=节点的最早完成时间time3-第五处理任务的最早启动时间time1,将第五处理任务的最早启动时间增加len2。

33、作为本发明实施例的一种改进,所述第二处理模块还用于:按照从队头朝向队尾的次序。

34、本发明实施例所提供的用于自动驾驶系统的处理任务的调度方法及其装置具有以下优点:本发明实施例公开了一种用于自动驾驶系统的处理任务的调度方法及其装置,该处理任务包括:获取多个处理任务、总延迟阈值、以及每个处理任务对应的属性信息;创建多个处理任务对应的dag图;寻找关键路径,之后,将其余的节点分配到若干执行路径中,在每个执行路径中,对应的最早启动时间≤处理任务的启动时间≤对应的最晚启动时间;所述自动驾驶系统为关键路径和每条路径均分配不同的线程上,控制每个线程运行,其中,目标节点不执行。从而能够优化若干处理任务的执行次序,以满足延时≤总延迟阈值的要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1