调试系统和调试方法与流程

文档序号:32346962发布日期:2022-11-26 11:40阅读:68来源:国知局
调试系统和调试方法与流程

1.本公开的实施例涉及一种调试系统和调试方法。


背景技术:

2.自动驾驶,又称无人驾驶、电脑驾驶或轮式移动机器人,是依靠计算机与人工智能技术在没有人为操纵的情况下,完成完整、安全、有效的驾驶的一项前沿科技。自动驾驶的功能包括定位与路径规划、环境感知、行为决策与控制等等,在传感器等环境感知设备提供信息后,主控设备会根据算法处理这些信息,并做出相应的决策,采取行动。


技术实现要素:

3.本公开至少一实施例提供一种调试系统,包括环境仿真器、同步器和组件模拟器,所述环境仿真器配置为提供仿真测试环境,其中,所述环境仿真器包括多个操作节点,所述多个操作节点包括第一操作节点;所述组件模拟器配置为进行第一数据处理,其中,所述第一操作节点为所述组件模拟器进行的所述第一数据处理在所述环境仿真器中的映射;所述同步器配置为在所述环境仿真器的第一操作节点和所述组件模拟器之间建立通信连接,且配置为调节所述环境仿真器的环境时钟频率与所述组件模拟器的仿真时钟频率一致,以及对所述组件模拟器和所述环境仿真模拟器之间的通信进行同步处理。
4.例如,在本公开至少一实施例提供的调试系统中,所述组件模拟器上运行有多个硬件调试程序,所述多个硬件调试程序包括第一硬件调试程序,所述第一硬件调试程序配置为在所述组件模拟器中执行所述第一数据处理;所述多个操作节点与所述多个硬件调试程序一一对应,所述第一操作节点为所述第一硬件调试程序在所述环境仿真器中的映射。
5.例如,在本公开至少一实施例提供的调试系统中,所述环境仿真器包括环境模拟单元和计算单元,所述环境模拟单元配置为模拟自动驾驶测试的仿真环境,所述计算单元包括所述多个操作节点,且配置为通过所述多个操作节点,利用所述多个硬件调试程序执行数据处理,实现车辆控制。
6.例如,在本公开至少一实施例提供的调试系统中,所述第一操作节点配置为:接收所述环境模拟单元发送的待处理数据,将所述待处理数据转发给所述同步器,以通过所述同步器将所述待处理数据传输给所述第一硬件调试程序,以及通过所述同步器接收所述第一硬件调试程序的计算结果,将所述计算结果转发给其他操作节点,其中,所述其他操作节点为所述多个操作节点中除所述第一操作节点以外的任意操作节点。
7.例如,在本公开至少一实施例提供的调试系统中,所述同步器实现为服务器形式,所述同步器配置为将接收到的来自消息发送方的消息经过同步处理后转发给消息接收方,其中,所述消息发送方和所述消息接收方为所述环境仿真器或所述组件模拟器,所述消息发送方和所述消息接收方不同。
8.例如,在本公开至少一实施例提供的调试系统中,所述同步器执行的同步处理通过同步通信协议完成,所述同步通信协议利用预设存储区进行数据缓存,完成所述环境仿
真器和所述组件模拟器之间跨时钟域的消息传递的同步。
9.例如,在本公开至少一实施例提供的调试系统中,在开始调试前,所述同步器配置为计算所述环境仿真器当前的环境时钟频率和所述仿真时钟频率的比值,将所述比值发送给所述环境仿真器,以使得所述环境仿真器根据所述比值调节所述环境仿真器的环境时钟频率与所述仿真时钟频率一致。
10.例如,在本公开至少一实施例提供的调试系统中,所述同步器还配置为进行信号转换,所述信号转换包括按照消息发送方的协议格式解析接收到的消息,将解析的消息内容按照消息接收方的协议格式重组,将重组后的消息发送给所述消息接收方,所述消息发送方和所述消息接收方为所述环境仿真器或所述组件模拟器。
11.例如,在本公开至少一实施例提供的调试系统中,所述组件模拟器包括处理核,所述处理核配置为控制和调度所述多个硬件调试程序实现所述车辆控制,所述处理核与所述多个硬件调试程序通过片上总线进行通信。
12.例如,在本公开至少一实施例提供的调试系统中,所述组件模拟器为硬件仿真加速器或现场可编程门阵列。
13.本公开至少一实施例提供一种调试方法,包括:利用环境仿真器采集待处理数据,并将所述待处理数据发送给同步器,其中,所述环境仿真器包括多个操作节点,所述多个操作节点包括第一操作节点;通过所述同步器对所述待处理数据进行处理,将处理后的待处理数据传输给组件模拟器,其中,所述环境仿真器的环境时钟频率与所述组件模拟器的仿真时钟频率通过所述同步器调整一致,所述处理至少包括同步处理;利用所述组件模拟器对接收的所述待处理数据进行第一数据处理,得到计算结果,并将所述计算结果发送给所述同步器;通过所述同步器对所述计算结果进行处理,将处理后的计算结果传输给所述第一操作节点,其中,所述第一操作节点为所述组件模拟器进行的所述第一数据处理在所述环境仿真器中的映射。
14.例如,在本公开至少一实施例提供的调试方法中,所述环境仿真器包括环境模拟单元和计算单元,所述环境模拟单元用于模拟自动驾驶测试的仿真环境,所述计算单元包括所述多个操作节点,且配置为通过所述多个操作节点,利用多个硬件调试程序执行数据处理,实现车辆控制,所述调试方法还包括:通过所述第一操作节点将所述同步处理后的计算结果转发给其他操作节点,其中,所述其他操作节点为所述多个操作节点中除所述第一操作节点以外的任意操作节点。
15.例如,在本公开至少一实施例提供的调试方法中,在利用环境仿真器采集待处理数据前,所述调试方法还包括:通过所述同步器,计算所述环境仿真器当前的环境时钟频率与所述组件模拟器的仿真时钟频率的比值;根据所述比值,调整所述环境仿真器的环境时钟频率,以使得所述环境模拟单元的环境时钟频率与所述组件模拟器的仿真时钟频率一致。
16.例如,在本公开至少一实施例提供的调试方法中,利用环境仿真器采集待处理数据,包括:按照调整后的所述环境时钟频率,采集所述待处理数据。
17.例如,在本公开至少一实施例提供的调试方法中,所述组件模拟器上运行有多个硬件调试程序,所述多个硬件调试程序包括第一硬件调试程序,所述第一硬件调试程序配置为在所述组件模拟器中执行所述第一数据处理;所述组件模拟器包括处理核,所述处理
核配置为控制和调度所述多个硬件调试程序实现所述车辆控制,所述处理核与所述多个硬件调试程序通过片上总线进行数据通信,利用所述组件模拟器对接收的所述待处理数据进行第一数据处理,得到计算结果,并将所述计算结果发送给所述同步器,包括:通过所述处理核接收所述待处理数据,并经由所述片上总线将所述待处理数据传输给所述第一硬件调试程序;利用所述第一硬件调试程序对所述待处理数据进行所述第一数据处理,得到所述计算结果;通过所述片上总线将所述计算结果传输给所述处理核,并由所述处理核转发给所述同步器。
附图说明
18.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
19.图1为一种环境模拟单元的界面示意图;
20.图2为本公开至少一实施例提供的一种调试系统的示意性框图;
21.图3为本公开至少一实施例提供的环境仿真器的结构图;
22.图4为本公开至少一实施例提供的组件模拟器的示意性结构图;
23.图5为本公开至少一实施例提供的调试方法的示意性流程图;
24.图6为本公开一实施例提供的调试方法的数据流示意图。
具体实施方式
25.为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
26.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
27.为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
28.目前,部署在自动驾驶车辆上的算法可以借助于机器人操作系统(robot operating system,简称ros)实现。
29.机器人操作系统提供了一系列程序库和工具以帮助软件开发者创建机器人应用软件,是用于编写机器人软件程序的一种具有高度灵活性的软件架构,它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能,它也提供用于获取、编
译、编写、和跨计算机运行代码所需的工具和库函数。
30.机器人操作系统中的一个重要概念是操作节点(ros node),操作节点是机器人操作系统中最小的进程单元。例如,一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在机器人操作系统中称为操作节点。从程序角度来说,操作节点就是一个可执行文件(通常为c++编译生成的可执行文件、python脚本)被执行,加载到了内存之中;从功能角度来说,通常一个操作节点负责一个单独的功能。由于自动驾驶算法的功能模块非常复杂,因此通常采用分布式方式设置多个操作节点,各个操作节点之间通过话题(topic)进行点对点通信。
31.例如,假设一个操作节点需要某种类型的消息(message),该操作节点可以称之为接收者或者订阅者(subscribe),操作节点向节点管理器(ros master)发送请求,节点管理器寻找正在发布这种类型话题的节点,该节点称之为发布者(talker),节点管理器找到之后便会帮助这订阅者和发布者建立连接,然后订阅者和发布者之间可以进行通讯。
32.自动驾驶算法在部署在真车上之前,通常需要进行仿真验证,该仿真验证可以利用运行在计算机(例如单机、服务器或云服务)中的环境模拟单元完成。
33.图1为一种环境模拟单元的界面示意图。如图1所示,运行在计算机中的环境模拟单元能够模拟真实的交通环境、行人行为、汽车传感器信号等等,环境模拟单元支持自动驾驶系统的开发、训练和验证。例如,环境模拟单元可以包括开源模拟器carla,carla是开源架构,能够支持传感套件和环境条件的灵活配置。当然,环境模拟单元也可以是其他任何能够模拟自动驾驶测试的仿真环境的任何平台,本公开对此不作具体限制。
34.例如,环境模拟单元可以通过carla-ros-bridge软件包与机器人操作系统通信,例如,与机器人操作系统中的操作节点进行通信。由此,操作节点接收来自环境模拟单元中通过例如作为模拟对象的车上附加的多种传感器采集的环境感知信息,并对环境感知信息进行处理,得到计算结果(例如决策)反馈给环境模拟单元,环境模拟单元根据计算结果显示车辆的行动状态。
35.目前,通常采用软件构造操作节点,例如使用一些自动驾驶开源框架(例如apollo或autoware)构造操作节点。但是采用软件方式构造操作节点,如执行图像处理等操作节点,其速度受到资源限制而导致计算效率较低,进而影响决策的实时性,而实时性对于自动驾驶来说非常重要。为加速计算,可以使用硬件程序构造操作节点,例如,将操作节点的一些计算改由cpu(central process unit,中央处理单元)、gpu(graphic process unit,图形处理单元)、ai加速器等转为硬件处理器实现,例如,由fpga(field programmable gate array,现场可编程逻辑门阵列)、dsp(digital signal processor,数字信号处理器)等。
36.但是,在调试硬件程序时,运行硬件程序的仿真平台的仿真时钟频率与环境模拟单元的环境时钟频率很可能不一致,甚至相差甚远,例如,仿真平台的仿真时钟频率可能只有10mhz(兆赫兹),但环境模拟单元的环境时钟频率可能以ghz(g赫兹)为单位,例如2ghz,而环境模拟单元会按照环境时钟频率采集环境感知信息,并按照环境时钟频率发送环境感知信息给仿真平台,例如,环境模拟单元可能以几个ghz的频率采集车辆周围的环境图像,并以ghz为单位将环境图像发送给仿真平台,而仿真平台只能以10mhz的速度接收和处理图像,这会产生大量的数据积压,甚至导致后续程序不能正常工作,无法调试硬件程序。
37.本公开至少一实施例提供一种调试系统,包括环境仿真器、同步器和组件模拟器,
环境仿真器配置为提供仿真测试环境,其中,环境仿真器包括多个操作节点,多个操作节点包括第一操作节点;组件模拟器配置为进行第一数据处理,其中,第一操作节点为组件模拟器进行的第一数据处理在环境仿真器中的映射;同步器配置为在环境仿真器和组件模拟器的第一操作节点之间建立通信连接,且配置为调节环境仿真器的环境时钟频率与组件模拟器的仿真时钟频率一致,以及对组件模拟器和环境仿真模拟器之间的通信进行同步处理。
38.在上述实施例中,该调试系统包括了同步器,该同步器可以让环境仿真器的环境时钟频率与组件模拟器的仿真时钟频率一致,从而环境仿真器可以按照组件模拟器的仿真时钟频率采集环境感知信息作为待处理数据,并按照仿真时钟频率将待处理数据发送给组件模拟器,组件模拟器不会产生数据积压,环境仿真器和组件模拟器都能够正常工作,可以较好地测试第一操作节点的性能和功能安全。
39.并且,在至少一个示例中,环境仿真器在物理层上的时钟频率与组件模拟器可能并不完全同步,同步器还可以实现对通信的同步处理,实现跨时钟域的通信同步,进一步避免数据积压,确保数据通信的实时性和准确性。
40.下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
41.图2为本公开至少一实施例提供的一种调试系统的示意性框图。
42.如图2所示,该调试系统100包括环境仿真器101、同步器102和组件模拟器103。
43.例如,环境仿真器101配置为提供仿真测试环境。例如,环境仿真器包括多个操作节点,多个操作节点包括第一操作节点。图2示出了第一操作节点,当然,环境仿真器101还可以包括第二操作节点、第三操作节点等等,本公开对此不作具体限制。
44.例如,环境仿真器可以提供类似于图1所示的仿真测试环境,以用于自动驾驶系统的开发、训练和验证。同时,环境仿真器还可以包括运行自动驾驶算法的操作系统,如机器人操作系统,以通过多个操作节点完成数据处理、应对策略生成,从而可以通过仿真测试环境直观看到自动驾驶算法的运行状况。
45.关于操作节点的概念可以参考前述内容,这里不再赘述。
46.例如,组件模拟器102配置为进行第一数据处理。例如,第一操作节点为组件模拟器进行的第一数据处理在环境仿真器中的映射。
47.例如,第一操作节点可以是由纯软件方式实现,组件模拟器中运行软件程序执行第一数据处理,第一操作节点提供接口,将第一数据处理的计算结果通过操作节点之间的通信方式(例如话题)发送给其他操作节点或环境仿真器。
48.例如,第一操作节点可以由硬件程序方式实现。例如,组件模拟器上运行有多个硬件调试程序,多个硬件调试程序包括第一硬件调试程序,第一硬件调试程序配置为在组件模拟器中执行第一数据处理。多个操作节点与多个硬件调试程序一一对应,第一操作节点为第一硬件调试程序在环境仿真器中的映射。
49.也就是说,此时操作节点不是由纯软件方式构造,而是依托于硬件处理器或芯片等实现,此时由一个硬件调试程序构成一个操作节点。同样的,以第一操作节点为例,第一操作节点提供接口,利用提供的接口将第一硬件调试程序执行第一数据处理时的计算结果通过操作节点之间的通信方式(例如话题)发送给其他操作节点或环境仿真器。
50.相比于纯软件方式构造操作节点,利用硬件调试程序构造操作节点,能够有效利
ros-bridge传输给第一操作节点,第一操作节点对待处理数据进行第一数据处理,得到的计算结果可以发送给图形接口服务器,由图形接口服务器控制环境模拟单元中的车辆显示相应的可视化动作状态,以直观看到车辆对的控制效果。
63.例如,图形接口服务器是linux系统提供的一种显示服务,但是,对于其他以界面为核心的操作系统,如windows操作系统,也可以不设置图形接口服务器。
64.例如,组件模拟器102可以是硬件仿真加速器或现场可编程门阵列(fpga)。
65.例如,不同的硬件调试程序可以执行不同的数据处理,完成不同的数据计算任务。例如,数据计算任务可以包括路径规划任务、图像语义分割任务、图像渲染任务、驾驶判断等,根据任务不同,计算量不同,硬件调试程序的规模也不同。例如,在硬件调试程序规模比较大时,可以在硬件仿真加速器上运行、仿真、测试,硬件仿真加速器是一种高性能验证计算平台,在一个统一的验证环境中综合了模拟(simulation)、加速(acceleration)与仿真(emulation)等,能够加速仿真进程。例如,在硬件调试程序规模比较小时,可以直接使用fpga进行运行、仿真、测试,例如,将硬件调试程序生成的比特文件加载在fpga中运行,以完成测试、调试。
66.图4为本公开至少一实施例提供的组件模拟器的示意性结构图。
67.如图4所示,组件模拟器包括处理核1021,处理核1021配置为控制和调度多个硬件调试程序实现车辆控制。
68.如图4所示,多个硬件调试程序包括第一硬件调试程序、第二硬件调试程序、...、第n硬件调试程序,n为正整数。当然,需要说明的是,本公开硬件调试程序的数量不作限制。
69.例如,处理核1021可以是硬件仿真加速器或fpga自带的中央处理单元,或者,也可以是实例化的软件核形式的中央处理单元,本公开对此不作具体限制。
70.例如,处理核1021可以作为主控单元,运行主程序,通过指令控制、配置寄存器,调度多个硬件调试程序执行不同的计算。例如,硬件调试程序可以根据需要分别执行不同的加速计算,如将图像分割、图像渲染等加速计算部分由硬件调试程序完成,以充分利用硬件性能提高计算效率;并且计算结果传输给处理核,由处理核进行分配、传输或进一步处理。
71.例如,处理核和硬件调试程序通过片上总线进行通信,例如可以采用amba(advanced microcontroller bus architecture,高级微控制器总线架构)总线,完成中断控制和高速信号传输。
72.例如,处理核接收同步器发送的数据,并将数据通过片上总线传输给相应的硬件调试程序,硬件调试程序处理完得到计算结果后,将计算结果通过片上总线传输给处理核,再由处理核传输给同步器。
73.例如,在另一些实施例中,组件模拟器102也可以不设置处理核,此时完全由硬件调试程序实现全部的数据处理,实现车辆控制,本公开对此不作具体限制。
74.例如,对于第二硬件调试程序至第n硬件调试程序,其在环境仿真器101中也可以具有对应的第二操作节点、...、第n操作节点,同样的,操作节点是对应的硬件调试程序在环境仿真器101中的映射。
75.下面以第一操作节点和第一硬件调试程序为例,解释本公开中“操作节点是对应的硬件调试程序在环境仿真器101中的映射”的含义。
76.在调试阶段,硬件调试程序运行在组件模拟器中,组件模拟器与环境仿真器分属
于两个不同的系统/设备,这里不同是指,两者具有不同的时钟频率,属于不同的时钟域,例如,这可能是由于组件模拟器和环境仿真器之间由于跨服务器通信所引起的。
77.此时,第一操作节点是第一硬件调试程序在环境仿真器101中的映射,也就是说,第一硬件调试程序和第一操作节点物理上是同一个对象,但具体操作、计算、处理在组件模拟器中运行,第一操作节点提供在环境仿真器101中的接口,从而可以将第一硬件调试程序的计算结果通过操作节点之间的通信方式(例如话题)发送给其他操作节点或图形接口服务器,例如,其他操作节点为多个操作节点中除第一操作节点以外的任意操作节点。因此,第一操作节点在调试阶段,其作为第一硬件调试程序的映射提供了通信接口,通信接口用于与运行第一硬件调试程序的组件模拟器分属不同的系统/设备的环境仿真器中的其他操作节点进行通信。
78.例如,结合图1,第一操作节点配置为接收环境模拟单元发送的待处理数据,将待处理数据转发给同步器,以通过同步器将待处理数据传输给第一硬件调试程序,并且,第一操作节点还配置为通过同步器接收第一硬件调试程序的计算结果,将计算结果转发给其他操作节点。由此,第一操作节点作为第一硬件调试程序的映射,为第一硬件调试程序在环境仿真器中的数据通信提供了通信接口。
79.例如,开始调试前,同步器103配置为计算环境仿真器当前的环境时钟频率和仿真时钟频率的比值,将比值发送给环境仿真器,以使得环境仿真器根据比值调节环境仿真器的环境时钟频率与仿真时钟频率一致。
80.如前所述,通常环境仿真器中的环境模拟单元以ghz为单位的频率采集环境感知信息作为待处理数据,并仍以ghz为单位的频率发送给操作节点。在调试阶段,操作节点对应的硬件调试程序是以mhz,例如10mhz、20mhz等频率运运行,因此,同步器计算环境仿真器当前的环境时钟频率和仿真时钟频率的比值n,n为正数,将比值n发送给环境仿真器。环境仿真器中的环境模拟单元能够配置自身整体的环境时钟频率,因此,环境仿真器中的环境模拟单元可以根据比值n调整自身的环境时钟频率,将自身的环境时钟频率变慢为原来的n倍,从而与组件模拟器的仿真时钟频率一致。
81.由此,环境仿真器可以按照仿真时钟频率采集环境感知信息,例如,按照仿真时钟频率采集车辆周围的环境图像,并以仿真时钟频率发送给同步器,从而组件模拟器可以以仿真时钟频率接收到环境图像,接收频率与组件模拟器的频率一致,不会产生数据积压情况,组件模拟器和环境仿真器都能够正常工作,从而可以有效调试、测试硬件调试程序的功能和性能。
82.虽然环境仿真器和组件模拟器调整为一致的时钟频率,但是两者仍然可能存在跨服务器通信,在物理层上,时钟域仍然是不同的,消息不经过同步处理直接传输仍然可能存在数据积压,导致消息错误、丢失等情况产生。因此,需要进行同步处理以实现环境仿真器和组件模拟器之间跨时钟域的消息传递的同步,也即同步环境仿真器和组件模拟器的时钟域,进一步避免数据积压,保障组件模拟器和环境仿真器之间通信的畅通、准确。
83.例如,同步器103配置为将接收到的来自消息发送方的消息经过同步处理后转发给消息接收方。这里,消息发送方可以是环境仿真器101,则消息接收方为组件模拟器102,当然,消息发送方也可以是组件模拟器102,则消息接收方为环境仿真器101。
84.例如,同步器103可以实现为服务器形式,也就是同步器103实现为与环境仿真器
101和组件模拟器102在物理上独立的一台专用服务器,这种方式处理效率更高,且不占用环境仿真器101或组件模拟器103的计算资源,实际操作中不需对硬件进行过多修改和配置,实现更加容易。例如,此时同步器103和组件模拟器102、环境仿真器101可以通过外部总线连接、通信。
85.当然,同步器103也可以与环境仿真器设置在同一个电子设备中,例如计算机中,同步器103和环境仿真器101可以以计算机中设置的两台虚拟机的形式实现,例如,此时同步器103和组件模拟器102、环境仿真器101可以通过计算机内部的通信总线连接、通信。本公开对同步器103的具体结构不作具体限制。
86.例如,同步器103执行的同步处理通过同步通信协议完成,例如,同步通信协议利用预设存储区进行数据缓存,实现环境仿真器和组件模拟器之间跨时钟域的消息传递的同步。
87.在本公开中,通信同步通过协议层实现,例如可以使用django架构中提供的asyncio类实现,asyncio类可以提供异步支持,采用堆栈、压栈这类缓存操作实现高速的非同步信号转发。当然,本公开不限于此,也可以采用其他可行的同步通信协议完成消息的跨时钟域同步。
88.组件模拟器定义的信号协议格式与环境仿真器定义的信号协议格式很可能是不同的,因此需要进行信号转换,解析消息发送方发送消息的有效内容,将有效内容按照消息接收方的协议格式进行重组,从而使得消息接收方可以快速、准确解析消息内容,完成相应操作。
89.例如,同步器还配置为进行信号转换,信号转换包括按照消息发送方的协议格式解析接收到的消息,将解析的消息内容按照消息接收方的协议格式重组,将重组后的消息发送给消息接收方。
90.例如,环境仿真器发送的信号协议格式为操作节点的信号协议格式,组件模拟器的信号协议格式为组件模拟器中的处理核的信号协议格式。同步器用于为操作节点和处理核之间建立通信连接,因此同步器可以对操作节点和处理核进行信号转换。
91.因此,在上述实施例中,同步器可以配置环境仿真器的环境时钟频率与组件模拟器的仿真时钟频率一致,从而使得环境仿真器可以按照仿真时钟频率采集、传输待处理数据,通信过程不会发生数据积压,在调试时环境仿真器和组件模拟器都能够正常工作;同步器还可以完成信号转换,不需改变组件模拟器和环境仿真器的协议即可让两者进行通信;并且,同步器还可以完成环境仿真器和组件模拟器之间跨时钟域的消息传递的同步,进一步避免数据积压。
92.本公开至少一实施例还提供一种调试方法。图5为本公开至少一实施例提供的调试方法的示意性流程图。
93.例如,如图5所示,本公开实施例提供的调试方法包括步骤s10至s40。
94.在步骤s10,利用环境仿真器采集待处理数据,并将待处理数据发送给同步器。
95.例如,环境仿真器包括多个操作节点,多个操作节点包括第一操作节点。
96.例如,环境仿真器可以包括环境模拟单元和计算单元,例如还可以根据需要进一步包括设置单元等,从而与用户进行交互等。
97.环境模拟单元用于模拟自动驾驶测试的仿真环境。环境模拟单元的相关内容可以
参考调试系统中环境模拟单元1011的相关介绍,这里不再赘述。
98.计算单元包括多个操作节点,且配置为通过多个操作节点,利用多个硬件调试程序执行数据处理,实现车辆控制。
99.关于硬件调试程序、计算单元、操作节点等内容可以参考前述调试系统中计算单元1012的相关介绍,这里不再赘述。
100.例如,环境模拟单元中提供有多个不同类别的传感器,如雷达、摄像头等,可以感知模拟车辆周围环境,并能够以环境模拟频率采集车辆周围的图像等信息作为待处理数据。
101.例如,在执行步骤10前,本公开至少一实施例提供的调试方法还包括:通过同步器,计算环境仿真器当前的环境时钟频率与组件模拟器的仿真时钟频率的比值;根据比值,调整环境仿真器的环境时钟频率,以使得环境模拟单元的环境时钟频率与组件模拟器的仿真时钟频率一致。
102.关于调整环境时钟频率的具体过程可以参考前述的调试系统中相关内容,这里不再赘述。
103.例如,步骤s10可以包括:按照调整后的环境时钟频率,采集待处理数据。
104.例如,环境模拟单元中提供有多个不同类别的传感器,由此,环境模拟单元能够以仿真时钟频率采集环境感知信息作为待处理数据,例如,待处理数据可以是车辆周围的环境图像,并将待处理数据以仿真时钟频率发送给操作节点,由操作节点转发给同步器,避免发生数据积压,保证通信的实时性和准确。
105.在步骤s20,通过同步器对待处理数据进行处理,将同步处理后的待处理数据传输给组件模拟器。
106.例如,环境仿真器的环境时钟频率与组件模拟器的仿真时钟频率通过同步器调整一致。
107.例如,同步器的处理可以包括同步处理。
108.例如,同步处理可以通过同步通信协议完成,同步通信协议利用预设存储区进行数据缓存,完成环境仿真器和组件模拟器之间跨时钟域的消息传递的同步。关于同步处理的具体内容可以参考前述调试系统中关于同步器执行的同步处理的相关内容,这里不再赘述。
109.例如,同步器的处理还可以包括信号转换。例如,通过同步器按照消息发送发的协议格式解析接收的数据,得到消息有效内容,例如消息有效内容即为待处理数据,然后将待处理数据按照组件模拟器的协议格式进行重组,得到处理后的待处理数据,处理后的待处理数据具有组件模拟器的信号协议格式。
110.在步骤s30,利用组件模拟器对接收的待处理数据进行第一数据处理,得到计算结果,并将计算结果发送给同步器。
111.例如,组件模拟器上运行有多个硬件调试程序,多个硬件调试程序包括第一硬件调试程序,第一硬件调试程序配置为在组件模拟器中执行第一数据处理。组件模拟器包括处理核,处理核配置为控制和调度多个硬件调试程序实现车辆控制,处理核与多个硬件调试程序通过片上总线进行数据通信。
112.关于组件模拟器的相关介绍可以参考前述调试系统中组件模拟器102的相关内
容,这里不再赘述。
113.例如,步骤s30可以包括:通过处理核接收待处理数据,并经由片上总线将待处理数据传输给第一硬件调试程序;利用第一硬件调试程序对待处理数据进行第一数据处理,得到计算结果;通过片上总线将计算结果传输给处理核,并由处理核转发给同步器。
114.在步骤s40,通过同步器对计算结果进行处理,将处理后的计算结果传输给第一操作节点。
115.例如,第一操作节点为组件模拟器进行的第一数据处理在环境仿真器中的映射。
116.操作节点和硬件调试程序之间的关系可以参考前述调试系统中的相关介绍,这里不再赘述。
117.例如,这里同步器对计算结果的处理可以包括同步处理和信号转换,具体过程参考前述内容,这里不再赘述。
118.例如,本公开至少一实施例提供的调试方法还可以包括:通过第一操作节点将同步处理后的计算结果转发给其他操作节点,其中,其他操作节点为多个操作节点中除第一操作节点以外的任意操作节点。
119.例如,第一操作节点接收到第一数据处理的计算结果后,通过操作节点之间的通信方式(例如话题)传输给其他操作节点。例如,第一操作节点还可以传输给图形接口服务器,用于在可视化界面上显示车辆根据计算结果的动作变化。
120.在上述实施例中,以第一操作节点为例进行说明,但根据实际情况,多个操作节点还可以包括第二操作节点等操作节点,每个操作节点的数据流与第一操作节点相同,每个操作节点与对应的硬件调试程序经过同步器、处理核、总线等进行通信和数据交换,各个操作节点之间通过话题等机器人操作系统定义的通信方式进行通信,各个操作节点与环境模拟单元可以通过carla-ros-bridge等中介进行通信,这里不再具体描述。
121.图6为本公开一实施例提供的调试方法的数据流示意图。
122.下面结合图6,具体说明调试方法的数据通信过程。
123.例如,在开始调试前,同步器计算环境仿真器当前的环境时钟频率和仿真时钟频率的比值n,将比值n发送给环境仿真器。环境仿真器中的环境模拟单元根据比值n调整自身的环境时钟频率,将自身的环境时钟频率变慢为原来的n倍,从而与组件模拟器的仿真时钟频率一致。
124.例如,之后,环境模拟单元中模拟车辆的摄像头按照环境时钟频率采集模拟车辆前方的环境图像,将环境图像以环境时钟频率发送给第一操作节点。
125.例如,之后,第一操作节点将环境图像转发给同步器,同步器进行同步处理、信号转换等处理,将包含环境图像的消息传输给组件模拟器。
126.例如,之后,组件模拟器中的处理核接收到环境图像后,通过片上总线发送给相应的第一硬件调试程序。
127.例如,之后,第一硬件调试程序对环境图像进行处理,得到计算结果,并将计算结果通过片上总线回传给处理核。
128.例如,之后,处理核将计算结果通过同步器,经同步处理、信号转换等,将包含计算结果的消息传输给环境仿真器中的第一操作节点。
129.例如,之后,第一操作节点通过话题等方式,发送给其他操作节点。
130.如此重复上述过程,通过环境仿真器中车辆的可视化动作变化,观测到硬件调试程序的性能、功能安全,完成对硬件调试程序的性能评估和功能安全评估。
131.上述调试方法可以实现与前述调试系统相似的技术效果,在此不再赘述。
132.本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
133.此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
134.本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
135.以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1