用于自动驾驶车辆的任务调度方法、设备及存储介质技术

技术编号:25708114 阅读:31 留言:0更新日期:2020-09-23 02:55
本申请公开了用于自动驾驶车辆的任务调度方法、设备及存储介质,涉及自动驾驶技术领域。具体实现方案为:通过用于自动驾驶车辆的任务调度装置接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;根据任务数据生成待处理任务,将待处理任务加入到任务队列中;激活线程池中的目标线程;从任务队列中提取目标待处理任务发送给目标线程,以使目标线程执行目标待处理任务。通过用于自动驾驶车辆的任务调度装置进行待处理任务的调度,保证调度过程的可控性,同时将待处理任务加入任务队列,通过激活线程池中的线程,并从任务队列中提取任务给已激活的线程执行,可使待处理任务能够及时被执行,保证了任务执行的实时性。

【技术实现步骤摘要】
用于自动驾驶车辆的任务调度方法、设备及存储介质
本申请实施例涉及计算机技术中的自动驾驶
,尤其涉及用于自动驾驶车辆的任务调度方法、设备及存储介质。
技术介绍
自动驾驶车辆通常需要通过传感器获取信息,再基于算法做出判断和决策,并向自动驾驶车辆发出控制指令,对整条链路的实时性、并发度要求比较高。现有技术中对于自动驾驶车辆的定位、感知、规划、控制等计算任务,通常是基于ROS(RobotOperatingSystem,机器人操作系统),采用多进程或多线程调度,将计算任务交给机器人操作系统的内核基于公平调度进行处理,也即将计算资源平均分配给各个计算任务。现有的自动驾驶车辆的任务调度方式,采用机器人操作系统的内核进行计算任务的调度存在不可控性,不符合自动驾驶车辆实时可控的设计要求,此外,基于公平调度的调度方法也无法保证自动驾驶车辆关键任务的实时特性。
技术实现思路
本申请提供一种用于自动驾驶车辆的任务调度方法、设备及存储介质,以保证对自动驾驶车辆计算任务调度的可控性。本申请第一个方面提供一种用于自动驾驶车辆的任务调度方法,包括:接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;根据所述任务数据生成待处理任务,将所述待处理任务加入到任务队列中;激活线程池中的目标线程,其中所述线程池中包括预先配置的至少一个线程;从所述任务队列中提取目标待处理任务发送给所述目标线程,以使所述目标线程执行所述目标待处理任务。本申请第二个方面提供一种用于自动驾驶车辆的任务调度装置,包括:任务管理模块,用于接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;根据所述任务数据生成待处理任务;调度策略模块,用于将所述待处理任务加入到任务队列中;线程池模块,用于激活线程池中的目标线程,其中所述线程池中包括预先配置的至少一个线程;所述调度策略模块还用于,从所述任务队列中提取目标待处理任务发送给所述目标线程,以使所述目标线程执行所述目标待处理任务。本申请第三个方面提供一种用于自动驾驶车辆的任务调度装置,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。本申请第四个方面提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法。本申请第五个方面提供一种电子设备,包括:自动驾驶车辆功能模块、自动驾驶车辆操作系统、以及如第三个方面所述的用于自动驾驶车辆的任务调度装置;所述自动驾驶车辆功能模块用于产生任务数据,并发送给所述用于自动驾驶车辆的任务调度装置;所述用于自动驾驶车辆的任务调度装置用于根据所述任务数据生成待处理任务,将所述待处理任务加入到任务队列中,并激活线程池中的目标线程,从所述任务队列中提取目标待处理任务发送给所述目标线程;其中所述线程池中包括所述自动驾驶车辆操作系统中预先配置的至少一个线程;所述自动驾驶车辆操作系统用于通过所述目标线程执行所述目标待处理任务。本申请第六个方面提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如第一方面所述的方法。上述申请中的一个实施例具有如下优点或有益效果:通过用于自动驾驶车辆的任务调度装置接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;根据任务数据生成待处理任务,将待处理任务加入到任务队列中;激活线程池中的目标线程,其中线程池中包括自动驾驶车辆操作系统中预先配置的至少一个线程;从任务队列中提取目标待处理任务发送给目标线程,以使目标线程执行目标待处理任务。通过在自动驾驶车辆功能模块与自动驾驶车辆操作系统之间架构了用于自动驾驶车辆的任务调度装置,进行待处理任务的调度,无需通过自动驾驶车辆操作系统内核进行调度,保证调度过程的可控性,同时将待处理任务加入任务队列,通过激活线程池中的线程,并从任务队列中提取任务给已激活的线程执行,可使待处理任务能够及时被执行,保证了任务执行的实时性。上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。附图说明附图用于更好地理解本方案,不构成对本申请的限定。其中:图1是用来实现本申请实施例的用于自动驾驶车辆的任务调度方法的电子设备的系统架构图;图2是本申请一实施例提供的用于自动驾驶车辆的任务调度方法的示意图;图3是本申请一实施例提供的用于自动驾驶车辆的任务调度方法中按照优先级调度过程的场景示意图;图4是本申请另一实施例提供的用于自动驾驶车辆的任务调度方法的示意图;图5是本申请一实施例提供的用于自动驾驶车辆的任务调度装置的框图;图6是本申请另一实施例提供的用于自动驾驶车辆的任务调度装置的框图;图7是用来实现本申请实施例的用于自动驾驶车辆的任务调度方法的电子设备的框图。具体实施方式以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。现有技术中对于自动驾驶车辆的定位、感知、规划、控制等计算任务,通常是基于ROS(RobotOperatingSystem,机器人操作系统),采用多进程或多线程调度,将计算任务交给机器人操作系统的内核基于公平调度进行处理,也即将计算资源平均分配给各个计算任务。现有的自动驾驶车辆的任务调度方式,采用机器人操作系统的内核进行计算任务的调度,无法灵活的控制计算任务的创建、运行和停止,因此存在不可控性,不符合自动驾驶车辆实时可控的设计要求,此外,基于公平调度的调度方法也无法保证自动驾驶车辆关键任务的实时特性。为了使自动驾驶车辆的计算任务调度具有可控性,本申请在自动驾驶车辆功能模块与自动驾驶车辆操作系统之间架构了用于自动驾驶车辆的任务调度装置,其中自动驾驶车辆功能模块包括但不限于定位模块、感知模块、规划模块、控制模块,自动驾驶车辆功能模块产生任务数据,发送给用于自动驾驶车辆的任务调度装置,由用于自动驾驶车辆的任务调度装置根据任务数据生成待处理任务,并控制自动驾驶车辆操作系统的线程执行待处理任务。更进一步的,由于待处理任务可能有多个,为了更有效的进行任务调度,任务调度系统将待处理任务加入到任务队列中,并激活线程池中的目标线程,从任务队列中提取目标待处理任务发送给目标线程;其中线程池中包括自动驾驶车辆操作系统中预先配置的至少一个线程;进而由自动驾驶车辆操作系统通过目标线程执所述目标待处理任务,从而保证了计算任务调度的可控性,同时通过激活线程池中本文档来自技高网...

