本发明涉及自动驾驶,尤其涉及一种自动驾驶任务执行方法、装置、电子设备及存储介质。
背景技术:
1、自动驾驶系统包括感知、决策、规划和控制等部分,这些部分由多个软件模块组成,且每个软件模块包括一个或多个任务。在车辆以自动驾驶的状态运行时,软件模块通常会以发布-订阅的形式进行通信,软件模块中定义的各个任务会按照一定的规则不断被触发,在此期间,软件模块不断的订阅所需的数据、处理并发布数据至下游其他模块。例如,车辆传感器检测输出的数据,软件模块进行订阅、处理后,发布对应的控制指令,从而控制车辆的正常行驶。
2、理想状态下,当车辆传感器感知到外界环境的变化后,需要尽可能快地输出对车辆的控制指令,使车辆能够迅速地做出反应,以提高车辆的性能。
3、自动驾驶系统中软件模块包含的任务,大致可以简化成收取数据、处理数据及发送结果的过程,其中,收取数据过程是实时的,订阅的数据在到达后就会按照指定的策略保存并触发预先定义的处理逻辑。关于任务调度,主要针对的是发布数据(处理数据及发送结果)的回调函数,包括对发布数据的处理过程及向外发布数据。目前常用的做法是通过定时器定时触发各个软件模块中的数据发布回调函数,周期性的执行一些计算逻辑并向下游软件模块发送结果。而受硬件性能及功耗限制,传感器等设备对数据的处理能力存在上限,因此上游传感器的发送频率不可能无限大,整个自动驾驶系统端到端的数据延迟取决于各个软件模块数据发送频率以及各个任务的处理耗时。
4、综上所述,周期性的发送数据这一被普遍采用的方法可以保证数据发送的频率,将端到端的整体延迟控制在可接受的范围内,但考虑到硬件性能限制,不能无限增大发送频率,继续优化较为困难。
技术实现思路
1、本发明提供一种自动驾驶任务执行方法、装置、电子设备及存储介质,用以解决现有技术中通过定时触发机制对数据进行发送无法进一步的优化数据发送频率的缺陷,实现对系统平均延迟的进一步优化,保证了自动驾驶系统整体延迟极大值可控。
2、本发明提供一种自动驾驶任务执行方法,所述方法包括:
3、接收第一数据,所述第一数据为第一任务执行时所依赖的订阅数据之一;
4、查找依赖所述第一数据的第一任务;
5、响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务;
6、响应于所述第一任务执行时所依赖的全部订阅数据未接收完毕,且当前时间戳距离上一次执行所述第一任务的时间戳的时长超过第一阈值,执行所述第一任务。
7、根据本发明提供的一种自动驾驶任务执行方法,所述响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务,包括:
8、接收所述第一任务执行时所依赖的所述订阅数据;
9、在全部订阅数据接收完成后,基于所述第一任务对应的预设规则判断是否执行第一任务,所述预设规则为用户设置的判断规则。
10、根据本发明提供的一种自动驾驶任务执行方法,所述执行所述第一任务,包括:
11、基于回调函数处理所述订阅数据,并发送处理后的数据,所述回调函数为用户预设的函数。
12、根据本发明提供的一种自动驾驶任务执行方法,所述执行所述第一任务,之后包括:
13、更新当前的所述第一任务执行的时间戳。
14、根据本发明提供的一种自动驾驶任务执行方法,所述响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务,包括:
15、将接收到的订阅数据对应的预备就绪状态设置为真;
16、检查全部所述订阅数据对应的预备就绪状态,若均为真,则检查第一任务对应的确认就绪判断函数返回的状态,若为真,则执行所述第一任务,所述确认就绪判断函数为基于用户设置的判断规则。
17、根据本发明提供的一种自动驾驶任务执行方法,所述检查第一任务对应的确认就绪判断函数返回的状态,包括:
18、基于所述确认就绪判断函数判断的订阅数据的延迟是否小于第二阈值且不同订阅数据接收时刻的时间差是否小于第三阈值,若是,则所述确认就绪判断函数返回的状态为真;否则,所述确认就绪判断函数返回状态为假。
19、根据本发明提供的一种自动驾驶任务执行方法,所述执行所述第一任务,之后包括:
20、将所述第一任务执行时所依赖的全部订阅数据对应的预备就绪状态重置为假。
21、本发明还提供一种自动驾驶任务执行装置,包括:
22、接收模块,用于接收第一数据,所述第一数据为第一任务执行时所依赖的订阅数据之一;
23、查找模块,用于查找依赖所述第一数据的第一任务;
24、第一响应模块,用于响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务;
25、第二响应模块,用于响应于所述第一任务执行时所依赖的全部订阅数据未接收完毕,且当前时间戳距离上一次执行所述第一任务的时间戳的时长超过第一阈值,执行所述第一任务。
26、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述自动驾驶任务执行方法。
27、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述自动驾驶任务执行方法。
28、本发明提供的自动驾驶任务执行方法、装置、电子设备及存储介质,根据接收到的订阅数据对依赖于该订阅数据的任务进行查找,并在该任务执行所依赖的其他订阅数据全部接收完毕时执行任务(相当于实时触发机制),有效的优化了任务执行的最小延迟。当该任务执行所依赖的其他订阅数据未全部接收完毕,且当前时刻距离该任务上一次执行时间的时长超过了第一时间阈值,则表示该任务所依赖的订阅数据存在延迟或其他特殊情况导致无法及时接收,为了保证任务的时效性,在当前时刻距离该任务上一次执行时间的时长超过了第一时间阈值时,执行该任务(相当于定时触发机制),从而将任务的触发延迟控制在可接受范围内。该方法通过在定时触发机制的基础上结合实时触发机制,从而对任务所依赖的订阅数据的接收情况进行快速及有效的判断,降低了系统的平均延迟,保证了自动驾驶系统整体延迟的极大值可控。
1.一种自动驾驶任务执行方法,其特征在于,所述方法包括:
2.根据权利要求1所述的自动驾驶任务执行方法,其特征在于,所述响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务,包括:
3.根据权利要求2所述的自动驾驶任务执行方法,其特征在于,所述执行所述第一任务,包括:
4.根据权利要求1至3任意一项所述的自动驾驶任务执行方法,其特征在于,所述执行所述第一任务,之后包括:
5.根据权利要求1所述的自动驾驶任务执行方法,其特征在于,所述响应于所述第一任务执行时所依赖的全部订阅数据已接收完毕,执行所述第一任务,包括:
6.根据权利要求5所述的自动驾驶任务执行方法,其特征在于,所述检查第一任务对应的确认就绪判断函数返回的状态,包括:
7.根据权利要求5所述的自动驾驶任务执行方法,其特征在于,所述执行所述第一任务,之后包括:
8.一种自动驾驶任务执行装置,其特征在于,所述装置包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述自动驾驶任务执行方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述自动驾驶任务执行方法。