调度器的仿真方法、电子设备和存储介质技术

技术编号:35854512 阅读:14 留言:0更新日期:2022-12-07 10:40
本申请公开了一种调度器的仿真方法、电子设备和存储介质。在该方法中,获取信息事件;响应于信息事件,触发调用第二进程;获取第二进程的当前状态,并获取第二进程的当前调度顺序,依据第二进程的当前状态和第二进度的当前调度顺序,获取第一进程的当前运行结果和第三进程的当前运行结果;依据第一进程的当前运行结果和第三进程的当前运行结果,生成并发送请求,以调用第二进程一次,实现模拟第二进程的调度。本申请还公开了电子设备、存储介质。本申请通过确定性的软件执行流,可以实行异步调用,保证和车上调度器的软件执行顺序保持严格一致,而不是简单的进程重复,从而保证仿真结果的一致性。果的一致性。果的一致性。

【技术实现步骤摘要】
调度器的仿真方法、电子设备和存储介质


[0001]本申请涉及自动驾驶仿真
,特别是涉及一种调度器的仿真方法、电子设备和存储介质。

技术介绍

[0002]当前的仿真调度器多数以ROS(Robot Operating System,机器人操作系统)的pub(publisher,发布者)/sub(subscriber,订阅者)的方式进行进程间各个算法模块的调度,其中,Pub/Sub是一种全托管式实时消息传递服务,可以在独立的应用之间发送和接收消息。
[0003]采用这种方式的仿真调度器,虽然看似保证了和车上的调度器共用一套调度方式,但其实这种调度方式会随着系统IO((Input/Output,输入/输出)和CPU(central processing unit,中央处理器)占用率的波动而存在一定程度上的不确定性,而这种不确定性会使得离线分析车上遇到的问题的时候变得不稳定。因此,目前的仿真调度器多数存在不能稳定复现车上遇到的各种问题,并因此影响了自动驾驶算法的开发,改进和迭代的速度。
[0004]而目前确定性的仿真调度器,可以保证每一次的调度顺序都是确定的,把线上的系统波动的影响去除掉,但是此类调度器多数以同步,串行的调度方式为主,这和车上的异步调度逻辑不符,并不能完美的复现车上真正的软件执行流。此外,串行的调度方式是以假定系统为完美系统作为前提条件的,所以采用串行调度方式的调度器并不能主动的引入系统抖动,同样不能稳定复现驾驶车辆所遇到的问题。

技术实现思路

[0005]本申请公开了一种调度器的仿真方法、电子设备和存储介质,以实现仿真调度器能稳定复现驾驶车辆遇到的问题。
[0006]本申请第一方面提供了一种调度器的仿真方法,所述调度器用于调度第一进程、第二进程和第三进程,其中,所述第一进程被调用一次,则所述第二进程被调用一次,所述第三进程按照预定时间间隔被调用一次,所述第二进程被调用一次,需要所述第一进程的运行结果和所述第三进程的运行结果,所述方法包括:获取信息事件,其中,所述信息事件表征所述第一进程被调用而返回所述第一进程的运行结果;响应于所述信息事件,触发调用所述第二进程;响应于将调用所述第二进程,获取所述第二进程的当前状态,并获取所述第二进程的当前调度顺序,其中,所述第二进程的当前状态表征所述第二进程当前已接收到的所述第三进程的运行结果,所述第二进程的当前调度顺序表征所述第二进程被当前调用时所需的所述第一进程在所述第二进程被当前调用时已运行的当前运行结果和所述第三进程在所述第二进程被当前调用时已运行的当前运行结果;依据所述第二进程的当前状态和所述第二进程的当前调度顺序,获取所述第一进程的当前运行结果和所述第三进程的当前运行结果;依据所述第一进程的当前运行结果和所述第三进程的当前运行结果,生成
并发送请求,以调用所述第二进程一次,实现模拟所述第二进程的调度。
[0007]在一些实施例中,依据所述第二进程的当前状态,判断是否能调用所述第二进程下一次;响应于能调用所述第二进程下一次,获取所述第二进程的下一次调度顺序,其中所述第二进程的下一次调度顺序表征所述第二进程被调用下一次时所需的所述第一进程的下一次运行结果和所述第三进程的第n次运行结果,n为大于1的正整数;依据所述下一次运行结果和所述第n次运行结果,生成并发送请求,以调用所述第二进程下一次,实现模拟所述第二进程的调度。
[0008]在一些实施例中,所述第二进程的当前状态表征所述第二进程当前已接收到的所述第三进程的第m次运行结果,m为小于n的正整数;依据所述第二进程的当前状态,判断是否能调用所述第二进程下一次,包括:依据所述第三进程的第m次运行结果,判断是否能调用所述第二进程下一次;其中,响应于所述m大于1,判定能调用所述第二进程下一次。
[0009]在一些实施例中,所述获取所述第一进程的当前运行结果和所述第三进程的当前运行结果,包括:自所述调度器在线和/或离线获取所述第一进程的当前运行结果;自所述调度器在线和/或离线获取所述第三进程的当前运行结果。
[0010]在一些实施例中,所述在线获取表示直接调用当所述调度器当前调用所述第一进程时返回的所述第一进程的当前运行结果或当所述调度器当前调用所述第三进程时返回的所述第三进程的当前运行结果;所述离线获取表示自离线文件中获取所述第一进程的当前运行结果或所述第三进程的当前运行结果,其中所述离线文件用于存储所述调度器调用所述第一进程或第三进程时的运行结果。
[0011]在一些实施例中,所述获取所述第二进程的当前状态,包括:自第一预设表,获取所述第二进程的当前状态获取所述第二进程的当前调度顺序,包括:自第二预设表,获取所述第二进程的当前调度顺序;其中所述第一预设表与所述第二预设表不同,所述第一预设表和所述第二预设表均为所述调度器执行调度时创建的。
[0012]在一些实施例中,所述调度器还用于调度第四进程,其中,所述第二进程被调用一次,则所述第四进程被调用一次,所述第四进程被调用一次,需要所述第二进程的运行结果和所述第三进程的运行结果;所述方法还包括:响应于所述第二进程被调用,触发调用所述第四进程;响应于将调用所述第四进程,获取所述第四进程的当前状态,并获取所述第四进程的当前调度顺序,其中,所述第四进程的当前状态表征所述第四进程当前已接收到的所述第三进程的运行结果,所述第四进程的当前调度顺序表征所述第四进程被当前调用时所需的所述第二进程的当前运行结果和所述第三进程的第x次运行结果,x为大于1的正整数;依据所述第四进程的当前状态和所述第四进程的当前调度顺序,获取所述第二进程的当前运行结果和所述第三进程的第x次运行结果;依据所述第二进程的当前运行结果和所述第三进程的第x次运行结果,生成并发送请求,以调用所述第四进程一次,实现模拟所述第四进程的调度。
[0013]在一些实施例中,所述x小于所述n。
[0014]本申请第二方面提供了一种电子设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现第一方面中任一项所述的调度器的仿真方法。
[0015]本申请第三方面提供了一种非易失性计算机存储介质,其上存储有程序指令,所
述程序指令被处理器执行时实现第一方面中任一项所述的调度器的仿真方法。
[0016]上述方案,获取信息事件,其中,所述信息事件表征所述第一进程被调用而返回所述第一进程的运行结果;响应于所述信息事件,触发调用所述第二进程;获取所述第二进程的当前状态,并获取所述第二进程的当前调度顺序,依据所述第二进程的当前状态和所述第二进度的当前调度顺序,获取所述第一进程的当前运行结果和所述第三进程的当前运行结果;依据所述第一进程的当前运行结果和所述第三进程的当前运行结果,生成并发送请求,以调用所述第二进程一次,实现模拟所述第二进程的调度,在此过程中,通过接收到的第一进程的运行结果和第三进程的运行结果,获取调用与调度器的实际顺序相对应的当前进程的运行结果,以完成第二进程的调度且进程之间互不干扰,即通过确定性的软件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种调度器的仿真方法,其特征在于,所述调度器用于调度第一进程、第二进程和第三进程,其中,所述第一进程被调用一次,则所述第二进程被调用一次,所述第三进程按照预定时间间隔被调用一次,所述第二进程被调用一次,需要所述第一进程的运行结果和所述第三进程的运行结果,所述方法包括:获取信息事件,其中,所述信息事件表征所述第一进程被调用而返回所述第一进程的运行结果;响应于所述信息事件,触发调用所述第二进程;响应于将调用所述第二进程,获取所述第二进程的当前状态,并获取所述第二进程的当前调度顺序,其中,所述第二进程的当前状态表征所述第二进程当前已接收到的所述第三进程的运行结果,所述第二进程的当前调度顺序表征所述第二进程被当前调用时所需的所述第一进程在所述第二进程被当前调用时已运行的当前运行结果和所述第三进程在所述第二进程被当前调用时已运行的当前运行结果;依据所述第二进程的当前状态和所述第二进程的当前调度顺序,获取所述第一进程的当前运行结果和所述第三进程的当前运行结果;依据所述第一进程的当前运行结果和所述第三进程的当前运行结果,生成并发送请求,以调用所述第二进程一次,实现模拟所述第二进程的调度。2.根据权利要求1所述的方法,其特征在于,进一步包括:依据所述第二进程的当前状态,判断是否能调用所述第二进程下一次;响应于能调用所述第二进程下一次,获取所述第二进程的下一次调度顺序,其中所述第二进程的下一次调度顺序表征所述第二进程被调用下一次时所需的所述第一进程的下一次运行结果和所述第三进程的第n次运行结果,n为大于1的正整数;依据所述下一次运行结果和所述第n次运行结果,生成并发送请求,以调用所述第二进程下一次,实现模拟所述第二进程的调度。3.根据权利要求2所述的方法,其特征在于,所述第二进程的当前状态表征所述第二进程当前已接收到的所述第三进程的第m次运行结果,m为小于n的正整数;依据所述第二进程的当前状态,判断是否能调用所述第二进程下一次,包括:依据所述第三进程的第m次运行结果,判断是否能调用所述第二进程下一次;其中,响应于所述m大于1,判定能调用所述第二进程下一次。4.根据权利要求1所述的方法,其特征在于,所述获取所述第一进程的当前运行结果和所述第三进程的当前运行结果,包括:自所述调度器在线和/或离线获取所述第一进程的当前运行结果;自所...

【专利技术属性】
技术研发人员:葛相辰
申请(专利权)人:深圳元戎启行科技有限公司
类型:发明
国别省市:

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

1