登录| 注册 退出
驭捷智能

用虚拟仿真平台实现ADAS目标融合、检测和跟踪

2021-03-30       浏览:  
分享到:

汽车行业正向自动驾驶迈进,汽车设计和开发人员也越来越注重汽车系统的主动安全。要实现主动安全的自动驾驶,先进驾驶辅助系统(ADAS)是基础,也是关键,如自适应巡航控制系统、防碰撞系统等等。

据估计,要确保ADAS和自动驾驶汽车的安全性和可靠性,需要数10亿英里的道路测试。这项看似不可能的任务,在开发、设计和验证阶段只有借助仿真技术才能实现。本文将介绍在虚拟仿真环境中开发ADAS功能的实践经验和高级别成果。我们开发了两种基于传感器融合的ADAS功能,即:(i)静态障碍物检测;(ii)动态目标检测和跟踪。

关键词:高级驾驶辅助系统(ADAS)、自动驾驶(AD)、环中软件(SIL)、虚拟样机、传感器融合、跟踪对象、卡尔曼滤波器

简介

防碰撞系统是ADAS的功能之一,如同第三只眼一样帮助驾驶员,持续不断的检测车辆前方道路状况。该系统使用了各种传感器来感知汽车周围的环境,基于传感器输入的数据,系统可以识别判断各种潜在的危险情况,并输出控制信号(如声音和视觉提醒),以帮助驾驶员避免或减缓碰撞事故的发生。

然而,ADAS的开发是一个迭代过程,需要经过数次的迭代才能达到最终版本。因此,在ADAS的设计、开发和评估的早期阶段,建立一个非常逼真的仿真环境十分重要,如此一来可以减少时间和降低风险。

在ADAS实际应用之前,软件在环仿真(Software-in-the-loop simulation,SIL)不失为是对复杂软件系统进行评估的有效方法。在SIL仿真概念中,将实际生产软件(或算法)集成到包含物理系统模型的虚拟环境(数学仿真)中,以便为软件测试提供有效的平台。也正因如此,我们就必须要模拟汽车及其与物理世界的相互作用。

在本篇文章你将会读到:

第一部分:ADAS开发的虚拟仿真平台;

第二部分:描述传感器融合的过程,其中两个ADAS功能用于检测静态障碍物和跟踪车辆;

第三部分:传感器融合的模拟结果;

第四部分:总结全文并指出未来研究工作的方向。

1.用于ADAS开发的虚拟仿真平台

在真实的交通环境中验证和测试ADAS应用程序是一项艰巨的任务,这需要付出很多的努力和高昂成本。这是因为真实的交通环境是不可预测的,很难执行标准化驾驶测试或重现结果。在ADAS开发的不同阶段,驾驶模拟器可以用来在不同开发阶段对ADAS软件进行模拟原型设计、测试和验证。PreScan是一个用于汽车行业的虚拟仿真平台,能够完成ADAS应用的设计和评估,模拟最常见的传感器类型,以及建立虚拟交通场景。

PreScan包含大量模型,如路段、基础设施组件(建筑、交通标志和树木)、参与者(汽车、卡车、自行车和行人),如图1。不同的天气条件(如雨、雪和雾)和光源(如太阳、前照灯和灯柱),进一步提高了建立虚拟交通场景的质量。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图1)

图1 在虚拟环境中建立的交通场景

对于ADAS和AD的算法和环境感知来说,传感器至关重要。我们将传感器分为以下几组:

  • 电磁(雷达,Car-2-X)

  • 光学(相机、激光雷达、激光、红外)

  • 声学(超声波)

PreScan可用于高级驾驶辅助系统上的传感器包括雷达、 激光、摄像头、GPS等。图2显示了具有ADAS功能的汽车中的传感器定位示例。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图2)

图2 ADAS车辆上安装的传感器位置示例

通过PreScan,可以将每个传感器精确配置在模型车辆上,还可以根据特定的真实传感器模型来修改传感器属性,如图3所示。Prescan能够可视化连接到自主车辆的每个传感器的视野(FOV),见图1。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图3)

图3 Prescan的传感器配置

通过Matlab/SIMULINK 进行ADAS功能开发。基于COM的接口(组建对象模型),Prescan和Matlab/Simulink(组件对象模型)进行耦合仿真来实现数据可视化,驾驶环境可视化等等操作。图4显示了在闭环中配置的Prescan和Matlab/Simulink之间的数据流。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图4)

图4 Prescan和Matlab/Simulink之间的数据流