【技术保护点】
1.一种用于自动驾驶车辆的任务调度方法,包括:/n接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;/n根据所述任务数据生成待处理任务,将所述待处理任务加入到任务队列中;/n激活线程池中的目标线程,其中所述线程池中包括预先配置的至少一个线程;/n从所述任务队列中提取目标待处理任务发送给所述目标线程,以使所述目标线程执行所述目标待处理任务。/n

【技术特征摘要】
1.一种用于自动驾驶车辆的任务调度方法,包括:
接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;
根据所述任务数据生成待处理任务,将所述待处理任务加入到任务队列中;
激活线程池中的目标线程,其中所述线程池中包括预先配置的至少一个线程;
从所述任务队列中提取目标待处理任务发送给所述目标线程,以使所述目标线程执行所述目标待处理任务。


2.根据权利要求1所述的方法,其中,所述将所述待处理任务加入到任务队列中,包括:
根据预设的调度策略确定所述待处理任务的优先级,并将所述待处理任务加入到对应优先级的任务队列中;
所述从所述任务队列中提取目标待处理任务发送给所述目标线程,包括:
按照优先级顺序遍历各优先级的任务队列,提取优先级最高的待处理任务;
将所述优先级最高的待处理任务确定为目标待处理任务,并发送给所述目标线程。


3.根据权利要求1所述的方法,其中,所述激活线程池中的目标线程,包括:
在接收到所述任务数据时,随机选择所述线程池中的空闲线程作为所述目标线程进行激活,并采用条件锁配置所述目标线程的等待条件。


4.根据权利要求3所述的方法,其中,所述从所述任务队列中提取目标待处理任务发送给所述目标线程,包括:
当满足所述目标线程的等待条件时,从所述任务队列中提取目标待处理任务发送给所述目标线程。


5.根据权利要求1-4任一项所述的方法,其中,所述从所述任务队列中提取目标待处理任务发送给所述目标线程后,还包括:
控制所述目标线程采用同步阻塞方式执行所述目标待处理任务。


6.根据权利要求1-4任一项所述的方法,其中,所述根据所述任务数据生成待处理任务,包括:
根据所述任务数据以及预设的数据依赖关系,生成所述待处理任务。


7.根据权利要求1所述的方法,还包括:
若满足预设的任务停止条件,控制所述目标线程停止执行所述目标待处理任务。


8.根据权利要求1-4任一项所述的方法,其中,所述自动驾驶车辆功能模块包括以下至少一项:定位模块、感知模块、规划模块、控制模块。


9.一种用于自动驾驶车辆的任务调度装置,包括:
任务管理模块,用于接收所述自动驾驶车辆中的至少一个功能模块发送的任务数据;根据所述任务数据生成待处理任务;
调度策略模块,用于将所述待处理任务加入到任务队列中;
线程池模块,用于激活线程池中的目标线程,其中所述线程池中包括预先配置的至少一个线程;
所述调度策略模块还用于,从所述任务队列中提取目标待处理任务发送给所述目标线程,以使所述目标线程执行所述目标待处理任务。


10.根据权利要求9所述的装置,其中,所述调度策略模块在将所述待处理任务加入到任务队列中时,用于:
根据预设的调度策略确定所述待...

【专利技术属性】
技术研发人员:辛建康倪忠俊何玮梁艺冰鲍万宇杨凯
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1