在斯堪尼亚开发先进的紧急制动系统

Jonny Andersson,斯堪尼亚

追尾碰撞事故是对货车载货车等重型车辆最常见的类型。为了减少汽车追尾碰撞的风险,在2015年,欧盟强制要求所有新车先进的紧急制动系统(AEBS)。

与其他高级驾驶员辅助系统(ADAS)一样,AEBS使用传感器的输入来筛选环境。当碰撞即将发生时,系统会发出声音警报来警告司机。如果驾驶员没有反应,它就会发出刹车警告。如果驾驶员仍然没有反应,系统就会完全使用刹车来避免碰撞(图1)。AEBS还提供了“刹车辅助”:当驾驶员刹车时,但是没有足够的力来避免碰撞,系统会计算并应用所需的额外制动力。

图1.上:AEBS概述。下图:一个典型的AEBS场景,其中安装有AEBS卡车接近一个缓慢移动的车辆。

AEBS使用安装在车辆上的前两个雷达和相机传感器,用于扫描所述区域在前方的对象。该系统充分利用每个传感器的特定优势,以获得更精确的环境模型。雷达传感器擅长确定对象的范围内,相对速度,和坚固但不太能够确定其形状或横向位置。单独使用雷达系统将很难区分自己的行车线停在路边,从一个汽车。照相机,在另一方面,可以查明对象的大小和横向位置但不检测范围良好,而且无法评估密度(致密云可以被感知为立体物)。

我和同事建立了一个传感器融合系统,该系统从两个传感器的匹配和合并数据到单个对象。该系统使用四个加权属性 - 纵向速度和位置和横向速度和位置来计算这两个传感器检测到的相同的对象的概率。一旦传感器融合系统已确定在本车辆的路径上的物体,它把对象的位置和车辆的预计路径AEBS,其确定何时警告驾驶员或接合制动器。

我们团队之前使用基于模型的设计来开发一个使用雷达技术的自适应巡航控制系统,但是我们之前从未开发过一个传感器融合系统。因为这是一个新的设计,我们知道我们需要一个可读的、可理解的架构来可视化信号流。我们还预期了许多设计迭代,因此我们需要一种可视化结果和调试设计的简单方法。此外,我们希望通过生成代码来节省时间,但是代码必须是高效的,因为当我们开始传感器融合项目时,我们的电子控制单元(ECU)的CPU负载已经达到了60%。最后,我们需要彻底验证我们的设计——我们的计划是基于150多万公里的传感器数据运行模拟。基于模型的设计满足所有这些需求。

构建传感器融合系统

我们首先将系统设计划分为功能单元,例如对象匹配和投影路径放置,并构建一个单独的Simulink万博1manbetx®每个单元块。结果是一个清晰的软件架构,具有定义良好的接口(图2)®为轨道关联代码,以计算方差,计算加权的概率,并进行了比积木更容易实现与脚本等任务,并纳入该代码到我们的MATLAB功能块Simulink模型。万博1manbetx这些算法块使它容易对团队成员合并他们的算法并把它们与控制系统集成。

示出的独立功能块的传万博1manbetx感器融合系统的图2. Simulink模型。

为了调试和改进我们的初始设计,我们使用记录的雷达传感器数据、相应的摄像机图像和其他车辆传感器数据进行模拟。在调试过程中,我们发现将传感器数据与车辆前方的摄像机视图一起显示是非常有用的。我们建立了一个可视化工具MATLAB显示传感器融合数据同步的网络摄像头视图周围交通(图3)。利用MATLAB的面向对象编程功能,使用MATLAB工具类来表示每个对象检测到任何传感器和统一的对象被传感器融合系统。这些MATLAB对象使我们能够在可视化数据时快速地前进和后退。

图3.传感器的可视化工具在MATLAB开发。

我们在道路测试中使用相同的工具来可视化实时数据从车内网络(图4)的到来。

该AEBS软件图4.控制路试。两台车之间的梯形对象是一个“软目标”设计类似,用于车辆“傻瓜”雷达和摄像机。

