自动驾驶仿真测试入门:CARLA实战

978-7-115-68475-2
作者: 李慢慢
译者:
编辑: 张涛
分类: 其他

图书目录:

详情

内 容 提 要   本书专注于自动驾驶仿真测试,以 CARLA 为基础,探讨什么是仿真测试、为何需要仿真测试以及如何进行仿真测试;旨在通过系统的讲解,帮助读者全面掌握自动驾驶仿真测试的基本流程与方法。本书深入浅出地介绍了自动驾驶仿真领域的核心概念,使读者能够理解并熟悉仿真测试工作流程的各个关键环节,从而构建坚实的技术基础。此外,本书特别强调实践操作,提供了丰富的代码实例,让读者可以利用Python基于CARLA编程完成各种仿真任务,并模拟实现多种自动驾驶功能。   本书不仅可以作为希望进入自动驾驶仿真领域的新手快速入门的参考书,还可以作为CARLA用户的参考资料。

图书摘要

版权信息

书名:自动驾驶仿真测试入门:CARLA实战

ISBN:978-7-115-68475-2

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

版  权

编  著 李慢慢

责任编辑 张 涛

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

本书专注于自动驾驶仿真测试,以 CARLA 为基础,探讨什么是仿真测试、为何需要仿真测试以及如何进行仿真测试;旨在通过系统的讲解,帮助读者全面掌握自动驾驶仿真测试的基本流程与方法。本书深入浅出地介绍了自动驾驶仿真领域的核心概念,使读者能够理解并熟悉仿真测试工作流程的各个关键环节,从而构建坚实的技术基础。此外,本书特别强调实践操作,提供了丰富的代码实例,让读者可以利用Python基于CARLA编程完成各种仿真任务,并模拟实现多种自动驾驶功能。

本书不仅可以作为希望进入自动驾驶仿真领域的新手快速入门的参考书,还可以作为CARLA用户的参考资料。

推 荐 序 一

近年来,自动驾驶技术作为人工智能与交通领域深度融合的代表,正在迅速推动交通领域的变革。而在这个蓬勃发展的领域,仿真测试已经成为不可或缺的一环。它以低成本、高效率和高安全性,为自动驾驶技术的研发与落地提供了强有力的支持。在众多仿真模拟器中,CARLA凭借其开源、高灵活性和广泛的社区支持,迅速成为学术界的首选,也逐渐被工业界所接受。

本书以“原理讲解+代码实现+实战案例”的方式,从零开始为读者介绍利用CARLA进行自动驾驶仿真测试的基础知识与操作技能,包括从环境搭建到高级功能实现的全面内容。这不仅为初学者扫清了学习道路上的障碍,而且为从业者提供了提升工作效率和加深研究深度的方法。

作为安徽深信科创信息技术有限公司(以下简称“深信科创”)的创始人和中国科学技术大学的教授,我深知仿真测试在自动驾驶技术研发中所扮演的核心角色。深信科创作为CARLA的重要推动者,始终致力于通过模拟技术提升自动驾驶技术的研发效率。看到这本书问世,我倍感欣慰,因为它不仅是对自动驾驶仿真测试的深度总结,更是一部推动中国自动驾驶产业发展的用心之作。

作者以严谨的态度、丰富的经验和共享的精神,为广大读者提供了宝贵的学习资源。这本书必将为更多对自动驾驶充满热情的人提供指引,促进自动驾驶仿真技术在国内的广泛应用,助力自动驾驶技术的发展与突破。

愿这本书能成为读者踏入自动驾驶仿真领域的一座桥梁,也成为推动自动驾驶产业前行的一块基石。

杨子江

中国科学技术大学教授

深信科创创始人

于合肥

推 荐 序 二

自动驾驶仿真测试对自动驾驶技术的发展至关重要。首先,实车测试成本高、风险大,而仿真测试能在虚拟环境中模拟各种复杂场景,帮助研发人员提前发现并解决问题,降低开发成本和风险;其次,仿真测试可快速重复测试,提高测试效率,促进技术加速迭代。CARLA 是目前主流的仿真模拟器,具有诸多优势,它功能强大,支持多种传感器和车辆模型,能精准模拟真实驾驶环境;同时,CARLA 具有良好的开放性和可扩展性,用户可以根据需求对其进行二次开发。此外,活跃的CARLA 开源社区为用户提供了丰富的资源和支持,促进了自动驾驶技术的不断进步和创新。

