自动驾驶仿真测试介绍

news/2024/4/25 3:36:55/文章来源:https://blog.csdn.net/TICPSH/article/details/129198864

作者 | 楼泽如 上海控安可信软件创新研究院研发工程师

来源 | 鉴源实验室

01 

引 言

自动驾驶汽车的兴起,正在重新定义汽车行业。随着自动驾驶技术的发展,自动驾驶汽车将会大大提升交通安全、减少事故发生、减少交通拥堵、提高公路容量等等,为人类带来前所未有的便利。然而,由于自动驾驶汽车需要面对复杂的交通环境和意外事件,使得自动驾驶汽车的开发和测试颇具挑战性。

传统的自动驾驶测试方法包括在实际道路上进行封闭场地和公共道路测试,但这些方法都存在很大的安全风险和高成本。因此,自动驾驶仿真测试逐渐成为了自动驾驶汽车开发过程中必不可少的一部分,对于提高自动驾驶汽车的安全性、可靠性、精度和性能等方面都有着重要的意义。仿真测试不仅可以在更加安全、低成本的环境下进行测试,而且可以提供更多的测试数据和测试情况,加速自动驾驶汽车的开发和实际应用。

02 

自动驾驶仿真测试的重要性

自动驾驶仿真测试是一种通过仿真技术来模拟测试自动驾驶汽车的功能和性能的方法,以评估自动驾驶汽车的可靠性、安全性和适应性等,便于优化自动驾驶汽车的功能、性能和行驶体验。

自动驾驶仿真测试凭借其测试场景丰富、计算速度快、测试效率高、资源消耗低、可重复性好、可嵌入汽车开发的各个环节等原因,能够很好地在实际路面行驶之前,对车辆进行全面、安全的测试。这种测试方法可以提高自动驾驶系统的安全性和可靠性,并减少实际测试的风险和成本,加速自动驾驶技术的发展和应用。仿真测试在自动驾驶技术开发中具有以下几个重要性和必要性:

(1)安全性保障:自动驾驶汽车具有高度的复杂性和安全性要求,直接进行实地测试会存在很高的风险。仿真测试可以在虚拟环境中模拟各种复杂的路况和交通情况,对自动驾驶汽车的各项功能进行测试,从而发现潜在的安全隐患,保障自动驾驶汽车的安全性。

(2)成本效益:自动驾驶汽车的研发需要大量的测试,如果全部在实际道路上进行测试,将会耗费大量的时间和金钱。仿真测试可以在虚拟环境中快速、精准地模拟各种场景和情况,有效地降低测试成本,缩短研发周期,提高测试效率。

(3)多样化的测试场景:仿真测试可以模拟各种复杂的路况、天气状况、道路建设和交通情况等,进行多种不同情况下的测试,以确保自动驾驶汽车的安全性和可靠性。

(4)提高测试覆盖率:仿真测试可以模拟大量测试场景,提高测试的覆盖率和深度,从而更好地发现和解决潜在的问题。

(5)系统性的测试:自动驾驶汽车涉及到多个系统的协同作用,仿真测试可以对整个系统进行系统性的测试,确保系统各个部分的配合协调性。

03 

自动驾驶仿真测试的类型

自动驾驶仿真测试作为一种高效、安全、低成本的测试方法,会针对自动驾驶系统的功能和性能、安全性、可靠性等,进行全面、充分的测试,以保证自动驾驶汽车能够达到路面行驶的要求。自动驾驶汽车的功能测试是测试自动驾驶汽车是否能够按照预期执行各种功能,例如遵守交通规则、感知道路标志和障碍物等。Huang等[3]将功能测试分为:

(1)感知层功能测试:感知测试主要用于测试自动驾驶汽车的感知能力,包括车道线和道路标志的检测、障碍物识别和检测、行人检测和识别等。感知测试的目的是检查自动驾驶汽车的感知系统在不同的情况下的准确性和稳定性。

(2)决策层功能测试:决策测试主要用于测试自动驾驶汽车的决策能力,包括行驶路径规划、车辆间的跟车和超车等情况。决策测试的目的是检查自动驾驶汽车的决策系统在不同的情况下的正确性和合理性。

