一种基于错误注入器的自动驾驶性能局限测试系统及方法与流程

文档序号:22879013发布日期:2020-11-10 17:35阅读:132来源:国知局
一种基于错误注入器的自动驾驶性能局限测试系统及方法与流程

本发明涉及自动驾驶和智能交通领域,尤其是涉及一种基于错误注入器的自动驾驶性能局限测试系统及方法。



背景技术:

自动驾驶汽车的首要目标是安全性,对自动驾驶汽车进行测试是保证其安全性的必要途径。现有安全标准iso26262和标准草案iso21448要求对自动驾驶汽车在不确定外部环境因素和系统内部错误下的表现进行测试和评估。

针对自动驾驶系统进行的测试,按照使用的测试工具可以分为道路测试和仿真测试两大类。其中道路测试的真实度高,但成本高、灵活度低、效率低。仿真测试使用计算机模拟测试环境,在适当牺牲真实度的情况下,大幅提高了测试效率、测试灵活性以及测试过程中的安全性,是对自动驾驶系统进行试验的有效途径。仿真测试按照模拟的成分可以分为整车在环测试(vil)、硬件在环测试(hil)、软件在环测试(sil)以及模型在环测试(mil)。

目前,针对自动驾驶系统开展的在环仿真测试几乎全为功能性测试,即只关注系统在理想条件下是否能安全高效地完成指定驾驶任务。而在实际使用环境中,自动驾驶汽车面临极端天气(雨雪、雷暴、大风等)和极端环境(电磁、高温、高压、高湿度等)的影响,系统内部精密的电子元部件也可能发生随机失效;同时,自动驾驶系统对环境信息的测量和处理总是存在一定误差,并且部分环境信息如交通参与者的意图无法直接观测得到,需进行预测。

自动驾驶系统通过感知系统对环境信息进行测量和处理,得到感知结果;通过决策系统接收感知结果作为输入,决策出安全合理的驾驶行为;通过控制系统执行决策规划的结果,控制车辆运动。但现有技术无法保证得到完全准确的结果,所以需要自动驾驶系统能够对错误具有一定鲁棒性,以保证安全行驶。仅对自动驾驶系统进行功能性测试无法验证其在实际运行环境中的安全性,因此开发过程中需要对其在不确定性条件下的表现,即其鲁棒性进行单独测试。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于错误注入器的自动驾驶性能局限测试系统及方法,能够对自动驾驶系统在不确定性条件下或者内部随机错误情况下,对其鲁棒性进行单独测试,提高自动驾驶汽车在实际使用环境中的安全性。

本发明的目的可以通过以下技术方案来实现:

一种基于错误注入器的自动驾驶性能局限测试系统,用于对自动驾驶系统进行安全鲁棒性的测试,包括错误搜索器、结果监视器以及依次连接的错误模型库、错误生成器和错误注入器,所述的错误搜索器分别与错误生成器和结果监视器连接,所述的结果监视器通过被测自动驾驶系统与错误注入器连接;

所述的错误模型库内存储原子错误类型和错误模式;

所述的错误生成器获取错误模式和错误参数,并生成错误数据;

所述的错误注入器将错误数据注入到被测自动驾驶系统中;

所述的结果监视器收集被测自动驾驶系统的测试结果并进行数据处理;

所述的错误搜索器根据测试结果和错误模式对关键错误进行搜索,得到优化后的错误参数。

该系统还包括测试流程管理框架,所述的测试流程管理框架分别与结果监视器和自动驾驶系统连接,包括测试用例配置器、测试用例执行器和自动化测试器,所述的测试用例配置器用于配置自动驾驶系统仿真环境中的测试用例参数,所述的测试用例执行器用于根据设定的起始条件和结束条件,控制自动驾驶系统自动开始和结束单轮仿真试验,所述的自动化测试器用于根据设定测试用例参数空间,通过采样连续生成测试用例。

进一步地,所述的测试用例参数包括路网文件、交通信号、各交通参与者属性、各交通参与者动态行为、天气环境和v2x环境,所述的测试用例配置器和测试用例执行器分别通过被测自动驾驶系统提供的接口进行测试用例参数配置和仿真试验控制。