作为国内自动驾驶技术领域的头部媒体,我们一直在关注自动驾驶仿真领域的技术发展。这本书涵盖了自动驾驶仿真测试的各个方面,具有较强的专业性和较高的价值。它不仅是一本介绍自动驾驶仿真测试的教材,更是自动驾驶仿真领域的技术指南,对于想深入了解自动驾驶仿真测试技术的读者来说,具有重要的参考价值。

本书对传感器仿真、场景控制、闭环控制、过程控制、CARLA与OpenX联合开发、CARLA与ROS交互、CARLA 与 Autoware联合仿真等多个模块展开详解。书中的内容紧密结合实际应用,具有很强的实用性和可操作性。全书不仅介绍CARLA,还介绍如何使用OpenX系列标准格式进行场景描述和数据交换,旨在解决不同仿真软件之间的互操作性问题,对正在进行仿真项目的读者有较大的参考意义,可以帮助读者快速掌握使用CARLA进行自动驾驶仿真测试的实际操作技能。

希望这本书可以让所有想要入门自动驾驶仿真的读者不再走弯路,给正在从事自动驾驶仿真工作的读者提供更多的思路与方法。

自动驾驶之心团队

推 荐 序 三

政策引导、消费升级、技术进步等多因素的共振,使发展自动驾驶汽车成为许多国家的共识。全球自动驾驶产业发展呈现出核心技术加速突破、基础支撑加快完善、产业生态渐趋成熟的良好态势,而在我国,L2级智能辅助驾驶渗透率约50%,全新的汽车时代即将到来。

自动驾驶既是时代机遇,也面临许多挑战。相关技术和方法的颠覆性变革将深刻影响核心汽车产业,以及与这些技术和方法产生交集的每一个人。除此之外,交通和道路基础设施需要进行必要的调整,管理部门必须适应技术的快速迭代,监管机构需为交通运营提供新的合规框架……诸多挑战接踵而至。这些挑战需要通过多方精诚合作来攻克。

在实车测试的基础上,仿真测试能够有效简化测试流程、降低测试成本。当然,没有一种仿真测试是完美的,也没有什么比现实世界更真实。但是,借助一系列专业解决方案与工具,我们可以模拟大多数关键场景,为测试“减负”。这要求仿真工具链必须能高效交互——无论是在单一仿真设置中,还是在复用相同数据的场景下。

以ASAM(Association for Standardization of Automation and Measuring Systems,自动化及测试系统标准协会)OpenX系列为代表的标准,正是基于支持工具与环境交互的需求制定而成的。ASAM OpenX系列包含定义设计运行范围的ASAM OpenODD、描述道路静态环境的ASAM OpenDRIVE和ASAM OpenCRG、描述交通参与者物理属性的ASAM OpenMATERIAL 3D、用于仿真组件之间通信的ASAM OSI、规范数据标记和标注方式的ASAM OpenLABEL,以及描述从具体事件到抽象场景库的ASAM OpenSCENARIO。

在自动驾驶技术快速发展的同时,我们也注意到消费者对自动驾驶存在一定误解,自动驾驶功能的边界等方面的科普迫在眉睫。另外,行业对仿真测试技术与管理人才的需求日益迫切。在这样的背景下,我们非常高兴能看到《自动驾驶仿真测试入门:CARLA实战》一书出版。这本书以自动驾驶仿真测试为主线,基于仿真软件CARLA,从零开始系统介绍仿真测试的概念及相关流程,不论对自动驾驶的初学者,还是深耕行业多年的老手,均具有指导与借鉴意义。

ASAM作为一个致力于推动汽车开发与测试工具链标准化的非营利组织,成员涵盖汽车制造商、供应商、工具供应商、工程服务提供商等。一直以来,ASAM秉持全球化视野,积极推进模拟仿真领域外标准(如测量、校准、诊断和测试自动化标准)的互通,以及其与仿真领域内各项标准的兼容。ASAM认为,仿真测试系统和功能终需面对现实世界,与实车驾驶验证协同配合,为极端情况的处理和未知情况的识别提供有力支撑。

最后,感谢本书作者李慢慢的邀请,很荣幸能够为这本书作序,也欢迎大家关注ASAM及相关标准。我们相信,自动驾驶仿真测试将在相关领域中发挥愈发重要的作用,为汽车行业带来更多的可能性。

魏文渊

C-ASAM秘书长

