当前位置: 首页 > news >正文

面向高速公路车辆切入场景的自动驾驶测试用例生成方法

1 前言
自动驾驶汽车为解决“交通事故、交通拥堵、环境污染、能源短缺”等问题提供了新的途径[1]。科学完善的测试验证评价体系对提高自动驾驶汽车的研发效率、健全相关法律法规、推进智能交通发展至关重要[2]。自2009年起,谷歌自动驾驶汽车已经进行了超过560万km公共道路测试和数十亿公里虚拟测试[3]。UBER、沃尔沃、特斯拉等企业也进行了大量实际道路自动驾驶测试[4]。然而,以UBER自动驾驶测试车辆事故为代表的多起事故表明,在自动驾驶技术成熟之前,实际道路测试具有较高的安全风险和社会风险。
此外,与传统汽车的人-车二元独立测试不同,自动驾驶汽车是人-车-路-环境强耦合系统,传统的道路场地测试已经无法满足自动驾驶汽车的测试需求。基于场景的虚拟测试技术试验场景配置灵活、效率高、重复性强、过程安全、成本低,可实现自动测试和加速测试,同时,虚拟测试系统能够模拟实际车辆测试中危险或难以实现的极端场景[4-5],大幅降低测试的难度和风险,减少工作量。因此,基于场景的虚拟测试已成为自动驾驶汽车测试评价不可或缺的重要环节。研究人员在测试场景构建方面做出了大量努力[6-7],Xia等利用层次分析法选择测试场景中的重要因素,通过组合测试法构建虚拟测试场景[8-9],Zofka等利用多种传感器采集数据,提出一种在虚拟环境中利用真实交通数据构建高风险测试场景的方法[10]。
现阶段的自动驾驶领域,“场景”还没有明确和统一的定义,同时,现有研究集中于自动驾驶测试场景的分析与构建,缺少对测试用例设计和生成的研究。因此,本文提出一种测试场景的定义,同时提出基于实际交通场景的测试用例设计和描述方法,并通过分析高速公路车辆切入场景进行验证,运用highD数据集实现测试用例设计,并利用蒙特卡洛方法(Monte Carol Method)生成测试用例。
2 自动驾驶测试场景及用例
2.1 测试场景概念
在现有针对自动驾驶汽车测试场景的研究中存在不同的场景定义。依据场景的分类,Elias Rocklage等提出“场景为一段道路上观测车辆自身与其他静态或动态物体的组合”[11]。考虑时间延续性,Gelder将场景定义为一段时间内观测车辆自身运动和所在静态与动态环境的组合,突出场景连续性[12]。Hala Elrofai等提出“场景是在一个特定时间范围内,测试车辆周围动态环境的持续变化,包括测试车辆在该环境中的行为”[13]。
在总结现有场景定义的基础上,本文提出一种适用于测试场景构建的场景定义。对于自动驾驶汽车测试而言,测试场景是测试对象在交通环境中与其他相关交通参与者交互实现行驶意图的过程。其中,行驶意图是指测试对象完成自身运动状态改变,例如完成一次自由变道或在交通路口转向。交通环境是测试对象运行的道路、气象、光照等静态环境。交通参与者是指场景内对测试对象运动状态有影响的场景元素,如与测试车辆行驶路线有冲突的车辆、行人等,在场景的观测与分析中,对测试对象运动没有影响的元素可以忽略。
2.2 测试用例的定义
在自动驾驶汽车测试中,场景是对真实交通环境中一类运行过程的抽象描述,测试用例是相应测试场景的可执行实例。一个完整的测试用例描述包含测试用例所属测试场景描述和测试用例要素信息。其中,测试场景描述提供了测试环境和测试过程的抽象描述,测试用例要素信息提供了测试环境中各要素的取值及测试中交通参与者的起始状态、状态变化过程和预期运行结果。
本文以高速公路环境下车辆切入为例,描述测试用例。由于高速公路环境交通场景相对单一,以平直道路上相邻车道车辆切入为测试场景。被测车辆在车道2中循线行驶,目标车辆在被测车辆相邻车道1中保持平稳直线行驶。在切入开始时刻T 0,目标车辆位于被测车辆侧前方,开始向车道2切入。在T 1时刻,目标车俩切入车道2并行驶至T 2时刻。在切入过程中,两车存在发生碰撞的风险。