进一步地,所述的原子错误类型为无法继续分割的错误类型,例如数值错误、类别错误、开始时间错误、结束时间错误等,所述的错误模式为原子错误类型按照设定的规则组合得到的结构,组合规则可以根据领域知识得到,例如对常用传感器如摄像头、激光雷达等进行环境影响因素分析,也可以采用完全随机的方式。

进一步地,所述的错误生成器包括错误参数配置器和错误数据生成器,所述的错误参数配置器用于从错误模型库中获取错误模式,并配置错误模式的参数,可配置的错误模式参数包括但不限于允许误差值大小、采样间隔、统计分布规律等,所述的错误数据生成器用于从完成参数配置的错误模式中,采样得到错误数据,并将错误数据封装成被测自动驾驶系统对应的格式,采样的方式可以选择定点采样、蒙特卡洛采样、网格采样等。

进一步地,所述的错误注入器通过错误注入接口与被测自动驾驶系统连接,所述的错误注入接口中包括被测对象输入通道和被测对象内部状态,所述的被测对象输入通道包括感知输入通道(相机rgb数据、激光雷达点云数据、gnss定位数据等)、v2x输入通道(v2x消息等)、决策输入通道(交通参与者或障碍物位置、姿态、速度、预测行为等)、规划输入通道(目标点,速度约束等)、控制输入通道(目标轨迹、目标速度、目标转向角等)和执行输入通道(制动液压力大小、油门开度、方向盘转角等),所述的被测对象内部状态包括被测自动驾驶系统内存和寄存器中的变量。

进一步地,所述的结果监视器包括结果记录器、结果分析器和结果可视化工具,所述的结果记录器获取被测自动驾驶系统试验过程中的测试结果,测试结果包括但不限于自车和交通参与者的位置、姿态、速度和加速度、虚拟相机和激光雷达传感器的rgb图、深度图和点云数据以及碰撞检测传感器的撞击能量、撞击速度等,所述的结果分析器对测试结果进行数据处理得到分析指标,分析指标可用安全性、舒适性、高效性等方面的典型指标,包括但不限于前碰撞时间(ttc,timetocollision)、后侵入时间(pet,postencroachmenttime)、计权加速度均方根值等,所述的结果可视化工具提供gui工具,分别与结果记录器和结果分析器连接,用于将测试结果信息可视化展示,可视化展示包括但不限于图表、提示、动画等,可是实时或离线进行展示。

进一步地,所述的错误搜索器分别与错误数据生成器和结果分析器连接,所述的错误搜索器获取结果分析器处理得到的分析指标和错误数据生成器生成的错误数据,进行关键错误的搜索,优化算法可以使用包括但不限于贝叶斯优化、遗传算法、蚁群算法、贝叶斯网络、深度神经网络等。

更进一步地,所述的错误搜索器对关键错误进行搜索的方法具体包括:

获取错误数据生成器的错误数据作为自变量,获取模块结果分析器处理得到的分析指标,并在分析指标的基础上构建目标函数,然后通过优化算法对错误参数进行优化,使得目标函数取极值或满足给定条件,得到关键错误。

一种如所述的基于错误注入器的自动驾驶性能局限测试系统的测试方法,包括以下步骤:

s1:错误生成器获取错误模型库的错误模式和错误搜索器优化的错误参数,并生成错误数据;

s2:错误注入器将错误数据注入到被测自动驾驶系统中;

s3:被测自动驾驶系统根据测试用例进行单轮试验,生成测试结果;

s4:结果监视器收集被测自动驾驶系统的测试结果,并通过数据处理得到分析指标;

s5:错误搜索器将错误数据作为自变量,并在分析指标的基础上构建目标函数,通过优化算法对错误参数进行优化,得到优化的错误参数;

s6:结果监视器将测试结果进行可视化展示,并返回执行步骤s1,进行下一轮试验,直至达到设定试验轮次。

与现有技术相比,本发明具有以下优点:

(1)本发明通过错误注入的方式,形成一套针对自动驾驶系统在不确定性与错误下的性能稳健性的测试方法,弥补了传统功能性测试未考虑实际环境中的不稳定因素的不足;

(2)本发明使用软件方式实现错误注入,可涵盖自动驾驶系统的软件和硬件模块,可模拟包括不确定环境因素、感知认知误差、系统内部错误等多来源的错误,且与在环仿真测试平台可共用数据接口,测试效率高,成本低,灵活性和适用性高;

