自动驾驶虚拟仿真测试介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自动驾驶虚拟仿真测试介绍

自动驾驶虚拟仿真测试介绍(1):是什么

一、引子

二、自动驾驶汽车的仿真测试的不同手段

三、不同仿真测试手段的选择

一、引子

说到仿真测试大家可能会觉得陌生,不过其原理其实已经被广泛采用。

比如李雷想要开车从北京去上海,但是不知道需要多长时间,于是他做了这样的估算:

北京到上海距离s=1200km,开车时速v=120km/h,那么需要的时间为t=s/v=10h;考虑到不是全程高速、中间可能会休息,假设平均时速v’=80km/h会更合理,于是需要的时间为t=s/v’=15h。

通过这个例子,我们可以体会到两点:

仿真即是通过一组公式模仿真实世界,或者说使用一个数学模型简化替代真实世界;

数学模型的复杂度越高,计算结果与真实世界越相近,但是建模难度越高、计算速度越慢。

二、自动驾驶汽车的仿真测试的不同手段

我们首先考虑真实世界的情况,自动驾驶汽车在开放道路进行测试时,可以用下图来表示:

自动驾驶车辆主要由传感器、控制器和执行器构成(当然这主要是指自动驾驶部分,车身、底盘等传统车辆部分暂且不提),驾驶员驾驶车辆在不同的道路、交通和天气环境下接受测试。当然高级别的自动驾驶不需要驾驶员,所以图中用虚线表示。

当在仿真环境中模拟其中的不同部分时,可以得到仿真测试的不同手段。列举如下表所示:

注:后面会有一篇详细介绍不同仿真测试手段的区别,敬请关注。

三、不同仿真测试手段的选择

经常会有人遇到要不要做HIL、要不要买个视频暗箱、要不要买个驾驶模拟器等等疑问,这时如果能先自问自答这样一个问题应该会有所帮助:我们准备测试的被测对象是什么?

如果被测对象仅仅是开发阶段的算法,那只使用MIL/SIL就可以;如果被测对象是要在实车使用的控制器,那可能需要一套HIL设备提前进行测试、提前发现问题。如果不采用视频暗箱、雷达回波模拟器等设备就不能实现测试闭环,那此类传感器信号仿真设备也是需要的。

诸如此类,如果能时刻谨记被测对象是什么和测试目的是什么,应该对选择仿真测试手段有很大帮助。

自动驾驶虚拟仿真测试介绍(2):为什么

一、仿真测试是汽车工程师的自然需求

二、仿真测试是汽车开发流程的必然要求

三、仿真测试是自动驾驶开发的必经之路

“本系列尝试从是什么、为什么、测什么、用什么测、怎么测和谁来测等方面来介绍什么是自动驾驶虚拟仿真测试。这是第二篇,介绍为什么要进行仿真测试。”

一、仿真测试是汽车工程师的自然需求

仿真测试其实在结构开发领域早已广泛应用。如果说验证一个螺栓强度还可以翻手册、使用公式计算,那么对于一些复杂的零件的强度校核和结构优化,就要借助仿真手段,这就是CAE(Computer Aided Engineering),比如下图中对零件的应力分布计算。CAE手段的使用有效减少了样件的数量,缩短了试验时间,节省了开发成本。

这些好处主要是零部件结构开发部门所享受,算法和控制器的开发部门自然很是羡慕。

我们可不可以在算法开发阶段就进行测试发现一些低级错误?

可不可以在办公室就可以对算法和控制器进行测试,而不是每个版本的新程序都要到实车上测试、在寒冬酷暑的室外调试很久?

可不可以在计算机上对真实世界中危险或不易实现的场景进行测试?

可不可以在解决bug或算法升版后,对之前的测试场景方便的进行重复测试?

欣慰的是,这些需求仿真测试都可以满足。

二、仿真测试是汽车开发流程的必然要求

V模型是广泛在软件开发和测试中使用流程,如下图所示:

V模型要求在开发团队进行不同阶段的开发同时,测试团队编制对应的测试用例,并在开发阶段完成后立即进行测试。这就要求在集成测试、系统测试等暂无完整产品样件的情况下,就开始进行测试。

另外,有数据表明,在汽车电控系统的开发过程中,越早发现问题则修正问题的成本越低。在开发的早期,就建立起测试验证的手段,快速高效的发现和解决开发过程中的问题,可以有效减低开发成本、提高开发效率。

而在开发的早期进行测试,在暂无完整产品样件的情况下进行测试,就需要仿真手段提供测试环境。

三、仿真测试是自动驾驶开发的必经之路

自动驾驶汽车是一个新生事物,消费者对其安全性还不够信任。那么,自动驾驶汽车的安全性达到什么水平才能被消费者接受呢?我想其安全水平不低于人类驾驶员,应该是一个最起码的要求。

根据RAND公司一份名为《Driving to Safety》的报告,要证明自动驾驶汽车相比于人类驾驶员能够减少20%交通事故死亡率,需要进行约80亿公里的公共道路测试,假设由100辆车组成的车队每年365天每天24小时不间歇的以40km/h的平均速度进行测试,大概需要225年。

这个测试时间显然是不现实的。就要求在实车测试之外,寻求其他的方法,大幅缩短测试时间。

在虚拟环境下进行大规模的仿真测试,成为了必须选择的方法。比如waymo 公司的CarCraft仿真平台中,有25000台仿真车辆同时进行测试,每天总计可进行1200万公里的测试。按照这个速度,完成上面提到的80亿公里的测试,仅需要2年。

自动驾驶虚拟仿真测试介绍(3):测什么

一、自动驾驶算法构成

二、自动驾驶仿真测试的两个阶段

“本系列尝试从是什么、为什么、测什么、用什么测、怎么测和谁来测等方面来介绍什么是自动驾驶虚拟仿真测试。这是第三篇:测什么,介绍仿真测试的被测对象是什么。”

一、自动驾驶算法构成

一个完整的自动驾驶算法,可以粗略的用下图表示。

传感器的感知模块从真实环境中获取信息,并将其转换为原始信号发送给识别模块;识别模块从原始信号中识别出目标,并发出目标列表。比如摄像头的原始信号为图片数据,激光雷达的原始信号为点云数据,识别模块从中识别出前方目标的类型、位置和速度等信息。

融合模块对来自不同传感器的目标列表进行处理后,发出统一的目标列表给决策模块。决策模块分析目标列表,对目标未来的状态进行预测,并规划自车的行驶路径。控制模块根据目标行驶路径,发出加速、制动和转向等控制指令,对车辆状态进行控制。

根据上面的分析,大体上可以将一个完整的自动驾驶算法分为两个部分:(1)感知识别模块,其输入是外部环境,输出是目标列表;

(2)决策控制模块,其输入是目标列表,输出是对车辆的控制指令。二、自动驾驶仿真测试的两个阶段

远期的目标,自然是对完整的自己驾驶算法进行仿真测试,不过考虑到近期的实际情况,大致要分为两个发展阶段(当然这两个阶段可能并没有明显的时间界限)。

(1)阶段一:

相关文档
最新文档