自动驾驶仿真蓝皮书2019版_自动驾驶仿真测试的方法及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章自动驾驶仿真测试的方法及应用
2.1自动驾驶仿真技术方法
自动驾驶仿真技术,是计算机仿真技术在汽车领域的应用,它比传统ADAS 仿真系统研发更为复杂,对系统在解耦和架构上的要求非常高。
类似其它通用仿真平台,它必须尽可能的真实,而对仿真系统进行分析和研究的一个基础性和关键性的问题就是将系统模型化,通过数学建模的方式将真实世界进行数字化还原和泛化,建立正确、可靠、有效的仿真模型是保证仿真结果具有高可信度的关键和前 。
对于自动驾驶仿真系统,需要对哪些模块数学建模以及如何精准建模,一直是近几年研究的热点。
需求来源于自动驾驶的工作原理本身,所以我们先简单回顾下自动驾驶汽车控制架构,目前行业内普遍认为,自动驾驶汽车是通过搭载先进的车载传感器、控制器和数据处理器、执行机构等装置,借助车联网、5G和V2X等现代移动通信与网络技术实现交通参与物彼此间信息的互换与共享,从而具备在复杂行驶环境下的传感感知、决策规划、控制执行等功能。
驾驶系统基于环境感知技术对车辆周围环境进行感知,并根据感知所获得的信息,通过车载中心电脑自主地控制车辆的转向和速度,使车辆能够安全可靠地行驶,并达到预定目的地。
图2-1自动驾驶汽车控制架构
自动驾驶的关键技术是环境感知技术和车辆控制技术,如图2-1所示。
其中环境感知技术是无人驾驶汽车行驶的基础,车辆控制技术是无人驾驶汽车行驶的核心,包括决策规划和控制执行两个环节,这两项技术相辅相成共同构成自动驾驶汽车的关键技术。
自动驾驶的整个流程归结起来有三个部分,首先,是通过雷达、激光雷达、摄像头、车载网联系统等对外界的环境进行感知识别;然后,在融合多方面感知信息的基础上,通过智能算法学习外界场景信息,预测场景中交通参与者的轨迹,规划车辆运行轨迹,实现车辆拟人化控制融入交通流中;第三,跟踪决策规划的轨迹目标,控制车辆的油门、刹车和转向等驾驶动作,调节车辆行驶速度、位置和方向等状态,以保证汽车的安全性、操纵性和稳定性。
无论是环境感知技术,还是车辆控制技术,自动驾驶都需要大量的算法支持,而算法研发本来就是个不断迭代的过程,在算法不成熟的条件下,为了配合自动驾驶汽车的功能和性能开发,我们必须遵循从纯模型的仿真,到半实物的仿真,到封闭场地和道路测试,并最终走向开放场地和道路测试这一开发流程。
这一流程已经越来越被业内人士所认可。
密歇根州立大学的自动驾驶专家彭晖教授曾说过,任何成功的自动驾驶系统都是99%以上的模拟,加上一些精心设计的结构化测试,再加上一些路测。
Waymo也很早就创建了Carcraft,据报道,仅仅在一天内,Waymo就可能在路况特别复杂的地方模拟成千上万次驾驶。
现在,Waymo汽车每天在虚拟世界中行驶的里程数超过1287万公里。
在2016年,他们的虚拟总里程数达到40亿公
里,而在真实公路上行驶的谷歌无人驾驶汽车只行驶了483万公里。
仿真技术的基本原理是在仿真场景内,将真实控制器变成算法,结合传感器仿真等技术,完成对算法的测试和验证。
NVIDIA在自动驾驶相关论文中较为详细的解释了一种基于端到端深度学习原理的仿真测试,其主要过程如下:
1.架构:设计深度卷积神经网络(CNN),包括标准化层,卷积层,全连接层,输入为道路影像图片,输出为方向盘控制角度。
2.训练:仿真器根据之前准备好的由前置摄像头拍摄的道路影像,每一帧图片对应的人类司机操控方向盘的旋转角度作为真实参考值,用于校正CNN的输出角度,利用这些数据对CNN进行训练,使输出角度和真实角度的平均平方误差到达最小。
3.数据处理:对于每一帧图片,随机移动、翻转、扭曲、遮挡、改变亮度等,并相应改变方向盘的真实角度,用于模拟汽车的不同位置和环境,以期达到正态分布的仿真情境。
4.测试:训练好的CNN可以实时通过图像输出方向盘角度,可以直观的看出汽车在仿真器道路上的行驶状态。
一个完整的自动驾驶仿真平台,需要包括静态场景还原、动态案例仿真、传感器仿真、车辆动力学仿真、并行加速计算等功能,并能够较为容易的接入自动驾
驶感知和决策控制系统,如图2-2所示。
只有算法与仿真平台紧密结合,才能形成一个闭环,达到持续迭代和优化的状态。
图2-2自动驾驶仿真系统模块
拟真环境与动态案例仿真,这个构成了复杂多变的交通场景仿真。
拟真环境
的构建有很多方案,我们可以采集实际环境信息及已有的高精度地图构建静态场景,通过采集激光点云数据,建立高精度地图,构建环境模型,并通过自动化工具链完成厘米级道路还原。
静态场景数据编辑和自动生成技术,可基于实体场景完成真实道路自动化还原。
也可以对道路周围树木及信号灯等标识根据不同拓扑结构进行自动的排布组合,生成更多的衍生虚拟场景。
另一种方案是人为创建所需的环境,可以只包括那些简单的典型道路和场景,也可以把复杂的立交桥,隧道,各种障碍物,车道线和交通标志包括进来,用于不同的仿真测试和训练目的。
动态场景仿真也有很多数据源,我们可以用实际路上采集的海量真实数据,经过算法抽取,结合已有的高精地图,做动态场景重建;也可以对多元类型数据进行整合与加工,通过算法构建逼近真实的智能体行为模型,可实现差异化动态场景的快速搭建。
除此之外,随机交通流的生成可模拟复杂的交通环境,通过设置交通车辆,行人,非机动车的密度,根据统计学的比例自动生成,大大 升了整个场景搭建的速度。
图2-3展示了通过虚拟场景结合车流与行人智能体,构建出的环岛交通场景。
图2-3交通场景仿真
目前,不同国家对交通事故数据都有一定的统计,比如美国的NHTSA,德国的GIDAS,中国的CIDAS等,尽管存储格式不同,但基本都包括事故还原的关键数据:事故概况,事故发生的时间地点,碰撞类型,事故车辆编号及类型,参与事故的其他元素的编号及类型等,以及车辆与环境概况,事故车的各项车辆参数及用途,现场道路及道路设施情况,环境信息,车辆遗留印迹,车速评估结果或实验结果。
我们可以利用算法自动地将这些数据转换成测试场景模型,结合其它的仿真模块和算法,构建完整的系统仿真方案。
这对测试工况的种类,数量和覆盖度都是很好的 升。
交通场景仿真的参数化和泛化技术,决定了自动驾驶仿真测试历程和工况场景几乎是无限的,不管是正常工况还是危险工况,都是可以进行重复测试和验证,
这样更容易发现和定位问题。
开放仿真接口,通过代码来控制交通场景,对于通过机器学习和强化学习来做算法训练也是非常有必要的。
对于自动驾驶算法验证,尤其是感知算法,天气和气候仿真也很重要,这对传感器的有效工作事关重大。
我们可以在仿真环境里,设置不同的天气,对天气参数进行调节,比如太阳高度角,雾的浓度,雨滴的大小等,模拟出极端天气,训练无人车应对这些情况,然后将训练好的数据模型运用于真实驾驶过程中。
如图2-4所示,展示了仿真环境里太阳逆光的效果的模拟。
图2-4天气仿真
传感器仿真,即环境感知传感器的建模能力需要对传感器物理原理的大量先验知识和经验。
我们先以Waymo为例,了解下车载传感器都包括哪些,以及它们的功能。
12
图2-5Waymo车载传感器
如图2-5所示,为满足自动驾驶的复杂需求,Waymo开发传感器矩阵,可实
现360度全景探查及监控,不论白天或黑夜,且视野面积可达3个足球场那么大。
这类多层级传感器套件可以无缝协同工作,绘制出清晰的3D全景图像,显示行人、自行车、来往车辆、交通指示灯、建筑物和其它道路特征等动态及静态目标。
Lidar(激光雷达)系统,使用激光进行检测和测距,可全天候工作,每秒可发射数百万个360°全景激光脉冲,测量反射到表面并返回车辆所需的时间。
Waymo的系统包括内部开发的三种不同类型的激光雷达:1.短程激光雷达,可使车辆持续不断地获得车辆周边环境;2.高分辨率的中程激光雷达;3.新一代功能强大的长距离激光雷达,视线面积可达三个足球场。
视觉(摄像头)系统,Waymo的视觉系统由多套高分辨率摄像头组成,以便在长距离、日光和低亮度等多种情境下完成协作。
同时具有360°全景视野,相较之下,但人类的视野却只有120°。
由于Waymo视觉系统分辨率高,可探查不同的颜色,因而能帮助系统识别交通指示灯、施工区、校车和应急车辆的闪光灯等。
雷达系统,雷达利用毫米波来感知物体及其运动,这类波长可以穿透雨滴等目
标物,从而使得雷达在雨、雾、雪等天气中都发挥效果。
Waymo的雷达系统具有连续的360°视野,可追踪前后方和两侧过路车辆的行驶速度。
辅助传感器(SupplementalSensors),Waymo还 供了部分辅助传感器,包括:音频检测系统,该系统可以听到数百英尺远的警车和急救车辆所发出的警报声。
从仿真角度来讲,不管是哪种传感器,理论上都可以从三个不同的层级仿真,第一个是对物理信号进行仿真,第二个是对原始信号进行仿真,第三个是对传感器目标进行仿真。
物理信号仿真,就是直接仿真传感器接收到的信号,如摄像头:直接仿真摄像头检测到的光学信号;雷达:直接仿真声波和电磁波信号。
原始信号仿真,是把传感器探测的单元拆掉,因为控制电控嵌入式系统中有专门的数字处理芯片,可以直接仿真数字处理芯片的输入单元。
最后一层传感器目标仿真。
做传感器感知和决策如果是分为两个不同层级的芯片来做,那么可以将传感器检测的理想目标直接仿真到决策层算法输入端。
这种目标级输入信号一般是CAN总线输入信号或者其他通讯协议格式输入信号。
比如,差分GPS和IMU可以通过串口通讯来仿真。
一般来说,通过软件仿真的方式达到目标级仿真, 供真值是比较容易做到的,而原始信号,尤其是物理信号的仿真,因为需要使用大量的仿真设备而相对比较复杂
车辆动力学仿真。
传统的商业仿真软件在这个领域已经非常成熟,一般将车辆模型参数化,包括:车体模型参数化,轮胎模型参数化,制动系统模型参数化,转向系统模型参数化,动力系统模型参数化,传动系统模型参数化,空气动力学模型参数化,硬件IO接口模型参数化,根据实际测试车辆的动力学配置合适参数。
使用这些复杂车辆参数,可以保证车辆的仿真精度更高,使被控对象更接近于真实的对象。
同时它还有一个较好的作用是在制作自动驾驶系统开发时可能涉及到一些转向、制动、线控系统开发,这种系统也需要被控对象模型。
有了这些被控对象模型后,我们就可以把真实的线控制动、线控转向系统和自动驾驶系统集成到大系统中共同做仿真测试,这样测试的目的和意义主要是为了独立验证整个线控系统,同时还可以验证自动驾驶系统与线控系统的交互。
在有了丰富的交通场景库,准确的传感器仿真模型和车辆动力学仿真模型后,如何通过仿真平台加速自动驾驶算法测试和验证的迭代周期,这一问题可以通过纯软件方式的并行计算架构实现。
并行计算或称平行计算是相对于串行计算来说的,它是一种一次可执行多个指令的算法,目的是 高计算速度,以及通过扩大
问题求解规模,以解决大型而复杂的计算问题。
所谓并行计算可分为时间上的并行和空间上的并行。
时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
并行计算(ParallelComputing)是指同时使用多
种计算资源解决计算问题的过程,是 高计算机系统计算速度和处理能力的一种有效手段。
它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。
并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以 种方式互连的若干台的独立计算机构成的集群。
通过并行计算集群完成数据的处理,再将处理的结果返回给用户。
目前,有很多开源的并行计算模型和框架,而其中最有名的是Google 出的MapReduce编程模型,它是一个能处理和生成超大数据集的算法
模型,该架构能够在大量普通配置的计算机上实现并行化处理,基于这个模型又衍生出很多优化模型,这些如果能应用到自动驾驶仿真平台,对传感器分布式仿真和自动驾驶算法的加速仿真大有好处。
2.2自动驾驶仿真测试应用
将自动驾驶仿真技术落地应用,需结合汽车行业普遍采用的基于计算机模型的控制器开发“V”模式,如图2-6所示,它的真实含义是指RAD(RapidApplication Development,快速应用开发),目的是为了改善早期软件开发使用的瀑布模型中,错误直到开发后期的测试阶段才能发现的弊端,V-model将软件生命周期中的每一个开发活动,都对应一个测试活动,并且两者同时进行。
V-model是从道路车辆功能安全国际标准ISO26262中归纳出来的,ISO26262站在系统和全生命周期的高度,统筹电子电气系统的功能安全,从 出产品概念阶段开始,覆盖系统开发、硬件开发、软件开发、生产运行和售后支持,以系统的方法,指导产品全生命周期的安全事项的实施。
传统的ISO26262标准规定仿真的作用在验证系统行为中是至关重要的,并建议在各级进行仿真。
模拟的优点是测试是可重复的,并且它支持超过性能/耐久性极限和危险情况的测试能力。
ISO 26262 出了用于进行软件安全需求验证的环内模型(MIL)、环内软件(SIL)和环内硬件(HIL)仿真。
但由于缺乏仿真和测试资源,标准仿真技术可能不足以满足所需的测试量。
图2-6V-cycle
随着自动驾驶的兴起,自动驾驶的功能安全性、功能可靠性验证以及如何严苛的符合国际标准ISO26262的要求,成为系统从研发到产业化的主要阻碍,相对于社会和客户对于自动驾驶功能安全性及事故率的极高要求,摆在各大车企面前的是上亿公里的道路测试需求。
如何加速和简化这一测试验证流程成为各大车企产业化自动驾驶技术的主要挑战。
在这些前 和市场需要下,不管是传统的仿真软件还是
新兴的仿真平台,都逐渐推出了XiL(XintheLoop,X代表任何参与到开发过程的测试类型)的概念,也就是上文我们曾经 及的自动驾驶测试阶段,从纯模型的仿真,到半实物的仿真,到整车在环,到最终路测。
该技术通过对自动驾驶硬件模型化、自动驾驶环境数字化、自动驾驶场景参数化等手段,使自动驾驶系统的虚拟测试验证成为可能。
结合现代强大的现实虚拟还原技术,绝大多数的自动驾驶系统测试可以被搬到计算机虚拟世界中进行,并加速进行,从而节省了海量验证测试的时间和测试构建成本。
在自动驾驶算法迭代初期,对于原理和软件系统验证的SiL(Softwareinthe Loop)据较为重要的地位。
自动驾驶作为人工智能在汽车行业的应用领域,需要大量的数据集来训练机器学习算法,主要是感知识别算法。
目前,全球主流的自
动驾驶测试数据集包括Cityscapes、Imagenet(ILSVRC)、COCO、PASCALVOC、
CIFAR、MNIST、KITTI、LFW等。
比如:
1.Cityscapes是由奔驰于2015年推出的, 供无人驾驶环境下的图像分割数据集。
用于评估视觉算法在城区场景语义理解方面的性能。
Cityscapes包含50个城市不同场景、不同背景、不同季节的街景, 供5000张精细标注的图像、20000张粗略标注的图像、30类标注物体。
用PASCALVOC标准的intersection-over-union
(IoU)得分来对算法性能进行评价。
Cityscapes是目前公认的自动驾驶领域内最具权威性和专业性的图像语义分割评测集之一,其关注真实场景下的城区道路环境理解,任务难度更高且更贴近于自动驾驶等热门需求。
2.KITTI是由德国卡尔斯鲁厄理工学院和丰田芝加哥技术研究院于2012年联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。
KITTI用于评测3D目标(机动车、非机动车、行人等)检测、3D目标跟踪、道路分割等计算机视觉技术在车载环境下的性能。
KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中多达15辆车和30个行人,还有各种程度的遮挡。
3.ILSVRC也就是通常所说的ImageNet数据集,是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。
它是目前深度学习图像领域应用较多的一个数据集,关于图像分类、定位、检测等研究工作大多基于此数据集展开。
ImageNet数据集有1400多万幅图片,涵盖2万多个类别,其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。
这些数据集可以用来训练算法,关键因素是丰富的场景元素和准确的数据标注。
数据标注的对象通常有图像、语音、文本、视频、雷达等。
图像类主要针对视觉识别类公司,所要标注的图像内容包括人像、建筑物、植物、道路、交通标志、车辆等,每项内容下面,又会根据不同的特征进行不同标签的标注。
传统数据标注方式基本靠的是众包,需要耗费大量的时间和精力,借助自动驾驶仿真平台高质量的交通场景虚拟还原技术,复现复杂交通场景、真实交通流、自然天气、各种交通参与者,通过图形图像算法,可实时自动生成数以万计带标注的图像,用于训练感知算法,也可以作为真值(GroundTruth),直接传感器目标仿真,输入至决策规划算法,对算法进行开发与验证。
如图2-7所示,仿真环境严格按照Cityscapes语义分割标准自动生成的语义分割图。
图2-7仿真环境分割图
仿真平台除了借助传感器仿真、车辆动力学仿真,通过纯软件的方式接入自动驾驶感知和决策控制系统形成闭环测试之外,集成部分硬件系统的验证测试也是系统开发与验证不可或缺的一部分。
通过仿真环境,结合部分硬件系统的计算结果进行测试,可以使软件和硬件的兼容性和功能完整性得以验证,用较低的成本测量验证子系统模块功能安全性,局部子系统的全方位测试验证,可以方便有针对性的达到系统辨识和错误追踪定位的目的。
如图2-8所示,在自动驾驶仿真
系统解耦架构的基础上,作为自动驾驶系统的感知部分,包括摄像头、激光雷
图2-8自动驾驶仿真系统HIL
达、毫米波雷达、超声波雷达、GPS/IMU、V2X等,该部分的性能决定了自动驾驶车辆能否适应复杂多变的交通环境。
针对不同的传感器,HIL(硬件在环)会根据不同的传感器和环境因素来部署。
前面我们 到传感器仿真中的物理信号仿真和原始信号仿真,都与HIL相关。
现阶段,摄像头的硬件在环解决方案比较清晰,物理信号仿真基本通过暗箱实现,在暗箱中,由工控机生成暗箱中显示器虚拟交通场景画面,摄像头拍摄虚拟场景画面,实时采集传感数据,输出至传感数据处理单元供图像处理器进行数据处理,并将处理结果传输给传感器融合控制单元,最后通过决策规划和控制执行算法达到闭环控制。
而原始信号仿真采取的是视频注入的方式,同样由工控机生成虚拟交通场景,根据摄像头控制器的数据接口,比如HDMI,将场景信息以图像数据流的方式实时注入控制器内,把图像数据流转换为传感数据,输出至传感
数据处理单元供图像处理器进行数据处理,并将处理结果传输给传感融合控制单元,通过用户开发的控制算法识别图像,对车辆进行算法控制。
其他传感器的硬
件在环有些也有现成的方案,有些还在研究中。
仿真平台要支持硬件在环,需要在现有纯软件仿真接入的架构上,增加硬件层接入。
硬件控制层与仿真层相连接构成闭环测试系统,用于全面测试和验证硬件和算法。
在自动驾驶仿真产业链上,仿真平台为算法公司 供了算法快速迭代的纯软件接口方案,也 供软硬件结合的系统解决方案。
针对检测机构,主要从安全层面考虑,希冀制定出全面、系统、公平的检测标准,仿真平台 供了丰富而有系统的场景测试工况,可以有针对性的接入不同自动驾驶算法,根据算法的测试情况进行客观评估,从而汇总报告。
而对于仿真方案要求最为严格的主车厂,涉及部件,系统与整车各级别的算法训练及在环测试,仿真平台的并行计算架构和硬件接入层,能够快速有效地评估算法的性能,同时也能够极大的 升测试安全性和算法安全性。
通过不断的虚拟仿真测试,让自动驾驶汽车在路测时游刃有余,处惊不乱。
2.3自动驾驶仿真测试的验证与精度
自动驾驶仿真测试平台包括虚拟场景、动态案例仿真、传感器仿真、车辆动
力学仿真等独立模块,如图2-9所示, 述了仿真平台的典型软件架构,所以对自动驾驶仿真测试的验证与精度评估主要就是对存在于此架构内各个模块的评估和对整体框架的再评估。
图2-9仿真系统典型架构
仿真是基于模型的试验活动,因此仿真实验和结果不可能完全准确地代表真实系统的性能,存在一个可信性问题,没有可信性的仿真系统是没有生命力的。
自动驾驶仿真测试平台作为功能多样且复杂的仿真系统,面临同样的问题。
在数学建模领域,仿真系统的可信性可以通过校核与验证加以测量,通过确认来正式地加以认证,可以为 一特定的应用目的服务,这个过程就是仿真系统的校核,验证与确认,即VV&A(Verification,ValidationandAccreditation)。
仿真系统校核(Verification):确定仿真系统准确地代表了开发者的概念 述和技术要求的过程;
仿真系统验证(Validation):从仿真系统应用目的出发,确定其代表真实系统正确程度的过程;
仿真系统确认(Accreditation):是官方正式地接受一个仿真系统为专门地应用服务地过程。