实施系统并优化性能

为了将传感器融合系统部署到ECU,我们使用嵌入式Coder®从Simulink模型生成C代码。万博1manbetx通过代码生成,我们能够快速地得到实现,并避免编码错误。ECU处理器的大部分资源都分配给了维护功能——监视仪表板警报、物理评估、数据网关、自适应巡航控制等等。因此,我们需要优化我们的初始设计以提高其效率。

为了获得最大性能生成的代码,我们曾与MathWorks的驾驶员队伍,谁帮助我们优化了从MATLAB编码器生成的代码。为了进一步减轻处理负荷我们把模型分成上交替循环被执行的单独的部分。例如,而不是运行计算固定和在每个周期中移动的物体,我们跑了他们的交替循环。我们意识到,该处理器是陷入了三角函数我们的系统在呼唤。为了缓解这个问题,我们在用C写三角函数近似的功能,并呼吁他们从MATLAB功能块。这些修改不仅增加了传感器融合代码的效率,也使AEBS软件反应速度更快,当车辆在高速公路上行驶,并分秒必争行驶的是至关重要的。

验证和完善设计

我们测试了一个封闭的过程中,车辆的设计,但我们需要知道如何系统将在现实世界的驾驶情况,如不同的天气状况,交通模式和驱动程序的行为作出反应。这将是不切实际的以及不安全的直接测试AEBS在这些条件下。取而代之的是,我们使用了基于仿真的工作流程。我们开始从卡车车队收集数据。我们决定收集从用于传感器融合,以及图片来自单独的参考摄像机,雷达和摄像头的ECU,而不仅仅是数据可用的所有数据。

使用该车队的测试数据,我们跑了模拟,以确定有趣的驾驶情况下,方案中的AEBS干预,以警示驾驶员或从事刹车,并在其中系统可能进行干预的情况,但没有 - 例如,当司机按下喇叭同时制动,急转弯或紧急刹车。着眼于这些场景,我们接着分析了AEBS的性能,以确定我们能够改进设计领域。

我们需要resimulate我们每次更新AEBS软件的时间。然而,有超过80个TB的真实流量数据的记录了超过150万的驾驶公里,花了几天的时间来运行单个模拟。

为了加快仿真,我们建立了利用我们的Simulink模型与嵌入式编码生成的代码的仿真器。万博1manbetx仿真器读取和写入相同MAT文件作为我们的Simulink模型,但速度更快的运行模拟150倍。万博1manbetx为了进一步加快模拟,我们写在我们部门,以及在专用的多处理器服务器,我们跑了并行模拟300上运行多台计算机仿真MATLAB脚本。在此设置下,我们削减到模拟所有1500000公里到短短12小时内所需要的时间。当我们在模拟器中确定了新的有趣的场景,我们重新运行在Simulink仿真分析它的深度。万博1manbetx

识别和分类潜在的有趣的场景tb的数据是一个繁琐和耗时的任务,所以我们开发情况分类助理模块,基于MATLAB工具,自动化,过程的一部分(图5)。该工具生成一个列表从模拟的事件,如碰撞警告,警告刹车,刹车和全由这个系统,以及硬刹车和急转弯发起的司机。然后,我们可以对任何两个版本的软件的这些列表进行比较。

图5。态势分类辅助模块,一个基于MATLAB的工具,用于处理ECU记录数据并自动识别与紧急制动相关的态势。

进行大量模拟的能力增强了对ECU的AEBS功能和产品代码执行的稳健性和安全性。它也使我们能够更快地做出改变。我们因为我们使用所有可用的数据在我们的模拟测试数千个方案曾在这些变化的信心。

部署生成的代码在生产ADAS

现在大多数斯堪尼亚卡车和公交车都配备了从Simulink模型生成,并通过大量的模拟验证AEBS生产运行代码。万博1manbetx我们重用我们在斯堪尼亚的自适应巡航控制系统,传感器融合系统的设计,现在也有在道路上超过10万台。

文章刊登在MathWorks新闻&注释

出版于2016 - 93016v00