(3)本发明通过将错误抽象成原子错误类型的组合,将错误进行了参数空间形式化表示,并在此基础上提出优化搜索方法,可加速寻找导致系统表现劣化的关键错误,进一步提高了测试效率。

附图说明

图1为本发明系统的结构图;

图2为本发明实际实施例的示意图。

其中,1、错误模型库,11、原子错误类型库,12、错误模式库,2、错误生成器,21、错误参数配置器,22、错误数据生成器,3、错误注入器,4、结果监视器,41、结果记录器,42、结果分析器,43、结果可视化工具,5、错误搜索器,6、测试流程管理框架,61、测试用例配置器,62、测试用例执行器,63、自动化测试器。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

实施例

所述错误注入系统,包括以下模块:

错误模型库1:用于对错误进行形式化表征;

错误生成器2:用于根据给定错误模型生成特定错误数据;

错误注入器3:用于将错误数据注入到被测系统的指定接口中,通过覆盖被测对象输入通道上或者内部相关变量实现;

结果监视器4:用于收集、分析以及可视化测试结果;

错误搜索器5:用于在错误模型指定的参数空间中搜索关键错误;

测试流程管理框架6:用于管理错误注入试验流程,实现自动化测试。

其中,错误模型库1包括:

原子错误类型库11:原子错误类型库中存储无法继续分割的错误类型,即原子错误类型。原子错误类型包括如数值错误、类别错误、开始时间错误、结束时间错误等,在使用本系统时,可以按照错误模型库1限定的格式自定义原子错误类型。

错误模式库12:错误模式库中存储典型的错误模式,错误模式指原子错误类型按照一定规则组合所得的结构。组合规则可以根据领域知识得到,例如对常用传感器如摄像头、激光雷达等进行环境影响因素分析;也可以采用完全随机的方式。在使用本系统时,用户可以根据测试需求自定义所需错误模式并加入错误模式库中。

错误生成器2包括:

错误参数配置器21:用于从错误模型库1中选择需要的错误模式,并对错误模式的参数进行配置。可配置的错误模式参数包括但不限于允许误差值大小、采样间隔、统计分布规律等。

错误数据生成器22:用于从配置好的错误模式中采样得到具体的错误数据,并将采样得到的错误数据封装成被测对象待注入通道所需的数据格式。可以使用包括但不限于定点采样、蒙特卡洛采样、网格采样、贝叶斯优化、遗传算法、蚁群算法、贝叶斯网络、深度神经网络等采样方法,也可以采用自定义的采样方法。

错误注入器中3包括:

注入接口:包括被测对象输入通道以及被测对象内部状态。被测对象输入通道包括感知输入通道(相机rgb数据、激光雷达点云数据、gnss定位数据等)、v2x输入通道(v2x消息等)、决策输入通道(交通参与者或障碍物位置、姿态、速度、预测行为等)、规划输入通道(目标点,速度约束等)、控制输入通道(目标轨迹、目标速度、目标转向角等)和执行输入通道(制动液压力大小、油门开度、方向盘转角等)等。被测对象内部状态包括被测对象内存和寄存器中的变量。

结果分析器4包括:

结果记录器41:用于记录试验过程中的试验数据,包括但不限于:(1)自车和交通参与者的位置、姿态、速度和加速度;(2)虚拟相机和激光雷达传感器的rgb图、深度图、点云数据;(3)碰撞检测传感器的撞击能量、撞击速度等。

结果分析器42:对结果记录器记录的试验数据,进行实时或者离线处理,计算得到分析指标,可用安全性、舒适性、高效性等方面的典型测试指标,包括但不限于前碰撞时间(ttc,timetocollision)、后侵入时间(pet,postencroachmenttime)、计权加速度均方根值等;也可以根据用户自定义的算法,计算得到相关测试指标。

结果可视化工具43:提供gui工具,将结果记录器和结果分析器处理得到的相关信息进行可视化,可视化方式包括但不限于图表、提示、动画等,支持实时和离线查看。

错误搜索器5分别读取错误生成器2的错误数据和结果监视器4所得的指标,将错误数据作为自变量,并在测试指标的基础上构建目标函数,根据特定优化算法,求解使得目标函数取极大值(极小值)或满足给定条件的错误数据得到关键错误。优化算法包括但不限于贝叶斯优化、遗传算法、蚁群算法、贝叶斯网络、深度神经网络等,也可以采用自定义的优化算法。

