在本篇文章你将会读到:第一部分:ADAS开发的虚拟仿真平台;第二部分:描述传感器融合的过程,其中两个ADAS功能用于检测静态障碍物和跟踪车辆;第三部分:传感器融合的模拟结果;第四部分:总结全文并指出未来研究工作的方向。
简介
防碰撞系统是ADAS的功能之一,如同第三只眼一样帮助驾驶员,持续不断的检测车辆前方道路状况。该系统使用了各种传感器来感知汽车周围的环境,基于传感器输入的数据,系统可以识别判断各种潜在的危险情况,并输出控制信号(如声音和视觉提醒),以帮助驾驶员避免或减缓碰撞事故的发生。
然而,ADAS的开发是一个迭代过程,需要经过数次的迭代才能达到最终版本。因此,在ADAS的设计、开发和评估的早期阶段,建立一个非常逼真的仿真环境十分重要,如此一来可以减少时间和降低风险。
在ADAS实际应用之前,软件在环仿真(Software-in-the-loop simulation,SIL)不失为是对复杂软件系统进行评估的有效方法。在SIL仿真概念中,将实际生产软件(或算法)集成到包含物理系统模型的虚拟环境(数学仿真)中,以便为软件测试提供有效的平台。也正因如此,我们就必须要模拟汽车及其与物理世界的相互作用。
1.用于ADAS开发的虚拟仿真平台
在真实的交通环境中验证和测试ADAS应用程序是一项艰巨的任务,这需要付出很多的努力和高昂成本。这是因为真实的交通环境是不可预测的,很难执行标准化驾驶测试或重现结果。在ADAS开发的不同阶段,驾驶模拟器可以用来在不同开发阶段对ADAS软件进行模拟原型设计、测试和验证。PreScan是一个用于汽车行业的虚拟仿真平台,能够完成ADAS应用的设计和评估,模拟最常见的传感器类型,以及建立虚拟交通场景。
PreScan包含大量模型,如路段、基础设施组件(建筑、交通标志和树木)、参与者(汽车、卡车、自行车和行人),如图1。不同的天气条件(如雨、雪和雾)和光源(如太阳、前照灯和灯柱),进一步提高了建立虚拟交通场景的质量。
图1 在虚拟环境中建立的交通场景
对于ADAS和AD的算法和环境感知来说,传感器至关重要。我们将传感器分为以下几组:
- 电磁(雷达,Car-2-X)
- 光学(相机、激光雷达、激光、红外)
- 声学(超声波)
PreScan可用于高级驾驶辅助系统上的传感器包括雷达、 激光、摄像头、GPS等。图2显示了具有ADAS功能的汽车中的传感器定位示例。
图2 ADAS车辆上安装的传感器位置示例
通过PreScan,可以将每个传感器精确配置在模型车辆上,还可以根据特定的真实传感器模型来修改传感器属性,如图3所示。Prescan能够可视化连接到自主车辆的每个传感器的视野(FOV),见图1。
图3 Prescan的传感器配置
通过Matlab/SIMUlink 进行ADAS功能开发。基于COM的接口(组建对象模型),Prescan和Matlab/Simulink(组件对象模型)进行耦合仿真来实现数据可视化,驾驶环境可视化等等操作。图4显示了在闭环中配置的Prescan和Matlab/Simulink之间的数据流。
图4 Prescan和Matlab/Simulink之间的数据流
Simulink的主要功能是能够随着时间的推移来模拟系统组件的行为。在Prescan模拟中放置在自主车辆上的传感器,并在Simulink中以块的形式可见。只需将传感器块与下一个处理块用一条线连接,即可仿真每个传感器所输出的信息。图5显示了在Simulink中开发的用于提取传感器数据的模型。
图5 用于提取传感器数据的Simulink模型
小贴士:Prescan与Simulink的连接
1. Prescan界面
打开Matlab,其中Matlab需要从Prescan Manager中打开
在打开前需要确保是否在prescan中设置了正确的matlab路径
2. Matlab界面
本例程中以摄像头为传感器,做一个简要的展示,生成如下所示的车辆,就是仿真环境中在Prescan中设置传感器的车辆和传感器,双击进入。
内部展示如下所示:
由于本例程中没有添加道路,也没添加相关的其他行动车辆,所以内部比较简单:
上述是一个非常简单的单个案列,但是真实情况会比这个复杂,所有的连接满足Simulink的连接规则即可。
如下所示是一个比较复杂不添加传感器的模型连接,使用匀速控制车辆,本文不做详细解释。
下一节,将描述ADAS功能的开发。
2.传感器融合
传感器融合即整合从多种传感器中提取传感数据的过程,所产生的数据,比任何来自单个传感器的数据更加准确和有效。传感器融合的目的是减少不确定性,意味着能够输出更准确、完整和可靠的结果。在汽车应用中,尤其是在高级驾驶辅助系统中,传感器融合起着核心作用。
A.检测静态障碍物
将用于静态障碍物检测处理和数据融合的系统组件,放入一张简单的静态障碍物地图中,并将自车车辆连接进来。该系统组件结合了来自多个传感器(如激光雷达、摄像机、雷达、超声波传感器)的数据,可以获得更加准确和长久的自主车辆环境视图。如果传感器组(部分)存在冗余,该组件也可以帮助减轻某些传感器的故障。本模块的目标是确定实际的可驾驶区域,即环境在默认情况下不能被视为可驾驶。
我们展示了一种基于自车数据和激光雷达检测的网格地图。自车的数据包含来自内部传感器(速度、加速度、横摆率、位置)的测量值。激光雷达,尤其是某些垂直层的传感器,可以在可行驶区域(自由空间)上做出充分的描述。激光雷达探测将以原始数据形式(范围和角度)输出。
静态障碍物检测模块的输出为一个占用网格,该占用网格是一个结构,包含了被检测到的自车静态环境的所有信息(静态障碍物的位置、障碍物的大小和形状、障碍物存在的概率)。虽然占用网格的大小有限,但足以集成所有传感器的测量信息。在实施中,占用网格覆盖了每个方向约100米的空间,并能够同自车移动。我们使用了VeloView对采集到的激光雷达数据进行三维表示,如图6所示。
图6 激光雷达可视化的3D表示
B.在道路上的车辆跟踪
跟踪是指在一段时间内定位一个或多个移动目标的过程。跟踪多个目标需要检测、预测和数据关联三个步骤。目标检测是在单个帧中定位感兴趣的目标的过程。目标目测包括预测在下一帧中的目标位置。数据关联是使用预测的位置来关联跨帧的检测以形成跟踪轨迹,其跟踪轨迹表示由多个检测组成的对象的临时历史记录。
检测。在PreScan和Matlab之间设置接口,以便准备用于跟踪的检测。PreScan传感器可以返回多种目标类型的检测(汽车,电机,卡车,人,建筑物,交通标志,路段等)。由于我们只需要跟踪某些特定类型的目标,因此我们按照类型对目标进行过滤筛选。此外,PreScan传感器可以对同一对象目标进行多次检测,所以来自一个传感器的多次检测,跟踪器会将其理解为多个不同的对象,并将为同一对象创建多个轨迹。为避免这种情况,我们通过合并某个预定义范围内的检测的函数,可以将多个检测集群到单个检测。或者,如果目标ID的信息可用(如基本的PreScan传感器),则可以通过合并具有相同ID的检测来完成集群。
卡尔曼滤波器。随着时间的推移跟踪一个目标,意味着我们需要预测目标在下一帧中的位置,这可以通过卡尔曼滤波器(KF)可以实现,KF在多个跟踪任务和数据预测任务中是十分常用的。KF是一种递归的数据处理算法,其通过预测和校正机制来进行操作。该算法使用了一系列随时间变化而观察到的测量值,并结合之前的估计和测量更新来预测新的状态。
在“预测”这一步中,由算法生成当前变量及其不确定性的估计值。估计值是基于估计随时间变化的假设模型。KF用于消除噪声,并用于估计未知状态或变量的最优解。状态模型由位置、速度和加速度组成。假设,目标物体的加速度是恒定的,则使用恒定的加速度运动模型。由于目标车辆设定的速度是固定的,或是沿着模拟路径的两点以恒定速度增加,因此我们使用恒定加速度模型。
在“测量更新”这一步中,根据预测状态的加权平均值和当前测量测量的状态更新估计值,将其中较低的权重赋予不确定性较高的状态。
通过处理来自多个传感器的信号(例如结合来自雷达、激光雷达、相机和其他传感器的信号),KF可以减少统计噪声和其他误差。对于非线性系统,可以使用扩展卡尔曼滤波器(EKF),其工作原理是对预测和测量的平均值进行线性化。
跟踪管理。在Matlab中,负责跟踪管理的multiObjectTracker (可在自动驾驶系统工具箱中找到)可以跟踪目标从一帧移动到另一帧。跟踪管理包括:
- 分配检测跟踪;
- 基于未赋值的检测初始化新轨迹;
- 确认轨迹在N帧中是否具有超过M分配的检测;
- 根据分配的检测更新现有轨迹;
- 预测现有未赋值的轨迹;
- 如果轨迹长时间未被分配,则删除轨迹。
参考帧转换。在目标融合的过程中,可能需要完成数个参考帧转换。在传感器的参考帧中检测到目标,同时在车辆或世界参考帧中跟踪目标。最终结果转化为车辆参考帧,例如,用于可视化。因此,需要定义传感器到车辆、车辆到传感器、世界到车辆和车辆到世界的转换函数。参考帧转换的非线性操作,需要在“预测”步骤中使用卡尔曼滤波的非线性版本(即EKF)来进行。
3.仿真
我们利用上述的Prescan-Matlab/Simulink环境,以及扩展的卡尔曼滤波跟踪器,对道路上的跟踪车辆进行了仿真。
在图7中,从驾驶员的角度显示了模拟视图。图8显示了放置在同一位置的地图和物体融合的结果。白色标记表示可行驶区域,灰色标记表示不可行驶区域,黑色标记表示障碍物。如检测到汽车和卡车移动物体,用红色方块标记。
图7 来自驾驶员角度的视图
图8 来自驾驶员角度的视图
结论
本文所讲述的虚拟仿真平台,为ADAS模块的开发、评估和验证提供了一种灵活的解决方案。主要优点如下:
- 缩短开发时间:在虚拟环境中的开发速度显然快于物理原型和测试;
- 降低成本:虚拟仿真比物理世界中的开发和测试成本更低;
- 提高最终产品的质量:虚拟环境中的模拟能够评估大量测试用例、场景和设计参数,进行功能安全分析,并且能在单个物理测试所需的成本和时间内进行评估。
静态障碍物检测和目标跟踪为开发更可靠的ADAS系统打下了坚实的基础。此外,原型应用程序可以作为开发ADAS应用程序的基础,这些应用程序还适用于真实传感器,并能够在嵌入式平台上运行。