推 荐 序 四

CARLA基于虚幻引擎(Unreal Engine)开发,具备逼真的渲染效果和丰富的环境交互能力。其模块化设计使用户能轻松定制和扩展仿真场景,满足不同的测试需求。此外,CARLA属于开源软件,是工程人员进行深度应用与二次开发的理想载体。本书以CARLA仿真平台的介绍与应用为基础,涵盖与自动驾驶仿真测试相关的丰富内容,是学习和了解CARLA仿真平台及仿真测试技术的优秀指南。

目前,在自动驾驶仿真测试中,从场景定义到仿真平台类型均呈现出多样化特征,旨在满足自动驾驶算法的各类需求。自动驾驶车辆需应对各种复杂的道路环境和交通状况,因此仿真测试需构建多样化的仿真场景,全面考虑不同道路类型(如城市道路、高速公路、乡村道路)、天气条件(如晴天、雨天、雪天)、交通流量及交通参与者行为等,确保自动驾驶算法在各种情况下均能展现出良好的性能和稳定性。在此基础上,各类仿真平台应运而生,有偏重动力学仿真的平台、偏重交通流仿真的平台、偏重画面渲染的平台、偏重传感器仿真的平台等。这些仿真平台各具特色,既可以单独使用,也可以相互配合,发挥各自优势。其中CARLA软件兼具多重特性,成为从业者的主要选择之一。

仿真软件的接口和场景需要标准化。当前仿真平台众多,工具链接口差异较大。CARLA提供了丰富的应用程序编程接口(Application Programming Interface,API),便于用户集成自己的自动驾驶算法。借助CARLA,研究人员和工程师能够快速验证算法的有效性,优化算法性能,加快自动驾驶技术的研发进程。同时,CARLA积极与行业标准接轨,支持ASAM OpenX系列标准,如ASAM OpenDRIVE和ASAM OpenSCENARIO。用户能用CARLA生成标准化的仿真场景,提高场景制作效率和复用率。通过集成这些标准,CARLA也在一定程度上推动了行业标准化的进程。

仿真工具链的可靠性,必须以高置信度为支撑。相关法律法规对仿真测试的重视程度持续提升,已明确其作为自动驾驶测试“三支柱”之一的地位,同时也对仿真测试的置信度提出了严格要求。CARLA在场景建模、传感器物理建模、动力学建模等方面具备扎实的理论基础,可为置信度提供有效验证。在实际测试中,CARLA能输出仿真结果与实车在感知和动力等维度的对比结论,从而使基于CARLA的仿真工具链的可靠性获得充分认可。

本书内容全面,案例丰富,是初学者入门自动驾驶仿真测试的佳作。本书作者深耕仿真领域多年,对仿真测试有深入的领悟与思考,愿读者能借此书与作者对话,与行业同行。

姚若禹

智己汽车科技有限公司

前  言

路漫漫兮,绵绵用力,久久为功。

为什么写这本书

2020 年,我开始准备从机械领域向自动驾驶领域转型,彼时与自动驾驶仿真测试相关的学习资料很少,偶见两三篇网络文章概述式讲述仿真应用,或有一两本相关图书介绍概念或者流程,但一直未见能从零开始指导读者学习自动驾驶仿真测试的资料,于是我的整个转型过程显得异常困难,大多数时间都是自己在探索。与此同时,我将自己学到的自动驾驶仿真测试知识整理成文,于公众号上发表,形成工作经验总结,让别人学习的同时,也希望能获得“伯乐”的赏识。在此过程中,我结识了很多志同道合的伙伴,知道自己的文章对他们的帮助颇多,这种成就感让我在成功转型后依然保持着写作和分享的习惯。在出版社编辑的建议下,我从 2023 年开始对公众号的系列文章进行整合,以期形成一本能系统性指导读者学习自动驾驶仿真技术与实操的图书。正是因为我在准备进入自动驾驶仿真领域时感到迷茫,所以我期待能编写一本入门级的指导图书,让后来者不再迷茫,帮助读者更深入地认识自动驾驶仿真领域。

希望这本书能为对自动驾驶仿真领域满怀热忱却不得其门而入的后来者带来指引,为对自动驾驶仿真测试工作流程一知半解的从业者解惑,更希望为我国自动驾驶仿真社区的发展添砖加瓦。期待有更多志同道合的人进入自动驾驶仿真领域,成为仿真工作者,助力自动驾驶产业实现跨越式发展。