2.3 测试用例构建
真实交通数据中蕴含多种交通场景。基于真实交通场景生成该场景下测试用例的方法如图2所示。真实交通场景可分解为静态交通环境和交通参与者的运动过程。其中静态交通环境涵盖道路状态、路侧设施、气象及光照条件等影响车辆运行的环境条件,从中可以提取出测试场景中的静态环境元素。交通参与者的运动过程是被观察对象在静态环境中与其他交通参与者交互运动并实现自身运动意图的过程。交通参与者的运动过程是测试场景的核心,为生成测试用例,需要对运动过程进行建模并分析真实场景的大量实例,估计模型的描述参数分布,从而实现由真实场景向标准测试场景的转变。在此基础上,针对不同的测试对象、测试方法和测试内容,灵活赋予描述参数不同的取值,组合不同的静态元素即可生成相应的测试用例,以适应不同测试需求。

3 测试用例构建关键技术
3.1 基元场景提取
基元场景提取是从实际交通场景中分离出基元场景并确定其描述向量的过程。通过基元场景提取,实际交通场景被分解为独立的基元并实现模型化和参数化。

本文采用参数估计法实现场景模型描述变量的分布规律估计。参数估计法利用先验知识假定数据总体服从某一分布,再利用样本数据求解分布的未知参数,通过对比不同的估计结果确定数据总体服从的分布。本文中采用高斯混合模型(Gaussian Mixture Model,GMM)对场景模型描述变量的分布进行估计[14]。

3.2 基元场景生成
根据基元场景描述模型及其描述变量,可以重新生成测试基元场景。通过基元场景的生成,可以获得远多于实际采集且符合测试要求的基元场景,满足自动驾驶测试对复杂交通运动过程的覆盖性要求。
真实交通运行过程通常具有高维性和复杂性的特点,在测试用例生成过程中,若对其所属场景数学模型进行简化假设,可能会导致近似结果与实际存在较大的偏差。蒙特卡洛方法能够直接模拟实际复杂系统,可以有效解决复杂系统简化导致的结果失真问题,且误差与问题维数无关,是解决复杂高维问题的有效方法[16]。本文依据模型描述变量的分布,采用蒙特卡洛方法进行随机取样生成基元场景。
3.3 测试用例的组合
测试用例的构建是将提取出的基元场景根据测试任务确定场景要素的参数,按照一定规则重新组合的过程。针对不同的测试对象、测试方法和测试内容,可以灵活地控制测试用例的基元数量和场景要素的参数,构建出相应的测试用例,从而适应不同的测试需求。
如图3所示,首先选取组成测试场景所需的基元场景形成功能测试场景。在此基础上确定基元场景描述变量及其取值区间,为基元场景选择确定范围,形成逻辑测试场景。最后,根据逻辑场景集中选择基元场景,确定各描述变量的取值,组合生成具体测试用例。为了提高测试效率和降低测试成本,生成测试场景适宜采用强化测试思想,即选择基元场景组合生成高风险测试场景。

相关文章:

面向高速公路车辆切入场景的自动驾驶测试用例生成方法

1 前言 自动驾驶汽车为解决“交通事故、交通拥堵、环境污染、能源短缺”等问题提供了新的途径[1]。科学完善的测试验证评价体系对提高自动驾驶汽车的研发效率、健全相关法律法规、推进智能交通发展至关重要[2]。自2009年起,谷歌自动驾驶汽车已经进行了超过560万km公…...

Java:SpringBoot整合SSE(Server-Sent Events)实现后端主动向前端推送数据

SpringBoot整合SSE&#xff08;Server-Sent Events&#xff09;可以实现后端主动向前端推送数据 目录 核心代码完整代码参考文章 核心代码 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a…...

cmd命令行设置 windows 设置环境变量

cmd命令行设置 windows 设置环境变量 参考 51CTO博客 设置用户级别的环境变量 :: 设置新参数 JAVA_HOME1 setx JAVA_HOME1 "c:\test"; exit; echo "%JAVA_HOME1%";:: 追加参数内容 JAVA_HOME1 setx JAVA_HOME1 "%JAVA_HOME1%;c:\test2\;"; exi…...

基于负载均衡的在线OJ实战项目

前言&#xff1a; 该篇讲述了实现基于负载均衡式的在线oj&#xff0c;即类似在线编程做题网站一样&#xff0c;文章尽可能详细讲述细节即实现&#xff0c;便于大家了解学习。 文章将采用单篇不分段形式&#xff08;ps&#xff1a;切着麻烦&#xff09;&#xff0c;附图文&#…...

Opencv手工选择图片区域去水印

QT 插件化图像算法研究平台的功能在持续完善&#xff0c;补充了一个人工选择图片区域的功能。 其中&#xff0c;图片选择功能主要代码如下&#xff1a; QRect GLImageWidget::getSeleted() {QRect ajust(0,0,0,0);if(image.isNull() || !hasSelection)return ajust;double w1…...

《向量数据库》——向量数据库跟大模型是什么关系呢?