(3)控制层功能测试:控制测试主要用于测试自动驾驶汽车的控制能力,包括加速、制动、转向等控制。控制测试的目的是检查自动驾驶汽车的控制系统在不同情况下的稳定性和精度。

除了功能测试以外,还有一些其他的测试类型也被广泛应用于自动驾驶仿真测试中,比如安全测试、性能测试等。安全测试主要用于测试自动驾驶汽车在紧急情况下的反应能力和安全性。安全测试的目的是检查自动驾驶汽车的安全性,例如急刹车或避让等威胁场景中自动驾驶汽车是否能安全应对。而性能测试主要用于测试自动驾驶汽车的性能表现,例如加速、最高速度、燃油效率等。性能测试的目的是检查自动驾驶汽车的性能表现是否符合设计要求。

需要注意的是,自动驾驶汽车的测试不仅仅是仿真测试,还需要在实际路况下进行测试。实际测试可以验证仿真测试的结果,同时也可以发现一些仿真测试无法模拟的特殊情况。因此,自动驾驶汽车的测试需要结合仿真测试和实际测试,以保证测试结果的准确性和可靠性。

04 

自动驾驶仿真测试的方式

汽车的V字开发流程是一种经典的产品开发流程,它将整个产品开发过程划分为左侧的需求分析、设计、开发等阶段,以及右侧的系统测试、集成测试等阶段,形成一个“V”字形状,因此被称为“V字开发流程”。

图1 汽车的V字开发流程[3]

针对自动驾驶的仿真测试同样也必须满足汽车的 V 字开发流程,具备覆盖 SIL(软件在环)、HIL(硬件在环)、VIL(车辆在环)全流程验证的能力。

(1)软件在环测试(Software-in-the-Loop,SIL)

软件在环测试是在开发的早期,将被测试的软件系统结合到仿真环境中进行测试。在SIL测试中,采用仿真环境来执行软件,而不是将软件实际加载到目标硬件中执行。在SIL测试中,可以对软件的算法和逻辑进行测试和验证,以检查其是否符合规格和设计要求。SIL测试可以在早期发现软件问题,这样可以更快地纠正错误,降低软件开发成本,并加快产品上市时间。

(2)硬件在环测试(Hardware-in-the-Loop,HIL)

硬件在环测试是指将真实的汽车硬件设备与模拟的系统环境相结合,通过模拟各种实际的驾驶场景和条件,对硬件进行测试和验证。在 HIL 测试中,真实的硬件设备(如控制器、传感器、执行器等)被连接到模拟的虚拟系统环境中。整个虚拟的系统环境向硬件设备发送模拟信号,从而模拟出真实的自动驾驶场景。例如,在对ECU进行测试时,ECU会接收到仿真环境发出的各种信号和数据,车速、转速、油门踏板信号、刹车信号等。通过这些信号和数据,ECU可以模拟不同的驾驶场景,例如加速、制动、转弯、变道等。

(3)车辆在环测试(Vehicle-in-the-Loop,VIL)

车辆在环测试是指将实际车辆放置在测试环境中进行测试的方法。在VIL测试中,车辆被连接到仿真系统,仿真系统提供了场景和其他车辆的虚拟信息,通过控制车辆的行为,进行测试和验证。汽车通过实际的控制系统与仿真环境进行交互,例如汽车的传感器(如雷达、摄像头)可以接收来自仿真环境的虚拟信息,汽车的控制系统也可以将车辆的实际状态(如速度、转向、制动)反馈给仿真环境。

05 

小 结

在未来的自动驾驶汽车研发中,自动驾驶仿真测试将继续发挥重要的作用,在保证安全的前提下,大幅降低测试成本,并且覆盖更广泛的测试场景。同时,自动驾驶仿真测试也需要不断发展和改进,加强模拟环境的复杂性,提高数据的准确性和可靠性,提升模拟场景与真实场景的一致性,从而更好地满足自动驾驶汽车的测试需求,促进自动驾驶技术的发展。

参考文献:

[1]中国电动汽车百人会. 中国自动驾驶仿真蓝皮书 [R]. (2020) .