本书涉及哪些技术栈

(1)CARLA:这是一款开源的仿真模拟软件。

(2)Python:这是操作CARLA进行仿真模拟的脚本语言。

(3)OpenX:这是自动驾驶仿真领域的标准。

(4)ROS2:这是连接CARLA和自动驾驶软件的中间件操作系统。

(5)Docker:这是容器化管理工具,可帮助使用者自由封装仿真模拟器。

(6)Autoware:这是一款开源的自动驾驶软件。

本书适合哪些人

本书为自动驾驶仿真测试领域的入门级图书,特别适合初学者,如在校学生和准备学习自动驾驶测试仿真技术的工程师。本书介绍了很多工程化经验,对于初入自动驾驶仿真领域的仿真工作者来说是一本实用指南。

致谢

本书的出版离不开众多“贵人”的帮助。感谢我的妻子在我转型过程中给予的无条件支持和鼓励;感谢付耿老师,他是我转型过程中的引路人;感谢肖利琼老师,让我明白系统化整理自动驾驶仿真测试知识的重要性;感谢杨子江教授、自动驾驶之心团队、C-ASAM秘书长魏文渊和智己汽车科技有限公司姚若禹为本书撰写推荐序;感谢好友招健斌在我写作过程中给予的众多技术支持和帮助;感谢人民邮电出版社编辑的认真编校和反复指正。有太多人值得感谢,此处无法一一罗列,承蒙关怀,感激不尽,必当时刻铭记于心。

答疑

躬身而知不易,尽管我已竭力完善本书,但自动驾驶仿真领域涉及的知识广泛且深奥,因此本书不可避免地存在一些我理解不到位甚至存在偏差的问题,读者如有任何关于本书的建议或者需要任何帮助,都可以发送邮件到我的邮箱limanman302@163.com,与我进行交流,我将尽力解答读者的疑问。

李慢慢

于上海

第1章 自动驾驶测试基础

随着汽车智能化技术的不断进步,自动驾驶已经成为当前汽车产业的重要发展方向,被视为提升道路交通安全和通行效率的关键手段。国内外的主要汽车厂商和系统供应商正积极地研发自动驾驶技术,逐渐有商业化的自动驾驶车辆出现在公众视野中。然而,不同公司在自动驾驶技术路线上的选择各不相同,有些公司专注于纯视觉技术,有些公司专注于多传感器融合,还有些公司致力于基于规则或端到端的大模型技术。这种多样性给自动驾驶测试带来了挑战。如何有效地评估自动驾驶车辆的智能化水平已经成为汽车产业的焦点,一些法规标准和测试方法(如三支柱法)也在汽车产业内逐渐形成,以应对这一挑战。

本章首先介绍三支柱法的组成,带领读者了解三支柱法之一的仿真测试的重要性;然后介绍常见的仿真测试手段,带领读者了解仿真测试在自动驾驶测试中的具体应用。

1.1 自动驾驶测试的三支柱法

在自动驾驶汽车发展早期,自动驾驶汽车的测试主要以道路测试和场地测试为主。随着自动驾驶汽车的功能日益复杂,所需测试的场景数量迅速增加,仿真测试由于具有速度快、安全性高、成本低等优势,逐渐成为自动驾驶功能验证的手段之一。国际汽车制造商协会在2019年正式提出了由开放道路测试、封闭场地测试和虚拟仿真测试组成的自动驾驶测试的三支柱法,得到了汽车产业相关技术人员的广泛认可。

为了能高效完成自动驾驶技术的开发,行业内对三支柱法的作用域的预期为“自动驾驶系统的测试中大约 90%通过虚拟仿真测试完成,9%通过封闭场地测试完成,1%通过开放道路测试完成”。

接下来,我们将分别介绍3种测试方法:开放道路测试、封闭场地测试和虚拟仿真测试。

1.1.1 开放道路测试

自动驾驶系统的开放道路测试是指在实际公共道路上对自动驾驶汽车进行自动驾驶功能测试,搭载了自动驾驶系统的车辆在实际道路上行驶(如图 1-1 所示),以真实的场景对自动驾驶系统进行测试,获得真实的自动驾驶性能反馈。

图1-1 自动驾驶系统开放道路测试:无保护左转场景

1.1.2 封闭场地测试