在人工智能领域&#xff0c;最近的一个重要趋势是大模型的兴起。在大模型的世界里&#xff0c;我们面临着处理和管理大规模向量数据的挑战&#xff0c;而向量数据库&#xff0c;就是为了满足这个需求而不断发展着。 那么&#xff0c;向量数据库跟大模型是什么关系呢&#xff1f…...

通过这 5 项 ChatGPT 创新增强您的见解

为什么绝大多数的人还不会使用chatGPT来提高工作效能&#xff1f;根本原因就在还不会循序渐进的发问与chatGPT互动。本文总结了5个独特的chatGPT提示&#xff0c;可以帮助您更好地与Chat GPT进行交流&#xff0c;以获得更清晰的信息、额外的信息和见解。 澄清假设和限制 用5种提…...

W5500-EVB-PICO主动PING主机IP检测连通性(十)

前言 上一章我们用W5500_EVB_PICO 开发板做UDP组播数据回环测试&#xff0c;那么本章我们进行W5500_EVB_PICO Ping的测试。 什么是PING&#xff1f; Ping &#xff08;Packet Internet Groper&#xff09;是一种因特网包探索器&#xff0c;用于测试网络连接量的程序 。Ping是…...

解释基本的3D理论

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 坐标系 3D 本质上是关于 3D 空间中形状的表示&#xff0c;并使用坐标系来计算它们的位置。 WebGL 使用右侧坐标系 — 轴指向右侧&#xff0c;轴指向上方&#xff0c;轴指向屏幕外&#xff0c;如上图所示。xyz 对象 …...

C# 练习题

26. Enum(枚举) /*枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说&#xff0c;枚举包含自己的值&#xff0c;且不能继承或传递继承。 */using System;public class EnumTest {enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };static…...

解决Linux报错:Swap file “xxxxxx.swp“ already exists

出现问题 Swap file “.models_conf.yaml.swp” already exists! 在 Linux 下 vim 编辑过程中&#xff0c;由于某种原因异常退出正在编辑的文件&#xff0c;再次编辑该文件时&#xff0c;会出现如下提示&#xff1a; 一个文件出现了带有.swp的副本文件的时候&#xff0c;会出现…...

基于飞桨图学习框架的空间异配性感知图神经网络

本期文章将为大家分享飞桨社区开发者肖淙曦、周景博发表于数据挖掘顶会KDD2023的论文《Spatial Heterophily Aware Graph Neural Networks》。 肖淙曦 肖淙曦&#xff0c;百度研究院商业智能实验室研究实习生&#xff0c;中国科学技术大学在读博士生&#xff0c;主要从事时空…...

Springboot整合JWT

1. 应用场景 前后端分离项目保持登录状态。 问题&#xff1a;ajax请求如何跨域&#xff0c;将无法携带jsessionid&#xff0c;这样会导致服务器端的session不可用。如何解决&#xff1f; 后端&#xff1a; 登录接口在验证过用户密码后&#xff0c;将用户的身份信息转换成…...

如何使用Python和正则表达式处理XML表单数据

在日常的Web开发中&#xff0c;处理表单数据是一个常见的任务。而XML是一种常用的数据格式&#xff0c;用于在不同的系统之间传递和存储数据。本文通过阐述一个技术问题并给出解答的方式&#xff0c;介绍如何使用Python和正则表达式处理XML表单数据。我们将探讨整体设计、编写思…...

LA@方阵相似@相似矩阵的性质

文章目录 相似矩阵引言相似矩阵定义相似变换相似变换矩阵相似矩阵的矩阵多项式和特征值相同推论:与对角阵相似的矩阵性质定理 相似矩阵性质相似矩阵的乘方性质相似矩阵和矩阵多项式相似对角阵 对角阵多项式的展开小结 相似矩阵 引言 对角阵是矩阵中最简单的一类矩阵 对角阵相…...

ZLMediaKit 各种推拉流

1 用ffmpeg 推音视频流 ./ffmpeg -f dshow -i video"HP Wide Vision HD Camera" -f dshow -i audio"麦克风阵列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720…...

行业追踪,2023-08-29

自动复盘 2023-08-29 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…...

【简单】228. 汇总区间

原题链接&#xff1a;https://leetcode.cn/problems/summary-ranges/description/ 228. 汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&…...

Mysql高级语句

高级语句 1.按关键字排序 SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC ASC 是按照升序进行排序的&#xff0c;是默认的排序方式&#xff0c;即 ASC 可以省略。 SELECT 语句中如果没有指定具体的排序方式&#xff0c;则默认按 ASC…...

Python中 re.compile 函数的使用

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 以下介绍在python的re模块中怎样应用正则表达式 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...