箩筐科技|自动驾驶虚拟仿真测试介绍( 四 )


(3)车辆动力学模块
车辆动力学模块用于模拟车辆本身对自动驾驶算法控制的响应 , 特别是对加速、制动和转向的响应 。
车辆动力学模块一般参照真实车辆 , 由车身、动力传动系统、悬架系统、转向系统、制动系统和车轮等不同的子系统构成 。
(4)测试管理模块
测试管理模块 , 负责对以上三个部分组成的仿真测试环境的管理 , 保证仿真测试的效果和效率 。
一方面 , 对测试流程进行管理 , 比如:测试用例的选择、测试的启动和终止、仿真模块的调度 。 另一方面 , 对测试数据进行管理 , 比如:测试用例的更新、测试数据的记录和分析、测试报告的生成 。
二、仿真测试工具的流派
目前常见的仿真测试工具有很多种 , 根据自动驾驶开发团队的来源 , 大致可分为如下几个流派:传统主机厂倾向于使用汽车工业的商业软件 , 使用机器人平台开发自动驾驶算法的团队常常使用ROS/Gazebo , 很多擅长计算机图形学的团队基于游戏引擎开发仿真工具 。 而大规模复杂交通流的仿真需求 , 则由交通规划领域的软件来满足 。
下图列举了一些常见的工具:
比如汽车工业的CarSim、CarMaker、VTD和PreScan , 机器人开发的ROS和Gazebo , 基于游戏引擎的CARLA、AirSim和LGSVL , 以及交通规划软件VISSIM和SUMO 。
箩筐科技|自动驾驶虚拟仿真测试介绍
本文图片

三、仿真测试工具的选择
如上一篇《测什么》中所说 , 一个完整的、精度高的仿真测试平台自然是最终的目标 , 但是在实际的自动驾驶开发中 , 团队一定会根据当下的具体需求和成本限制进行选择 。
比如:是否需要高精度的传感器模型?如果想采用VISSIM等工具模拟区域交通流 , 是否有合乎实际的交通调查数据?自动驾驶算法测试使用的车辆动力学模型 , 是否要与底盘调教的车辆模型使用一样的精度?高保真的视觉场景是否满足测试效率的要求?成熟的商业软件是否满足特定的需求?采用开源软件的话 , 团队的能力和项目进度是否允许?
等等诸如此类的问题 , 都需要根据不同的实际情况仔细评估后 , 再做选择 。
自动驾驶虚拟仿真测试介绍(5):怎么测
一、较低等级和较高等级自动驾驶的测试差异
二、基于用例和基于场景的测试
三、测试场景的来源
“ 本系列尝试从是什么、为什么、测什么、用什么测、怎么测和谁来测等方面来介绍什么是自动驾驶虚拟仿真测试 。 这是第五篇:怎么测 , 介绍自动驾驶虚拟仿真测试的方法 。 ”
一、较低等级和较高等级自动驾驶的测试差异
较低等级(L1L2)的自动驾驶或者说ADAS , 与较高等级(L3-L4)自动驾驶相比 , 有个直观上比较大的区别是:较低等级的自动驾驶面对的工况复杂度和工况范围比较小 , 或者说由于驾驶行为的主要由人类驾驶员负责 , 自动驾驶系统仅需处理有限数量的、确定的工况即可;而较高等级的自动驾驶 , 驾驶行为主要由自动驾驶系统负责 , 其处理的工况复杂度和工况范围很大 , 甚至不能提前预知 。 这种对比 , 可以用下图做一个示意:
箩筐科技|自动驾驶虚拟仿真测试介绍
本文图片
【箩筐科技|自动驾驶虚拟仿真测试介绍】

ADAS用一个较窄的矩形表示 , 高等级自动驾驶用一个较大的矩形表示 。 基于两者的这个差异 , ADAS可以使用基于用例的测试方法较好的进行测试 , 而高等级自动驾驶则需要使用基于场景的测试方法 。
二、基于用例和基于场景的测试
基于用例的测试方法 , 即是预设测试输入和测试过程 , 通过查看被测算法是否实现预期的功能来评价是否通过测试 。 比如对ACC的测试 , 预先设定被测车辆和前车的初始车速 , 以及前车减速的时刻和减速度 , 查看被测车辆是否能够跟随减速停车 。


推荐阅读