Simulink的主要功能是能够随着时间的推移来模拟系统组件的行为。在Prescan模拟中放置在自主车辆上的传感器,并在Simulink中以块的形式可见。只需将传感器块与下一个处理块用一条线连接,即可仿真每个传感器所输出的信息。图5显示了在Simulink中开发的用于提取传感器数据的模型。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图5)

图5 用于提取传感器数据的Simulink模型

小贴士:Prescan与Simulink的连接

1. Prescan界面

打开Matlab,其中Matlab需要从Prescan Manager中打开

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图6)

在打开前需要确保是否在prescan中设置了正确的matlab路径

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图7)

2. Matlab界面

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图8)

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图9)

本例程中以摄像头为传感器,做一个简要的展示,生成如下所示的车辆,就是仿真环境中在Prescan中设置传感器的车辆和传感器,双击进入。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图10)

内部展示如下所示:

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图11)

由于本例程中没有添加道路,也没添加相关的其他行动车辆,所以内部比较简单:

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图12)

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图13)

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图14)

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图15)

上述是一个非常简单的单个案列,但是真实情况会比这个复杂,所有的连接满足Simulink的连接规则即可。

如下所示是一个比较复杂不添加传感器的模型连接,使用匀速控制车辆,本文不做详细解释。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图16)


下一节,将描述ADAS功能的开发。

2.传感器融合

传感器融合即整合从多种传感器中提取传感数据的过程,所产生的数据,比任何来自单个传感器的数据更加准确和有效。传感器融合的目的是减少不确定性,意味着能够输出更准确、完整和可靠的结果。在汽车应用中,尤其是在高级驾驶辅助系统中,传感器融合起着核心作用。

数据融合是一项比较复杂的工作,需要对传感器的特性具有深刻的理解,能够熟练的运用卡尔曼滤波等融合的算法,从而对目标进行准确的提取、筛选以及跟踪,本文我们举一个的例子。

检测周围环境中的静动态障碍物,是用于ADAS系统传感器融合的一个例子,我们将在下面一小节说明。

A.检测静态障碍物

将用于静态障碍物检测处理和数据融合的系统组件,放入一张简单的静态障碍物地图中,并将自车车辆连接进来。该系统组件结合了来自多个传感器(如激光雷达、摄像机、雷达、超声波传感器)的数据,可以获得更加准确和长久的自主车辆环境视图。如果传感器组(部分)存在冗余,该组件也可以帮助减轻某些传感器的故障。本模块的目标是确定实际的可驾驶区域,即环境在默认情况下不能被视为可驾驶。

我们展示了一种基于自车数据和激光雷达检测的网格地图。自车的数据包含来自内部传感器(速度、加速度、横摆率、位置)的测量值。激光雷达,尤其是某些垂直层的传感器,可以在可行驶区域(自由空间)上做出充分的描述。激光雷达探测将以原始数据形式(范围和角度)输出。

静态障碍物检测模块的输出为一个占用网格,该占用网格是一个结构,包含了被检测到的自车静态环境的所有信息(静态障碍物的位置、障碍物的大小和形状、障碍物存在的概率)。虽然占用网格的大小有限,但足以集成所有传感器的测量信息。在实施中,占用网格覆盖了每个方向约100米的空间,并能够同自车移动。我们使用了VeloView对采集到的激光雷达数据进行三维表示,如图6所示。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图17)

图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显示了放置在同一位置的地图和物体融合的结果。白色标记表示可行驶区域,灰色标记表示不可行驶区域,黑色标记表示障碍物。如检测到汽车和卡车移动物体,用红色方块标记。

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图18)

图7 来自驾驶员角度的视图

用虚拟仿真平台实现ADAS目标融合、检测和跟踪(图19)

图8 来自驾驶员角度的视图

结论

本文所讲述的虚拟仿真平台,为ADAS模块的开发、评估和验证提供了一种灵活的解决方案。主要优点如下:

  • 缩短开发时间:在虚拟环境中的开发速度显然快于物理原型和测试;

  • 降低成本:虚拟仿真比物理世界中的开发和测试成本更低;

  • 提高最终产品的质量:虚拟环境中的模拟能够评估大量测试用例、场景和设计参数,进行功能安全分析,并且能在单个物理测试所需的成本和时间内进行评估。

静态障碍物检测和目标跟踪为开发更可靠的ADAS系统打下了坚实的基础。此外,原型应用程序可以作为开发ADAS应用程序的基础,这些应用程序还适用于真实传感器,并能够在嵌入式平台上运行。


在线
客服

在线客服 - 驭捷智能周一至周日 10:00-24:00(欢迎呼叫)

选择下列服务马上在线沟通:

客服
热线

18917451722
6*12小时客服服务热线