测试流程管理框架6包括:

测试用例配置器61:根据指定的测试场景,通过所用自动驾驶仿真软件(包括但不限于carla、prescan、virtualtestdrive等常用商用与开源软件)提供的接口,编辑仿真环境中的测试用例参数,包括但不限于路网文件、交通信号、各交通参与者属性、各交通参与者动态行为、天气环境、v2x环境等,自动化配置单个或多个测试用例。

测试用例执行器62:根据指定的起始条件和结束条件,通过所用自动驾驶仿真软件提供的接口,自动开始和结束单轮仿真试验,并清理试验环境。

自动化测试器63:根据指定的测试用例参数空间,使用指定采样方法连续生成测试用例,并通过测试用例执行器连续执行,通过结果监视器4记录试验结果,实现自动化测试。采样方法包括但不限于定点采样、蒙特卡洛采样、网格采样等,也支持用户自定义的采样方法。

如图2所示,为本发明系统应用于自动驾驶系统鲁棒性测试的一个实施例。

下面给出构建各模块的具体方法过程:

(1)错误模型库1

原子错误类型库11中存储的原子错误类型包括数值错误、类别错误、持续时间过长、持续时间过短、开始时间过早、开始时间过晚6种。错误模式库12在原子错误类型的基础上,组合形成错误模式,例如“过晚提供前方交通参与者信息,并把本为行人的该交通参与者识别成错误类别”。

被测自动驾驶系统接收的感知结果包括地图信息(道路拓扑、车道线)、交通信息(交通标志、标线、信号灯)、静态障碍物位置和几何信息、动态交通参与者的类别、几何、位置、姿态、速度和加速度信息以及预测的动态交通参与者行为信息。可见,上述信息包括数值型、类别型和时间型三类,因此上述原子错误类型的设置可以包括自动驾驶系统接收感知结果的所有错误类型。

(2)错误生成器2

借助领域知识和数据,确定各原子错误类型相关参数的取值范围。例如,对于“开始时间过晚”这一原子错误类型,确定其延迟的时间取值范围为0~5秒;对于“动态交通参与者类别”这一原子错误类型,确定其取值范围为除正确类别外的其他类别。之后对完成配置的错误模式进行采样,获取具体错误数据。例如,对于前面提到的“过晚提供前方交通参与者信息,并把本为行人的该交通参与者识别成错误类别”这一错误模式,采样得到一个错误数据为“延迟2秒提供前方交通参与者信息,并把行人识别成未定义物体,错误识别持续了3秒”。

(3)错误注入器3

在仿真测试运行时,通过被测自动驾驶系统接收感知结果的消息接口,使用错误数据覆盖正常数据。例如,对于前文提到的“延迟2秒提供前方交通参与者信息,并把行人识别成未定义物体,错误识别持续了3秒”这一个错误数据,实现方法是在交通参与者信息通道上添加一个2秒的延时器,并在延时结束后3秒内持续覆盖内存中表示该交通参与者类别的变量为“未定义物体”。

(4)结果监视器4

记录测试过程中自车和其余交通参与者运动学信息,包括位置、姿态、速度和加速度至日志文件。设置指标算法,计算试验结果,本实施例中主要关注安全性,所以选取了过程中实时ttc以及过程中最小ttc作为指标。编写可视化界面,本实施例中使用网页技术编写监视器窗口,可实时观察当前ttc、历史最小ttc、试验轮次、自车速度等参数变化。

(5)错误搜索器5

本实施例中选取了遗传算法作为优化方法,以单轮试验中最小ttc作为目标函数,将延迟时间、错误的交通参与者类别、错误识别持续时间作为待优化参数,寻找使目标函数取最小值的参数组合,即危险程度最高的关键错误。

(6)测试流程管理框架6

根据测试需求,本实施例中控制每轮测试中的场景一致,即道路环境、交通信号一致,自车和其余交通参与者初始化位置和速度一致,其余交通参与者行为一致。在测试用例中设置好试验场景,设置试验起始条件为仿真软件中世界时间大于0,试验终止条件为自车发生碰撞或者试验时间超过30秒,最大试验轮次为500次。

每次执行新的测试用例时,错误生成器2根据错误搜索器5建议的错误参数重新生成错误数据,结果监视器4记录试验中的安全性指标,完成对被测自动驾驶系统安全鲁棒性的自动化测试。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1