[2]朱冰,张培兴,赵健,陈虹,徐志刚,赵祥模,邓伟文.基于场景的自动驾驶汽车虚拟测试研究进展[J].中国公路学报,2019,32(06):1-19.DOI:10.19721/j.cnki.1001-7372.2019.06.001.

[3]Huang W L, Wang K, Lv Y, et al. Autonomous vehicles testing methods review[C]//2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC). IEEE, 2016: 163-168.

[4]Schöner H P. Simulation in development and testing of autonomous vehicles[C]//18. Internationales Stuttgarter Symposium: Automobil-und Motorentechnik. Springer Fachmedien Wiesbaden, 2018: 1083-1095.

[5]Rosique F, Navarro P J, Fernández C, et al. A systematic review of perception system and simulators for autonomous vehicles research[J]. Sensors, 2019, 19(3): 648.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73744.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习笔记 --- 正则表达式

一、体验正则表达式 package com.javase.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 体验正则表达式,给文本处理带来哪些便利*/ public class Regexp_ {public static void main(String[] args) {//假设,编写了爬虫&…

Linux——UDP协议与相关套接字编程

一.概念在网络通信中,传输层中最常用的通信协议有两个:TCP协议与UDP协议。这两种协议虽然都可以用于网络通信,但是通信方式不同决定了应用场景的不同。与TCP协议相比,UDP协议最具特色的不同点有两个:无连接与面向数据报…

码住!新手容易上手的5个tiktok数据分析网站

当下短视频已经称霸了各大内容平台,越来越多的创作者进入到短视频赛道,为了更好地运营自己的内容平台,数据分析是必不可少的。很多人都入局了tiktok,对于商家或者博主红人来说,这是比较新平台,希望能在这个…

python库streamlit学习笔记

什么是streamlit? Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的机器学习和数据科学Web应用程序。它是一个基于Python的库,专为机器学习工程师设计。数据科学家或机器学习工程师不是网络开发人员,他们对花几周时间学习…

Vue-cli脚手架在做些什么(源码角度分析)

什么是Vue脚手架?在学习初期,我们的项目往往需要借助webpack、vite等打包工具配置Vue的开发环境,但是在真实开发中我们不可能每个项目从头来完成所有的webpack配置,这样显得开发的效率会大大的降低;所有的真实开发中&a…

实现基于国密SM3的密钥派生(KDF)功能

实现基于国密SM3的密钥派生(KDF)前言KDF 标准基于SM3的kdf实现前言 密钥派生函数(KDF):密钥派生函数是指从一个共享的秘密比特串中派生密钥数据,在密钥协商过程中,密钥派生函数作用在密钥交换所…

【一看就会】实现仿京东移动端页面滚动条布局

简单粗暴直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge"> <meta name"viewport" content&q…

中移链结合CA证书实现节点准入控制

01背景介绍BSN开放联盟链&#xff08;BSN Open Permissioned Blockchain&#xff0c; 简称OPB&#xff09;包括多条基于公有链框架和联盟链框架搭建的公用链&#xff0c;开发者可以选择适合应用业务需求的开放联盟链部署和运行智能合约和分布式应用&#xff0c;每条开放联盟链各…

码匠 × OpenAI :快速生成 SQL 语句,提升开发效率!

目录 使用 OpenAI 生成 SQL 码匠连接与集成 OpenAI 总结 关于码匠 在码匠中&#xff0c;编写 SQL 语句&#xff0c;并结合码匠一系列开箱即用的组件实现复杂的业务逻辑&#xff0c;是很常见的应用开发场景。然而&#xff0c;不同的数据库在 SQL 增删改查操作语法、类型字段和…

Java知识复习(二)Java集合

1、List、Set和Map的区别 List&#xff1a;存储的顺序是有序的、可重复的Set&#xff1a;存储的顺序是无序的、不可重复的Map&#xff1a;使用键值对存储&#xff0c;Key和Value都是无序的&#xff0c;其中Key不可重复&#xff0c;而Value可重复 2、ArrayList和LinkedList的区…

JavaEE简单实例——MyBatis的一对一映射的嵌套查询的简单介绍和基础配置

简单介绍&#xff1a; 在前一章我们介绍了关于MyBatis的多表查询的时候的对应关系&#xff0c;其中有三种对应关系&#xff0c;分别是一对一&#xff0c;一对多&#xff0c;多对多的关系。如果忘记了这三种方式的对应形式可以去前面看看&#xff0c;一定要记住这三种映射关系的…

项目重构,从零开始搭建一套新的后台管理系统

背景 应公司发展需求&#xff0c;我决定重构公司的后台管理系统&#xff0c;从提出需求建议到现在的实施&#xff0c;期间花了将近半个月的时间&#xff0c;决定把这些都记录下来。 之前的后台管理系统实在是为了实现功能而实现的&#xff0c;没有考虑到后期的扩展性&#xf…

逆风翻盘拿下感知实习offer,机会总是留给有准备的人

个人背景211本&#xff0c;985硕&#xff0c;本科是计算机科学与技术专业&#xff0c;研究生是自学计算机视觉方向&#xff0c;本科主要做C和python程序设计开发&#xff0c;java安卓开发&#xff0c;研究生主要做目标检测&#xff0c;现在在入门目标跟踪和3d目标检测。无论文&…

并发编程学习篇从0-1合集

一、synchronized 一、原子性、有序性、可见性 1.1 原子性 数据库的事务&#xff1a;ACID A&#xff1a;原子性-事务是一个最小的执行的单位&#xff0c;一次事务的多次操作要么都成功&#xff0c;要么都失败。 并发编程的原子性&#xff1a;一个或多个指令在CPU执行过程中…

用Python获取弹幕的两种方式(一种简单但量少,另一量大管饱)

前言 弹幕可以给观众一种“实时互动”的错觉&#xff0c;虽然不同弹幕的发送时间有所区别&#xff0c;但是其只会在视频中特定的一个时间点出现&#xff0c;因此在相同时刻发送的弹幕基本上也具有相同的主题&#xff0c;在参与评论时就会有与其他观众同时评论的错觉。 在国内…

怎么从零开始学黑客,黑客零基础怎么自学

很多朋友对成为黑客很感兴趣&#xff0c;很大原因是因为看到电影中黑客的情节觉的特别的酷&#xff0c;看到他们动动手指就能进入任何系统&#xff0c;还有很多走上黑客之路的朋友仅仅是因为自己的qq被盗了&#xff0c;或者游戏里的装备被别人偷了&#xff0c;想要自己盗回来&a…

听车企做开发朋友说,面试Framework 必问~

近期听在车企工作的朋友说&#xff0c;今年去他们公司面试的人比往年增长了30%左右&#xff0c;但实际面试达到标准的人屈指可数&#xff0c;大多都是从 Android 开发方向转过来的。 车企招聘要求有哪些&#xff1f; 每个车企因为业务部门的不同&#xff0c;他们的要求也会有…

Linux操作系统基础知识命令参数详解

Linux操作系统 RAID分组 RAID JBOD RAID JBOD的意思是Just a Bunch Of Disks&#xff0c;是将多块硬盘串联起来组成一个大的存储设备&#xff0c;从某种意义上说这种类型不被算作RAID&#xff0c;在维基百科里JBOD同时也被归入非RAID架构。RAID JBOD将所有的磁盘串联成一个单…

保持超低温环境新方法:功耗降至十分之一!

&#xff08;图片来源&#xff1a;网络&#xff09;量子比特是量子计算机的主要构建部分&#xff0c;然而热量会导致量子比特容易出错&#xff0c;因此量子系统通常保存在超低温稀释制冷机内&#xff0c;可以将温度保持在绝对零度&#xff08;−273.15℃&#xff09;以上。但是…

如何使评论具有可操作性?取悦客户的指南

永远不要低估承认的力量。 当品牌与客户互动时&#xff0c;认可会带来更好的关系和更好的沟通。与买家和客户建立更多的个人联系意味着品牌需要证明他们支持他们的产品和客户。评论是利用客户分享他们的故事的那些时刻的绝佳机会。 为什么评论在 SaaS 中至关重要 在 B2B 软件的…