自动驾驶系统的封闭场地测试是指在封闭的场地上对自动驾驶系统进行测试,其中比较典型的是基于法规的先进驾驶辅助系统(Advanced Driver Assistance System,ADAS)功能测试(如图 1-2所示)。

图1-2 NCAP官方网站上的ADAS测试示意

1.1.3 虚拟仿真测试

根据美国兰德公司的研究可知:“从统计学角度出发,自动驾驶汽车需要进行至少110亿英里(约177 亿千米)的里程测试,才能证明自动驾驶系统比人类驾驶员更可靠。”然而,基于实车路测里程的测试方法具有测试周期长、效率低、成本高等弊端,自动驾驶汽车要商业化落地,单纯依靠基于实车路测里程的测试方法显然是不够的。而且现实世界中的场景具有无限丰富、极其复杂、不可预测、难以重复等特点,该测试方法基本无法有效覆盖所有测试场景。因此虚拟仿真测试应运而生,即把在实际道路上才能完成的测试任务转移到计算机上来完成,以降低测试成本、提高测试效率、避免测试危险、随意构造场景、无限重复测试等。虚拟仿真测试即自动驾驶仿真测试,如图 1-3所示。

图1-3 自动驾驶仿真测试示意(多批量场景)

1.什么是自动驾驶仿真测试?

自动驾驶仿真测试是使用计算机软件产生虚拟数据,以模拟真实汽车驾驶环境,从而对自动驾驶软件算法进行的测试。

能产生虚拟数据的计算机软件(即仿真软件)包括VTD、CARLA等;要模拟的真实汽车驾驶环境要素包括道路、交通参与者、交通设施、交通流、天气、光照、传感器数据、车辆动力学等;要测试的自动驾驶软件算法包括感知算法、融合算法、规控算法等。自动驾驶仿真测试的基本流程如图1-4所示。

图1-4 自动驾驶仿真测试的基本流程

自动驾驶仿真测试涉及如下。

(1)场景库:模拟真实道路上的一系列场景。

(2)仿真模拟器(仿真平台):根据场景进行建模和渲染,输出各类仿真数据,并根据车辆行驶状态不断更新仿真数据的仿真引擎。

(3)被测对象:与仿真模拟器进行数据交互的自动驾驶软件或硬件。

(4)评价系统:对在仿真数据驱动下的被测对象的性能进行评价的系统。

2.为什么要进行自动驾驶仿真测试?

对于自动驾驶技术研发来说,自动驾驶仿真测试的优点体现在“多、快、好、省”4个方面。

(1)多,是相对实车测试来说的。在实车测试中,可能因为场地原因、天气原因、安全原因等,只能测试少量的场景,但仿真测试可以创造各种各样的场景进行测试。

(2)快,在于仿真测试的运行速度远快于实车测试。实车测试中,测试一个固定的场景时,从准备道具,到启动车辆,然后到测试结束、记录和评价测试结果,再到恢复道具以继续进行下一次测试,每一个过程都需要反复确认,极度费时。然而,在仿真测试中,只需要运行代码,就能开始测试,还能自动评价测试结果,甚至能加速测试过程,更能快速进行重复测试。

(3)好,在于测试的质量。高质量的测试可以帮助测试人员发现自动驾驶系统的漏洞,保障软件质量。这种全方位、全覆盖是实车测试无法做到的。

(4)省,在于节省成本。仿真测试能节省人力成本、设备成本、时间成本、场地成本。

∙∙∙ 作者寄语:

对于自动驾驶仿真测试,业内很多人喜欢以“worldsim”对其进行简称。51 WORLD公司推出的“地球克隆计划”就很贴合这个词,world即世界,sim是simulation的缩写,即仿真,对整个世界进行仿真,即worldsim。万物皆可仿、一切皆数据。与worldsim相对应的是logsim,业内也称回灌、回注或者回放,它利用将真实车辆在实际道路上行驶而实时采集到的各种数据(如传感器数据、整车数据等)反向传输给自动驾驶算法,以对其进行训练或者测试。采集到的数据可以理解成日志(log),利用日志来仿真(simulation)车辆行驶时的环境,也就形成了logsim。worldsim和 logsim 的最大区别在于:worldsim 传输给自动驾驶算法的是仿真软件创建的虚拟数据;而logsim 传输给自动驾驶算法的是实车路跑采集到的真实数据。虚拟数据的优点是用户自定义程度足够高,缺点是置信度低;真实数据的优点是置信度高,缺点是自定义程度不够高。为了结合worldsim和logsim的优点,目前出现了根据真实数据泛化生成虚拟数据的技术,即log2world。这样一来,真实数据和虚拟数据的界限越来越模糊。就测试而言,可能需要组合worldsim、logsim、场地测试、道路测试等一系列测试,优势互补,才能高效地完成自动驾驶测试任务。因此,自动驾驶仿真测试工程师不必纠结于做worldsim好还是做logsim好,只有掌握多种测试技术,才能更好地保障软件质量,提高职场核心竞争力。

