CN115858207A - 一种自动驾驶系统的回放方法、系统、存储介质和设备 - Google Patents
一种自动驾驶系统的回放方法、系统、存储介质和设备 Download PDFInfo
- Publication number
- CN115858207A CN115858207A CN202111127479.1A CN202111127479A CN115858207A CN 115858207 A CN115858207 A CN 115858207A CN 202111127479 A CN202111127479 A CN 202111127479A CN 115858207 A CN115858207 A CN 115858207A
- Authority
- CN
- China
- Prior art keywords
- control task
- data
- task data
- playback
- automatic driving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Traffic Control Systems (AREA)
Abstract
本申请实施例提供了一种自动驾驶系统的回放方法、系统、存储介质和设备,所述方法包括:获取真实车辆在自动驾驶过程中产生的多个控制任务数据;每个控制任务数据包括输入数据,每个控制任务数据携带对输入数据进行分析处理得到的输出数据的输出时刻;响应于一致性回放请求,基于多个控制任务数据各自的输出时刻,构建对多个控制任务数据进行回放的时序表;按照时序表,依次对多个控制任务数据中的输入数据进行分析处理;在多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。本申请实施例提供的方法,对数据和时钟进行对齐,解决自动驾驶系统离线环境回放与实车环境运行不一致的问题,有助于实现实车问题的验证。
Description
技术领域
本申请涉及自动驾驶技术领域,特别是涉及一种自动驾驶系统的回放方法、系统、计算机存储介质和电子设备。
背景技术
自动驾驶系统的算法是实现汽车自动驾驶的核心要素,只有自动驾驶系统的算法足够完善,才能使汽车的自动驾驶安全得到保障。在实车运行的过程中,自动驾驶系统可能会发现一些新的问题,为了保证自动驾驶系统的先进性,工程师需要在离线环境下重复构造实车运行中新发现的问题,利用离线环境下的计算平台来验证实车的运行漏洞是否完成修复,并在发现自动驾驶系统的算法存在缺陷时对算法进行改进,完善自动驾驶系统。
但是,由于离线环境下的计算平台与实车运行所使用的计算平台存在巨大的硬件差异,导致同样的数据源给到离线计算平台的自动驾驶系统后,离线回放不能真实还原实车的问题,即无法对实车的问题进行一致性还原回放,实车问题得不到准确地验证,这样阻碍了自动驾驶系统的进步和改善。因此,目前亟需一种能够准确实现自动驾驶系统的一致性回放的方法。
发明内容
为了解决上述问题,本申请实施例提出了一种自动驾驶系统的回放方法、一种自动驾驶系统的回放系统、一种计算机可读存储介质和一种电子设备,旨在解决或部分地解决无法准确实现自动驾驶系统的一致性回放的问题。
本申请实施例提供了一种自动驾驶系统的回放方法,所述方法包括:
获取真实车辆在自动驾驶过程中产生的多个控制任务数据;其中,每个控制任务数据包括输入数据,每个控制任务数据携带对所述输入数据进行分析处理得到的输出数据的输出时刻;
响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表;
按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理;
在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
可选的,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表,包括:
基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻;
根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表;
将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
可选的,所述方法还包括:
响应于加速回放请求,将所述多个控制任务数据发送给所述自动驾驶系统的预设第一子系统;
通过所述预设第一子系统,对所述多个控制任务数据中的每个输入数据执行回放处理。
可选的,对所述多个控制任务数据中的每个输入数据执行回放处理,包括:
根据目标控制任务数据的输出时刻,确定所述目标控制任务数据的输出时长;其中,所述目标控制任务数据是所述多个控制任务数据中的任一控制任务数据;
在所述目标控制任务数据的输出时长内,执行预设数量个所述目标控制任务数据的回放处理任务;
其中,所述预设数量是根据用于进行所述自动驾驶系统的回放的离线计算平台的算力确定的。
可选的,输出对每个输入数据进行分析处理的处理结果之后,所述方法还包括:
获得对所述处理结果的自动驾驶完善度分值;
在所述自动驾驶完善度分值低于预设分值时,获得对所述输入数据进行分析处理的更新参数;
将所述更新参数同步到所述真实车辆或者所述自动驾驶系统的在线计算平台。
可选的,获取真实车辆在自动驾驶过程中产生的多个控制任务数据,包括:
向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求;
接收所述真实车辆或者所述自动驾驶系统的在线计算平台,发送的所述真实车辆在自动驾驶过程中产生的多个控制任务数据;
其中,所述多个控制任务数据是所述自动驾驶系统为所述真实车辆提供自动驾驶服务的过程中,所述真实车辆本地对每次控制任务的控制任务数据全量存储得到的,或者,所述自动驾驶系统的在线计算平台远程对每次控制任务的控制任务数据全量存储得到的。
相对于现有技术,本申请实施例所述的方法具有以下优点:
(1)相较于现有技术中直接导入在线计算平台所有自动驾驶数据,本申请实施例所述的方法获取控制任务对应的控制任务数据,从数据源上避免了进行自动驾驶系统的回放时可能出现的数据错乱,奠定了自动驾驶系统一致性回放的基础;
(2)本申请实施例对控制任务数据之间作了分割,并按照实车上运行的时序,依次对每个控制任务数据的输入数据进行分析处理,保证了控制任务的运行时序,这样可以保证回放过程中是按照真实车辆运行时的时间节点进行的,保障了控制任务执行过程的一致性;
(3)本申请实施例按照实车运行中每个控制任务数据的输出时刻,输出对每个输入数据分析处理的处理结果,保证了任务数据流的一致性,对各任务之间数据流的衔接上实现了还原,最终完成了自动驾驶的一致性回放,解决了自动驾驶系统离线环境回放与实车环境运行不一致的问题。
本申请实施例的另一方面还提供了一种自动驾驶系统的回放系统,所述系统包括:
原始数据获取单元,用于获取真实车辆在自动驾驶过程中产生的多个控制任务数据,其中,每个控制任务数据包括输入数据,每个控制任务数据携带对所述输入数据进行分析处理得到的输出数据的输出时刻;
时序排列单元,用于响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表;
遍历单元,用于按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理;
输出单元,用于在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
可选的,所述系统还包括:
回放输出时刻计算单元,用于基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻;
离散事件表确定单元,用于根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表;
时序表确定单元,用于将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
可选的,所述系统还包括:
加速预备单元,用于响应于加速回放请求,将所述多个控制任务数据发送给所述自动驾驶系统的预设第一子系统;
加速执行单元,用于通过所述预设第一子系统,对所述多个控制任务数据中的每个输入数据执行回放处理。
可选的,所述系统还包括:
输出时长计算单元,用于根据目标控制任务数据的输出时刻,确定所述目标控制任务数据的输出时长;其中,所述目标控制任务数据是所述多个控制任务数据中的任一控制任务数据;
多任务执行单元,用于在所述目标控制任务数据的输出时长内,执行预设数量个所述目标控制任务数据的回放处理任务;
其中,所述预设数量是根据用于进行所述自动驾驶系统的回放的离线计算平台的算力确定的。
可选的,所述系统还包括:
完善度打分单元,用于获得对所述处理结果的自动驾驶完善度分值;
算法更新单元,用于在所述自动驾驶完善度分值低于预设分值时,获得对所述输入数据进行分析处理的更新参数;
算法推送单元,用于将所述更新参数同步到所述真实车辆或者所述自动驾驶系统的在线计算平台。
可选的,所述系统还包括:
原始数据请求单元,用于向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求;
原始数据接收单元,用于接收所述真实车辆或者所述自动驾驶系统的在线计算平台,发送的所述真实车辆在自动驾驶过程中产生的多个控制任务数据;
其中,所述多个控制任务数据是所述自动驾驶系统为所述真实车辆提供自动驾驶服务的过程中,所述真实车辆本地对每次控制任务的控制任务数据全量存储得到的,或者,所述自动驾驶系统的在线计算平台远程对每次控制任务的控制任务数据全量存储得到的。
相对于现有技术,本申请实施例所述的系统具有以下优点:
(1)相较于现有技术中直接导入在线计算平台所有自动驾驶数据,本申请实施例所述的系统利用原始数据获取单元获取控制任务对应的控制任务数据,从数据源上避免了进行自动驾驶系统的回放时可能出现的数据错乱,奠定了自动驾驶系统一致性回放的基础;
(2)本申请实施例对控制任务数据之间作了分割,利用时序排列单元排列多个控制任务数据在实车上运行的时序,并利用遍历单元按照时序依次对每个控制任务数据的输入数据进行分析处理,保证了控制任务的运行时序,这样可以保证回放过程中是按照真实车辆运行时的时间节点进行的,保障了控制任务执行过程的一致性;
(3)本申请实施例通过输出单元按照实车运行中每个控制任务数据的输出时刻,输出对每个输入数据分析处理的处理结果,保证了任务数据流的一致性,对各任务之间的数据流的衔接上实现了还原,最终完成了自动驾驶的一致性回放,解决了自动驾驶系统离线环境回放与实车环境运行不一致的问题。
本申请实施例的另一方面还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请上述任一实施例所述的方法的步骤。
本申请实施例的另一方面还提供了一种电子设备,所述电子设备包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行时实现如本申请上述任一实施例所述的方法的步骤。
附图说明
图1是本申请实施例提供的一种自动驾驶系统的数据控制示意图;
图2是本申请实施例提供的一种自动驾驶系统离线运行与在线运行差异的分析示意图;
图3是本申请实施例提供的一种自动驾驶系统的回放方法的步骤流程图;
图4是本申请实施例提供的一种回溯数据离线回放的整体流程示意图;
图5是本申请实施例提供的一种仿真时间钟的示意图;
图6是本申请实施例提供的一种自动驾驶系统的回放系统的结构框图。
附图标记:
80-自动驾驶系统的回放系统,801-原始数据获取单元,802-时序排列单元,803-遍历单元,804-输出单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,图1是本申请实施例提供的一种自动驾驶系统的数据控制示意图。如图1所示,自动驾驶系统通常包括多个子系统,子系统之间通过数据交互和控制交互,实现车辆的自动驾驶功能。比如:感知模块将感知数据提供给相对地图模块,相对地图模块又控制预测模块进行车辆下一步驾驶场景的预测。
当车辆自动驾驶系统在线运行时出现了定位问题,则该问题是需要通过自动驾驶系统多个子系统合作解决的,而离线运行的计算平台与实车上的计算平台两者的算力不同,导致同样的数据源给到自动驾驶系统后,各个子系统的运行时间不同,最终离线运行的时序与实车在线运行的时序存在差异。
参照图2,图2是本申请实施例提供的一种自动驾驶系统离线运行与在线运行差异的分析示意图。如图2所示,本申请发明人考虑将自动驾驶系统处理问题的过程分割为多个定位任务,则可以发现,在相关技术中,对于离线环境与实车运行的自动驾驶系统来说,实车运行camera摄像数据和imu(Inertial Measurement Unit惯性测量系统)惯性测量数据是在同样的时刻实时输入同样的数据,且首个任务的启动时间一致,但由于硬件规格存在巨大的差异,离线环境的计算平台的算力通常远远超过在线计算平台,因此,离线环境的任务执行时间与实车运行的任务执行时间并不一致,这就导致离线计算平台计算第二个任务用到的输入数据为“Camera_3+imu_2”,而实车计算第二个任务用到的输入数据为“Camera_3+imu_3”,输出的结果自然也不一致。因此,从计算第二个任务开始,离线回放与在线运行的输出结果就开始不同,最终的回放结果自然也会大相径庭。
而目前针对自动驾驶系统的实车问题,在做问题回归的时候,是希望能够在离线的情况下验证实车上的bug,即,程序漏洞,这就要求离线环境能够完全还原实车运行的效果,目前的离线回放的方案不能准确还原实车运行的效果,也就不能很好的验证实车问题,阻碍了自动驾驶系统算法的进步。
因此,为了解决上述问题,本申请实施例提出了一种自动驾驶系统的回放方法、系统、计算机存储介质和电子设备,获取控制任务对应的控制任务数据,从数据源上避免了进行自动驾驶系统的回放时可能出现的数据错乱,并对控制任务数据之间作了分割,并按照实车上运行的时序,依次对每个控制任务数据的输入数据进行分析处理,保证了控制任务的运行时序,最后按照实车运行中每个控制任务数据的输出时刻,输出对每个输入数据分析处理的处理结果,保证了任务数据流的一致性,对各任务之间的数据流的衔接实现了还原,最终完成了自动驾驶的一致性回放。
下面结合附图对本申请进行详细说明。
参照图3,图3是本申请实施例提供的一种自动驾驶系统的回放方法的步骤流程图。如图3所示,所述方法可以应用于部署自动驾驶系统的离线计算平台,具体包括可以如下步骤:
步骤S31、获取真实车辆在自动驾驶过程中产生的多个控制任务数据。
其中,所述自动驾驶过程,是自动驾驶系统驱动真实车辆完成的驾驶过程。具体可以是真实车辆上搭载的本地自动驾驶系统驱动车辆自动完成的驾驶过程,还可以是远程的在线计算平台搭载的自动驾驶系统驱动车辆完成的驾驶过程。
其中,控制任务数据可以是统一通过trace_msg存储的trace数据,即,回溯数据。
多个控制任务数据可以与真实车辆自动驾驶过程中产生的控制任务一一对应,而每个控制任务包括相应的输入数据和输出数据。其中,控制任务可以是车辆的定位任务,即,指示车辆下一步位置的任务。
自动驾驶系统的回放需要真实车辆用于自动驾驶的输入数据,因此,每个控制任务数据包括输入数据。其中,输入数据可以是真实车辆的传感系统提供的实时驾驶数据,输入到自动驾驶系统中,使自动驾驶系统对输入数据进行分析处理,以得到车辆的下一步驾驶动作。
进一步的,输入数据可以包括:影像数据和惯性测量数据。影像数据可以是车载摄像头按预设帧率实时提供的,惯性测量数据可以是惯性测量单元IMU按预设帧率实时提供的。具体的,惯性测量数据可以包括以下至少一者:加速度参数、角速度参数、陀螺仪水平参数、气压参数。此外,考虑到车辆用于实现自动驾驶的传感系统可能还包括激光雷达,输入数据还可以包括激光雷达按预设帧率实时提供的雷达探测数据。
其中,输出数据可以是自动驾驶系统对输入数据进行分析处理得到的定位任务数据,用以指示车辆的下一步驾驶动作。与输入数据相应的,输出数据也可以是按预设帧率实时输出的定位任务数据。
考虑到在自动驾驶系统的实车运行过程中,各控制任务的数据流可能存在相互依托和相互作用,例如:任务_A的输出数据_A,可能是任务_B的输入数据,而任务_B在业务逻辑上可能会比较输出数据_C和输出数据_A的时间戳来实现特定功能,这就要求回放过程中每个控制任务的输出数据时间戳要与真实车辆上输出数据的时间戳相同。而用于回放的离线计算平台的硬件与实车的计算硬件存在差异,为了实现输出数据时间的对齐,在本申请实施例中,每个控制任务数据可以携带对所述输入数据进行分析处理得到的输出数据的输出时刻,以实现在回放过程中各输出数据的输出时间与真实车辆运行过程中各输出数据的输出时间之间的对齐。
具体的,可以使用仿真时间钟记录真实车辆在自动驾驶过程中产生的多个控制任务数据输出数据的时间戳,以使每个控制任务数据携带输出数据的输出时刻。
在本申请实施例中,对控制任务一一对应的多个控制任务数据进行获取,而不是将相关传感系统产生的所有数据进行获取,避免了在回放过程中误用到实车运行过程中未用到的数据,从数据源头上避免了回放过程与实车运行过程不一致的问题。
步骤S32、响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表。
其中,一致性回放请求,是要求回放过程与真实车辆运行过程和处理结果一致的回放请求。一致性回放,即,在有同样的输入数据的情况下,离线环境能够回放还原实车上的效果。
其中,多个控制任务数据各自的输出时刻,即,多个控制任务数据的输出数据的输出时刻。
其中,时序表可以是基于控制任务对应的执行时间,对控制任务数据进行排序的表格。控制任务数据可以与控制任务一一对应。
在本申请实施例中,为了完全回放实车运行的控制任务之间的数据流,对多个控制任务数据的控制任务的执行时序进行排列,以便后续步骤中按照控制任务的执行时序依次回放。
步骤S33、按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理。
具体的,可以按照所述时序表中控制任务的执行时序,依次对所述多个控制任务数据中的输入数据进行分析处理。
步骤S34、在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
其中,多个控制任务数据各自的输出时刻,即,多个控制任务数据各自携带的对所述输入数据进行分析处理得到的输出数据的输出时刻。
尽管离线计算平台和在线计算平台的硬件规格存在差异,但是离线计算平台搭载的自动驾驶系统算法与真实车辆的在线计算平台搭载的自动驾驶系统算法是一致的,在控制任务数据一致、各输出数据的输出时刻均一致的前提下,对每个输入数据进行分析处理的处理结果与实车运行的分析处理的处理结果一致,回放的数据流与实车运行的数据流也一致,因此,通过本申请实施例,针对性地获取真实车辆自动驾驶过程中产生的控制任务数据,并在对齐实车运行的输出时刻下针对这些数据进行分析处理,能够在包括离线环境下的计算平台上实现自动驾驶系统的一致性回放,以对实车问题进行反复验证,最终实现自动驾驶系统的验证和改进。
在相关技术中,无论实现自动驾驶算法功能的硬件是在线计算平台还是车辆搭载的计算装置,都需要将控制任务数据按特定的方式存储起来,才能更好更快地提供到用于进行回放的离线计算平台。因此,在一种可选的实施方式中,本申请提供了一种获取控制任务数据的方法,所述方法包括:
S311、向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求。
具体的,离线计算平台可以通过远程通信技术,向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求。
S312、接收所述真实车辆或者所述自动驾驶系统的在线计算平台,发送的所述真实车辆在自动驾驶过程中产生的多个控制任务数据。
具体的,多个控制任务数据可以是自动驾驶系统在某一段预设时长的自动驾驶过程中产生的控制任务数据。
其中,所述多个控制任务数据是所述自动驾驶系统为所述真实车辆提供自动驾驶服务的过程中,所述真实车辆本地对每次控制任务的控制任务数据全量存储得到的,或者,所述自动驾驶系统的在线计算平台远程对每次控制任务的控制任务数据全量存储得到的。
其中,所述全量存储是指,每完成一次控制任务,就将该次控制任务的输入数据、控制任务标识、输出数据,存储到执行自动驾驶系统的计算装置对应的存储器中。更进一步的,为了进一步保证读取的控制任务数据与按时序执行的控制任务之间的正确对应关系,全量存储还可以存储控制任务的输入数据与控制任务标识之间的对应关系。
通过本实施例,主动获取实车运行的计算装置全量存储的控制任务数据,也就是对应实车执行的每一个控制任务来获取数据,进一步避免了无效数据的导入,提高了数据的管理效率,也使得离线计算平台在计算时可以通过按控制任务的不同分别读取全量数据包来回放控制任务,提高了数据的利用效率。
考虑到控制任务执行的过程中存在的都是输出时刻这样的时间点,本申请实施例还可以进一步使用离散事件的表达方式进行回放,以提高回放过程中数据处理的效率,因此,在一种可选的实施方式中,本申请还提供了一种构建时序表的方法,所述方法包括:
S321、基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻。
其中,回放启动时刻是开启多个控制任务数据的回放的时刻。
具体的,以回放启动时刻为基础时刻,并根据多个控制任务数据各自的输出时刻获得多个控制任务之间的间隔时长,则可以得到所述多个控制任务数据各自的回放输出时刻。
进一步的,还可以根据所述多个控制任务数据在实车运行的启动时刻和多个控制任务数据中第一个控制任务数据的输出时刻,得到第一个控制任务的输出时长,进而基于回放启动时刻,得到多个控制任务数据中第一个控制任务数据的回放输出时刻。
S322、根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表。
其中,控制任务和离散事件表中的离散事件可以是一一对应的。基于前述实施例中获取的全量存储的控制任务数据,每项事件即可以包括对应的控制任务的输入数据、控制任务标识、输出数据。
具体的,每项离散事件的离散时间点可以是多个控制任务数据各自的回放输出时刻。
在另一种可选的实施方式中,在获取的全量存储的控制任务数据还包括控制任务的执行时刻的情况下,每项离散事件还可以包括对应的控制任务的执行时刻,则每项离散事件的离散时间点可以是多个控制任务的执行时刻。
S323、将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
在本申请实施例中,离散事件表携带各个离散事件的输出时刻,则在后续步骤中,能够按照各个离散事件的输出时刻的先后顺序,依次对所述多个控制任务数据中的输入数据进行分析处理。
在另一种可选的实施方式中,在每项离散事件的离散时间点是多个控制任务的执行时刻的情况下,所述时序表也携带各个离散事件的执行时刻,以在后续步骤中能够按照各个离散事件的执行时刻的先后顺序,依次对所述多个控制任务数据中的输入数据进行分析处理。
通过本申请实施例,可以更好地承接获取到全量数据,以包含所需数据的离散事件表作为时序表,可以直接在时序表中对离散事件进行回放,也即,对控制任务和控制任务数据进行回放,减少了数据传输和交互的次数,降低了数据处理的难度,增强了自动驾驶系统的回放的效率。
如图1所示,自动驾驶系统中存在一些子系统对时间的加速和延迟都不敏感,这些子系统回放控制任务数据的加速或延迟都不会影响回放的结果,比如:感知系统。而离线计算平台的算力通常远远超过真实车辆运行自动驾驶系统所使用的计算装置,为了充分利用离线计算平台的算力资源,进一步加快自动驾驶系统回放的速度,在一种可选的实施方式中,本申请还提供了一种加速回放的方法,所述方法包括:
S41、响应于加速回放请求,将所述多个控制任务数据发送给所述自动驾驶系统的预设第一子系统。
其中,预设第一子系统是在执行控制任务的过程中,输出数据的内容与分析处理输入数据所消耗的时间无关的自动驾驶子系统,即,加速或延迟与否都不影响回放结果的自动驾驶子系统。
具体的,离线计算平台可以在获取真实车辆在自动驾驶过程中产生的多个控制任务数据之后,根据每个控制任务数据的输出时刻的先后排序,依次检测每个控制任务数据对应的控制任务是否由自动驾驶系统的预设第一子系统执行。在检测到任一控制任务数据对应的控制任务由预设第一子系统执行的情况下,将自动生成加速回放请求,使相应控制组件进行对加速回放请求进行响应。
在另一种可选的实施方式中,加速回放请求还可以是根据用户的加速回放指示生成的。
S42、通过所述预设第一子系统,对所述多个控制任务数据中的每个输入数据执行回放处理。
在本实施例中,通过预设第一子系统对输入数据进行执行处理,可以无需按照特定的输出时刻输出处理结果,即,回放处理的完成时长可以与执行回放的离线计算平台的算力关联,可以根据用户需求或离线计算平台的硬件状况实现自动驾驶系统回放的加速,提高自动驾驶系统回放的速度,对需要反复多次回放验证的实车问题来说有效提高了验证效率。利用离线环境强大的算力资源,可以实现“车上一年,云上一天”的效果。即离线环境可以部署在云端的集群上,加快离线回放的效率。
同样的,响应于减速回放请求,该方法也可以实现自动驾驶系统的减速。
考虑到前述步骤中已经对各个控制任务对应的控制任务数据之间明显的区分,回放已经具有针对性,还可以以此为基础进一步考虑通过多任务的执行对整个回放过程进行加速。基于此考虑,在一种可选的实施方式中,本申请提供了一种倍速执行回放处理的方法,包括:
S4211、根据目标控制任务数据的输出时刻,确定所述目标控制任务数据的输出时长;其中,所述目标控制任务数据是所述多个控制任务数据中的任一控制任务数据。
其中,目标控制任务数据的输出时长可以根据目标控制任务数据的输出时刻、上一控制任务数据的输出时刻确定,还可以根据目标控制任务数据的输出时刻、原始启动时刻确定。原始启动时刻是多个控制任务在实车上开始执行的时刻,也即,多个控制任务数据中的首个控制任务数据对应的控制任务在实车上开始执行的时刻。
示例性的,当首个控制任务的输出时刻以时分秒表示为“16:09:45”,原始启动时刻为“16:08:25”,则输出时长为“00:01:20”;
S4212,在所述目标控制任务数据的输出时长内,执行预设数量个所述目标控制任务数据的回放处理任务。
其中,为了实现回放加速,预设数量可以是大于1的正整数值。由于,任务的回放执行的快慢实际上取决于计算平台的算力大小,因此,所述预设倍数可以是根据用于进行所述自动驾驶系统的回放的离线计算平台的算力确定的,算力越高,则可以实现的倍速回放越高,输出时长的预设倍数则可以越小。
具体的,预设数量可以是用于进行所述自动驾驶系统的回放的离线计算平台的算力与车辆实车运行自动驾驶系统平台的算力的倍数向下取整。
示例性的,当用于进行所述自动驾驶系统的回放的离线计算平台的算力为车辆实车运行自动驾驶系统平台的算力的10.5倍时,预设数量可以是10。
通过本申请实施例,对多个控制任务数据中的任一控制任务数据进行多任务执行,在该控制任务实车的运行时长内实现数倍次数的离线执行,使得自动驾驶系统中互相依托的控制任务之间的数据流保持了同样的时序,在保证离线计算输出结果与实车一致的前提下,实现了多个控制任务数据的回放加速。
考虑到自动驾驶系统的回放呈现出来的实车问题,通过人工进行验证和改善,往往费事费力,本申请实施例提出自动获取对回放结果的打分,并自动推送更新算法,因此,因此,在一种可选的实施方式中,本申请还提供了一种自动更新算法的方法,包括:
S51、获得对所述处理结果的自动驾驶完善度分值。
具体的,自动驾驶完善度分值可以是回放模拟自动驾驶系统对车辆进行驱动时,从以下至少一个自动驾驶性能参数进行判断得到的分值:车道居中能力、无车道跟车能力、自适应巡航能力。自动驾驶完善度分值,则表示该自动驾驶系统的完善度越高,各项自动驾驶性能参数越强。
S52、在所述自动驾驶完善度分值低于预设分值时,获得对所述输入数据进行分析处理的更新参数。
其中,在所述自动驾驶完善度分值低于预设分值时,表示自动驾驶系统在遇到当前实车问题时,自动驾驶性能不足,甚至可能导致安全问题。这时候需要工程人员针对输入数据所表征的实车问题,在调试平台对自动驾驶系统的算法进行调试改进,则离线计算平台可以输入所述输入数据进行分析处理的更新参数,即,调试完成后自动驾驶系统算法更新包。
S53、将所述更新参数同步到所述真实车辆或者所述自动驾驶系统的在线计算平台。
具体地,离线计算平台可以在自动获取自动驾驶系统算法更新包后,将动驾驶系统算法更新包同步发送到搭载该自动驾驶系统的真实车辆或在线计算平台,以对自动驾驶系统进行自动的全网更新。
通过本申请实施例,可以对自动驾驶完善度进行打分,在自动驾驶不够完善时,提醒工程人员对自动驾驶系统进行调试改进,在改进完成后,又对自动驾驶系统进行自动的全网更新,实现了自动驾驶系统回放之后的完善改进,提高了自动驾驶系统的验证和完善效率。
参照图4,图4是本申请实施例提供的一种回溯数据离线回放的整体流程示意图。如图4所示,同样可以考虑将实车运行的输出时刻与任务的执行时序分开处理,以提高回放处理的可拓展性,因此,在一种可选的实施方式中,本申请实施例还提供一种利用回溯数据遍历执行离散事件的方法,具体包括:
S201、驱动实车运行的自动驾驶系统将各个控制任务的输入数据和输出数据全量存储在磁盘上,并记录每组数据和控制任务的关联关系,统一通过存储为回溯数据trace_msg。
S202、在离线环境下对回溯数据trace_msg进行分析,将各个控制任务的执行一一作为离散事件,按照时序排列构建离散事件表。其中,每次任务的执行就是一次离散事件,离散事件表中的每个元素至少包括一次任务以及其对应的输入数据。
示例性的,在实车运行用到的输入数据为“Camera_1+imu_1”、“Camera_3+imu_3”……的情况下,离散事件表中任务对应的输入数据也为:“Camera_1+imu_1”、“Camera_3+imu_3”,避免导入“Camera_2”、“imu_2”这些未使用的数据。
S203、遍历离散时间表,依次读取各个离散事件;
S204、获取当前时间对应的输入数据,在执行该数据对应的任务,在离线环境中运行,直到所有离散事件读取完成。
其中,由于上述步骤仅仅依靠任务的执行时序进行离线回放,为了实现任务之间的数据流的完全对齐,还可以基于实车运行的仿真时间钟对齐实车上输出数据的时间,以在各事件的运行过程中输出各项任务的执行结果。
参照图5,图5是本申请实施例提供的一种仿真时间钟的示意图。如图5所示,以两个相邻时序执行的任务A和任务B为例,针对以下时刻点进行赋值:
t1:任务A对应的输入数据A产生;
t2:任务A开始执行;
t3:任务B对应的输入数据B产生;
t4:任务A结束执行;
t5:任务B开始执行;
t6:任务A对应的输出数据产生;
t7:任务B结束执行;
t8:任务B对应的输出数据产生。
其中,如图5所示,任务A的实际运行时间为t4-t2,是在Real World的时间,这个时间大于离线环境即在Sim World中的运行时间,比如,Real World中真实车辆计算所能使用的算力一般远远小于Sim World离线环境中模拟计算使用的算力,则Real World的运行时间远远大于离线环境即在Sim World中的运行时间,通过仿真时间钟,可以对任务A在SimWorld的输出时间,按照任务A在Real_World的输出时间赋值。
通过上述实施例,利用回溯数据,针对自动驾驶系统在实车运行中的各个任务离线重组任务事件,构建离散事件表,按照任务的执行时序对事件进行回放,并按照实车运行的仿真时间钟,赋值离线回放的输出时间,同样可以实现自动驾驶系统在离线环境下的一致性回放,进而可以在离线环境下回归实车上的问题,避免因为离线环境运行时序的不一致导致无法验证实车问题的困难。
基于同一发明构思,本申请实施例还提供了一种自动驾驶系统的回放系统80。参照图6,图6是本申请实施例提供的一种自动驾驶系统的回放系统的结构框图。如图6所示,所述系统80具体可以包括:
原始数据获取单元801,用于获取真实车辆在自动驾驶过程中产生的多个控制任务数据,其中,每个控制任务数据包括输入数据,每个控制任务数据携带对所述输入数据进行分析处理得到的输出数据的输出时刻;
时序排列单元802,用于响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表;
遍历单元803,用于按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理;
输出单元804,用于在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
在本申请一种可选的实施方式中,所述系统还包括:
回放输出时刻计算单元,用于基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻;
离散事件表确定单元,用于根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表;
时序表确定单元,用于将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
在本申请一种可选的实施方式中,所述系统还包括:
加速预备单元,用于响应于加速回放请求,将所述多个控制任务数据发送给所述自动驾驶系统的预设第一子系统;
加速执行单元,用于通过所述预设第一子系统,对所述多个控制任务数据中的每个输入数据执行回放处理。
在本申请一种可选的实施方式中,所述系统还包括:
所述系统还包括:
输出时长计算单元,用于根据目标控制任务数据的输出时刻,确定所述目标控制任务数据的输出时长;其中,所述目标控制任务数据是所述多个控制任务数据中的任一控制任务数据;
多任务执行单元,用于在所述目标控制任务数据的输出时长内,执行预设数量个所述目标控制任务数据的回放处理任务;
其中,所述预设数量是根据用于进行所述自动驾驶系统的回放的离线计算平台的算力确定的。
在本申请一种可选的实施方式中,所述系统还包括:
完善度打分单元,用于获得对所述处理结果的自动驾驶完善度分值;
算法更新单元,用于在所述自动驾驶完善度分值低于预设分值时,获得对所述输入数据进行分析处理的更新参数;
算法推送单元,用于将所述更新参数同步到所述真实车辆或者所述自动驾驶系统的在线计算平台。
在本申请一种可选的实施方式中,所述系统还包括:
原始数据请求单元,用于向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求;
原始数据接收单元,用于接收所述真实车辆或者所述自动驾驶系统的在线计算平台,发送的所述真实车辆在自动驾驶过程中产生的多个控制任务数据;
其中,所述多个控制任务数据是所述自动驾驶系统为所述真实车辆提供自动驾驶服务的过程中,所述真实车辆本地对每次控制任务的控制任务数据全量存储得到的,或者,所述自动驾驶系统的在线计算平台远程对每次控制任务的控制任务数据全量存储得到的。
基于同一发明构思,本申请的另一实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请上述任一实施例所述的方法的步骤。
基于同一发明构思,本申请的另一实施例还提供了一种电子设备,所述电子设备包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行时实现如本申请上述任一实施例所述的方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本实施例中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种自动驾驶系统的回放方法、一种自动驾驶系统的回放系统、一种计算机可读存储介质和一种电子设备,进行了详细介绍,本实施例中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种自动驾驶系统的回放方法,其特征在于,所述方法包括:
获取真实车辆在自动驾驶过程中产生的多个控制任务数据;其中,每个控制任务数据包括输入数据,每个控制任务数据携带对所述输入数据进行分析处理得到的输出数据的输出时刻;
响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表;
按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理;
在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
2.根据权利要求1所述的方法,其特征在于,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表,包括:
基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻;
根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表;
将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于加速回放请求,将所述多个控制任务数据发送给所述自动驾驶系统的预设第一子系统;
通过所述预设第一子系统,对所述多个控制任务数据中的每个输入数据执行回放处理。
4.根据权利要求3所述的方法,其特征在于,对所述多个控制任务数据中的每个输入数据执行回放处理,包括:
根据目标控制任务数据的输出时刻,确定所述目标控制任务数据的输出时长;其中,所述目标控制任务数据是所述多个控制任务数据中的任一控制任务数据;
在所述目标控制任务数据的输出时长内,执行预设数量个所述目标控制任务数据的回放处理任务;
其中,所述预设数量是根据用于进行所述自动驾驶系统的回放的离线计算平台的算力确定的。
5.根据权利要求1所述的方法,其特征在于,输出对每个输入数据进行分析处理的处理结果之后,所述方法还包括:
获得对所述处理结果的自动驾驶完善度分值;
在所述自动驾驶完善度分值低于预设分值时,获得对所述输入数据进行分析处理的更新参数;
将所述更新参数同步到所述真实车辆或者所述自动驾驶系统的在线计算平台。
6.根据权利要求1所述的方法,其特征在于,获取真实车辆在自动驾驶过程中产生的多个控制任务数据,包括:
向所述真实车辆或者所述自动驾驶系统的在线计算平台发送数据请求;
接收所述真实车辆或者所述自动驾驶系统的在线计算平台,发送的所述真实车辆在自动驾驶过程中产生的多个控制任务数据;
其中,所述多个控制任务数据是所述自动驾驶系统为所述真实车辆提供自动驾驶服务的过程中,所述真实车辆本地对每次控制任务的控制任务数据全量存储得到的,或者,所述自动驾驶系统的在线计算平台远程对每次控制任务的控制任务数据全量存储得到的。
7.一种自动驾驶系统的回放系统,其特征在于,所述系统包括:
原始数据获取单元,用于获取真实车辆在自动驾驶过程中产生的多个控制任务数据,其中,每个控制任务数据包括输入数据,每个控制任务数据携带对所述输入数据进行分析处理得到的输出数据的输出时刻;
时序排列单元,用于响应于一致性回放请求,基于所述多个控制任务数据各自的输出时刻,构建对所述多个控制任务数据进行回放的时序表;
遍历单元,用于按照所述时序表,依次对所述多个控制任务数据中的输入数据进行分析处理;
输出单元,用于在所述多个控制任务数据各自的输出时刻,输出对每个输入数据进行分析处理的处理结果。
8.根据权利要求7所述的系统,其特征在于,所述时序排列单元包括:
回放输出时刻计算单元,用于基于回放启动时刻和所述多个控制任务数据各自的输出时刻,得到所述多个控制任务数据各自的回放输出时刻;
离散事件表确定单元,用于根据所述多个控制任务数据各自的回放输出时刻,将所述多个控制任务数据各自对应的控制任务作为离散事件,按照时间排序构建离散事件表;
时序表确定单元,用于将所述离散事件表作为对所述多个控制任务数据进行回放的时序表,所述时序表携带各个离散事件的输出时刻。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法的步骤。
10.一种电子设备,所述电子设备包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1至6任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111127479.1A CN115858207A (zh) | 2021-09-26 | 2021-09-26 | 一种自动驾驶系统的回放方法、系统、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111127479.1A CN115858207A (zh) | 2021-09-26 | 2021-09-26 | 一种自动驾驶系统的回放方法、系统、存储介质和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858207A true CN115858207A (zh) | 2023-03-28 |
Family
ID=85652706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111127479.1A Pending CN115858207A (zh) | 2021-09-26 | 2021-09-26 | 一种自动驾驶系统的回放方法、系统、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858207A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117451115A (zh) * | 2023-12-26 | 2024-01-26 | 天津万事达物流装备有限公司 | 一种用于分拣输送系统的实时状态监测方法 |
-
2021
- 2021-09-26 CN CN202111127479.1A patent/CN115858207A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117451115A (zh) * | 2023-12-26 | 2024-01-26 | 天津万事达物流装备有限公司 | 一种用于分拣输送系统的实时状态监测方法 |
CN117451115B (zh) * | 2023-12-26 | 2024-03-12 | 天津万事达物流装备有限公司 | 一种用于分拣输送系统的实时状态监测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230385481A1 (en) | Simulation Traffic Scenario File Generation Method and Apparatus | |
CN109388073B (zh) | 一种车辆动态模拟的方法和装置 | |
CN103098032B (zh) | 仿真方法和系统 | |
CN107302476B (zh) | 一种测试异步交互系统的自动化测试方法与系统 | |
US20210081585A1 (en) | Method for event-based simulation of a system | |
US20160246278A1 (en) | Simulation system, programmable controller, simulation device, and engineering tool | |
CN107612962A (zh) | 一种分布式仿真评估试验管理系统 | |
CN106294121B (zh) | 飞机嵌入式实时诊断推理算法试验方法 | |
CN115858207A (zh) | 一种自动驾驶系统的回放方法、系统、存储介质和设备 | |
CN115268296A (zh) | 一种提高自动驾驶开发测试效率的并行仿真系统 | |
CN110174120B (zh) | 用于ar导航模拟的时间同步方法及装置 | |
CN106598865B (zh) | 一种软件测试方法及装置 | |
CN110570646B (zh) | 一种基于历史数据的四遥信号验收方法及系统 | |
CN110442338B (zh) | 一种结构分析与设计语言aadl模型的仿真方法 | |
CN116127679A (zh) | 一种自动驾驶仿真系统的数据处理方法、存储介质及系统 | |
CN113268421A (zh) | 服务调用处理方法、装置、服务器及存储介质 | |
CN110109372B (zh) | 用于模拟受控制的机器或设施的设备以及方法 | |
CN113541126A (zh) | 适用于验证高级算法的配电网仿真系统及算法验证方法 | |
CN114091687A (zh) | 机器学习模型自动交付和部署的方法及装置 | |
CN113230661A (zh) | 数据同步方法、装置、计算机可读介质及电子设备 | |
Jung et al. | Synchronization of a “Plug-and-Simulate”-capable Co-Simulation of Internet-of-Things-Components | |
CN112558960A (zh) | 一种图形化编程的协作编程方法、装置、介质及电子设备 | |
CN106292330B (zh) | 飞机嵌入式实时诊断推理算法试验方法 | |
CN114036645B (zh) | 一种基于ros的仿真方法、装置和电子设备 | |
CN115061897B (zh) | 用于车联网的数据生成方法、装置及电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |