本文是自动驾驶仿真科普系列第三篇,上一篇为《自动驾驶仿真科普文之二:传感器的仿真究竟难在哪?》
对低等级自动驾驶阶段而言,仿真只是一个辅助手段,而到了高等级自动驾驶,仿真便成为准入门槛了——L3需要做过足够里程的仿真才能上路。
某主机厂仿真专家说:通常,自动驾驶公司做L4仿真的能力更强一些,而第三方仿真公司做的仿真则以L2为主。那么,两个阶段的仿真的具体差异有哪些呢?
L2的产品定义成熟,功能边界清晰,因而,仿真服务商提供给各家主机厂的服务通用程度很高;而L4的功能边界在哪里,大家都还在探索,因此,客户对仿真的需求有很高程度的定制化。
从测试场景的角度讲,L4因为ODD复杂度更高,场景库的数量级远高于L2。
L4仿真对场景复现度的要求更高,即道路中发现的一个问题,能不能在仿真场境下去复现;但很多做L2仿真的公司还没有思考过这个问题。
低等级自动驾驶仿真,大家主要拼场景的真实度,高等级自动驾驶对数据挖掘的关注度更高了。
L2对功能定义得比较明确,仿真可以以合成数据为主,以真实道路数据为辅;而到了L4阶段,数据驱动的重要性会更高,因此,需要以真实道路数据为主,以算法生成的数据为辅。
高等级自动驾驶车辆摄像头数量多、像素高,对仿真系统的图像渲染能力、数据同步能力及仿真引擎的稳定性都提出了更高的要求。
低等级自动驾驶基本都不需要高精地图,但高等级自动驾驶在目前阶段则高度依赖高精地图,这也是构建场景的时候就需要建数字孪生的原因之一,跟真实世界做对比。
L2的方案对决策的策略逻辑及执行机构的测试关注比较多,但并不会把重点放在规划算法上,但到了L4方案中,对如何避障、如何绕路等路径规划算法的考虑就比较多。
对低等级自动驾驶来说,系统不会完全控制车辆的行为,而只是起到辅助作用,因此,仿真公司在做场景设计的时候还要去设计很多驾驶员模型;而对高等级自动驾驶来说,车辆控制通过自动驾驶来实现,因此,仿真场景设计中就不需要设计驾驶员模型。
对这个逻辑,公众号“车路慢慢”在一篇文中更详细的解释:
较低等级的自动驾驶面对的工况复杂度和工况范围比较小,或者说由于驾驶行为主要由人类驾驶员负责,自动驾驶系统仅需处理有限数量的、确定的工况即可;较高等级的自动驾驶的驾驶行为主要由自动驾驶系统负责,其处理的工况复杂度和工况范围很大,甚至不能提前预知。
基于两者的这个差异,较低等级自动驾驶可以使用基于用例的测试方法较好的进行测试,而较高等级自动驾驶则需要使用基于场景的测试方法。
基于用例的测试方法,即是预设测试输入和测试过程,通过查看被测算法是否实现预期的功能来评价是否通过测试。比如对ACC的测试,预先设定被测车辆和前车的初始车速,以及前车减速的时刻和减速度,查看被测车辆是否能够跟随减速停车。
基于场景的测试方法,即是预设测试输入,但不预先设定测试过程,只设定交通车辆的行为,给予被测算法较大的自由度,通过查看被测算法是否达成预期的目标来评价是否通过测试。比如对直线道路行驶的测试,预先设定被测车辆和前车的初始车速,以及前车减速的时刻和减速度,但是不限定被测车辆是通过减速还是换道超车的方式避免与前车相撞。
造成对于不同等级的自动驾驶功能需要使用不同的测试方法的一个原因是:低等级的自动驾驶一般能够分解为简单而独立的功能,可以把单一功能作为被测对象;而高等级的自动驾驶较难分解成简单而独立的功能,只得把整个自动驾驶系统或其相对较大的一部分作为被测对象。
从产业生态的角度讲,对L2,车企基本不会自研,而是直接采用外购方案,测试会以HIL甚至道路测试为主;而对L4的仿真,许多车企会倾向于从SIL开始自研。