1.2 自动驾驶仿真测试的应用分类

汽车产业发展至今诞生了一套先进的测试流程来保证自动驾驶系统的有效性和高效性,我们将这套测试流程称为V模型,如图1-5所示。

图1-5 V模型

以仿真测试手段对ADAS或ADS(Advanced Driver System,先进驾驶系统)进行功能测试时,按照被测对象的集成状态不同,可以把仿真测试手段分为以下几种。

(1)模型在环(Model in the Loop,MIL)测试:使用计算机模型对自动驾驶系统进行评估和验证。这种测试可以在早期的开发阶段进行,以验证模型的行为是否符合预期。在MIL测试中,被测对象是模型,模型运行在模型平台中。

(2)软件在环(Software in the Loop,SIL)测试:将自动驾驶系统的软件嵌入虚拟环境中,评估软件的功能和性能。这种测试可以模拟真实世界中的驾驶场景,进行系统的验证。在SIL测试中,被测对象是代码,代码通常运行在服务器中。

(3)硬件在环(Hardware in the Loop,HIL)测试:将自动驾驶系统的软件与硬件(如传感器和执行器)相连接,评价整个系统的交互和性能。这种测试可以在实际硬件环境中验证自动驾驶系统的功能和稳定性。在HIL测试中,被测对象是安装了软件的硬件设备。

(4)整车在环(Vehicle in the Loop,VIL)测试:使用实际的测试车辆进行自动驾驶系统的验证和评估。这种测试可以在真实道路环境中对自动驾驶系统进行综合评估,并检查自动驾驶系统的可靠性和安全性。在VIL测试中,被测对象是集成了特定软硬件设备的整车系统。

1.2.1 MIL测试

MIL 测试是在基于模型的开发环境中以仿真手段测试单个模块或者集成模块的测试方法。目前,自动驾驶系统的MIL测试的被测对象一般特指Simulink环境下开发的规控算法模型。为了验证规控算法模型是否满足设计要求,通常在模型设计环境(如Simulink)中设置被测对象模型,对规控算法进行闭环测试。MIL测试流程如图1-6所示。

图1-6 MIL测试流程

此时的规控算法以Simulink模型的形式存在(还未被编译成代码),这种模型非常适合用来快速验证规控算法的功能逻辑,常用作功能开发的自测手段。因此,MIL测试允许在早期识别并纠正错误和修复漏洞,是显著加速测试进程的一种经济、有效的方法。

1.2.2 SIL测试

SIL测试是在编译代码的运行环境中以仿真手段测试自动驾驶软件功能的测试方法。相比MIL测试,SIL测试的被测对象由规控算法变成了编译后的代码。所以从两者被测对象的区别来看,SIL测试的作用是对编译后的代码进行测试,检查算法编译可能带来的问题。但是,鉴于SIL测试是以纯软件的方式运行,非常利于软件部署,因此常用来进行大规模测试。只要构建起丰富的场景库,就能高效地测试不断迭代的自动驾驶软件。鉴于 MIL 测试和 SIL 测试两者之间的关系,在实际自动驾驶软件开发中,MIL 测试可以进行初步的软件功能开发测试以验证功能逻辑(常用于开发团队),而SIL测试适合对软件功能进行全面覆盖式测试以发现潜在的逻辑漏洞(常用于测试团队)。SIL测试流程如图1-7所示。

图1-7 SIL测试流程

1.2.3 HIL测试

HIL测试是以仿真手段来测试部署在真实硬件中的软件功能的测试方法。在自动驾驶系统中,HIL测试的真实硬件一般特指ECU(Electronic Control Unit,电子控制单元)或其他车载硬件设备。相比于SIL测试,HIL测试则进一步将代码的运行环境从个人计算机端转移到ECU内,以检查自动驾驶软件在ECU内的运行情况。“仿真软件+真实硬件”的组合经常被称为“半实物仿真”。由于HIL测试涉及硬件资源,部署成本较高,因此常用于较小规模场景的批量测试。另外,在自动驾驶系统中还能对ECU进行压力测试,即通过仿真环境模拟不同的极端场景和输入条件,在各种极端条件下测试ECU的性能和稳定性。HIL测试流程如图1-8所示。

图1-8 HIL测试流程

 备注:

自动驾驶系统中的硬件部分仅接入了简单的 ECU。实际上,HIL 测试中的硬件是可以扩展的,比如继续集成摄像头、毫米波雷达等。随着集成硬件增多,需要模拟的部分越少,就越能发现更多硬件问题。这种既有硬件又有软件的测试也被称为“半实物仿真测试”。

1.2.4 VIL测试

VIL测试是以仿真手段来测试部署在实车上的自动驾驶软件功能的测试方法。相比于HIL测试,VIL测试则进一步将硬件范围由域控拓展到了整车。虽然传输给自动驾驶算法的依然是虚拟数据,但是自动驾驶算法输出的驾驶指令被车辆正常响应后,能获得真实的车辆动力学响应,这样能更真实地得到自动驾驶算法的控制效果。VIL测试的部署成本很高,在实际车辆开发中,常用于检查极端工况条件(比如雨雪天气)下自动驾驶算法的控制效果。VIL测试流程如图1-9所示。

图1-9 VIL测试流程

1.2.5 其他

除了上述比较典型的应用,自动驾驶仿真测试技术在其他领域也有应用,比如DIL测试、PIL测试等。

DIL(Driver in the Loop,驾驶员在环)测试的被测对象为驾驶员。驾驶员坐在驾驶模拟器上,前后方视景系统是仿真软件输出的画面,驾驶员的驾驶操作能实时改变前方的画面,实现“人在家中坐,神在路上游”。DIL测试经常用来研究人与座舱之间的交互、人因工程等,也可应用于教培领域或者考核领域等。

PIL(Processor in the Loop,处理器在环)测试中的处理器指的是目标代码实际运行的物理环境。PIL测试的被测对象是运行算法软件的处理器。一般来说,处理器是控制器的组成部分之一,对控制器中的处理器单独进行测试,可以非常精准地测试该处理器的运行性能,该测试手段多见于零部件公司。

1.3 测试手段对比

以上为大家介绍了多种测试手段,它们各有优劣势,在实际应用中,我们应根据核心测试需求和资源的不同选择合适的测试手段。

前文提到的几种测试手段在测试中的真实部分和虚拟部分的对比如表1-1所示。

表1-1 几种测试手段的真实部分与虚拟部分的对比

测试手段

车辆

传感器

环境

控制器

MIL测试

虚拟

虚拟

虚拟

虚拟

SIL测试

虚拟

虚拟

虚拟

虚拟

HIL测试

虚拟

虚拟或部分真实

虚拟

真实

VIL测试

真实

真实

虚拟或部分真实

真实

封闭场地测试

真实

真实

真实

真实

开放道路测试

真实

真实

真实

真实

表1-2所示为几种测试手段在测试过程中的关键特性对比。

表1-2 几种测试手段的关键特性对比

测试手段

安全性

成本

效率

MIL测试

SIL测试

HIL测试

VIL测试

封闭场地测试

开放道路测试

1.4 本章小结

本章介绍了自动驾驶测试的三支柱法,即开放道路测试、封闭场地测试和虚拟仿真测试,由此引出仿真测试的重要性,并进一步介绍了仿真测试的应用分类,包括 MIL 测试、SIL 测试、HIL 测试、VIL测试等。希望大家通过学习本章,能够建立起仿真测试工作内容的基本印象。

相关图书

Agent设计模式 图解可复用智能体架构
Agent设计模式 图解可复用智能体架构
AI Agent 开发实战:MCP+A2A+LangGraph 驱动的智能体全流程开发
AI Agent 开发实战:MCP+A2A+LangGraph 驱动的智能体全流程开发
Coze入门:7天玩转扣子智能体
Coze入门:7天玩转扣子智能体
计算流体力学大串讲轻松解锁CFD     从公式到代码的奇妙之旅
计算流体力学大串讲轻松解锁CFD 从公式到代码的奇妙之旅
内网攻防实战图谱:从红队视角构建安全对抗体系
内网攻防实战图谱:从红队视角构建安全对抗体系
数据可视化分析与实践
数据可视化分析与实践

相关文章

相关课程