主要内容

自动紧急制动与传感器融合

这个例子展示了如何使用传感器融合算法实现自动紧急制动(AEB)。

简介

自动紧急制动是一种先进的主动安全系统,可以帮助驾驶员避免或减轻与其他车辆的碰撞。

欧洲新车评估计划(Euro NCAP®)自2014年起将AEB城市和城际系统纳入其安全评级。欧洲NCAP继续推广AEB系统,以保护行人和骑自行车的弱势道路使用者。

如今,AEB系统主要使用雷达和视觉传感器在自我车辆之前识别潜在的碰撞伙伴。这些系统通常需要多个传感器来获得准确、可靠和健壮的检测,同时最小化假阳性。为了结合来自不同传感器的数据,多传感器AEB系统使用传感器融合技术。这个例子展示了如何使用传感器融合算法实现AEB。在这个例子中,你:

  1. 探索试验台模型-模型包含传感器和环境、传感器融合和跟踪、决策逻辑、控制和车辆动力学。

  2. 建模AEB控制器-使用Simulink®和Stateflow®集成制动控制器用于制动控制和非线性模型预测控制器(NLMPC)用于加速和转向控制。

  3. 模拟试验台模型—根据Euro NCAP测试协议配置不同场景的测试台架模型。

  4. 生成c++代码-生成c++代码,并测试传感器融合、决策逻辑和控制算法的软件在环仿真。

  5. 探索更多的场景—这些场景在附加条件下测试系统。

探索试验台模型

在本例中,您使用系统级仿真试验台模型来探索AEB系统的控制器行为。

要探索测试工作台模型,打开项目示例文件的工作副本。MATLAB®将文件复制到一个示例文件夹中,以便您可以编辑它们。

目录(fullfile (matlabroot,“工具箱”“开车”“drivingdemos”) helperDrivingProjectSetup (“AutonomousEmergencyBraking.zip”workDir = pwd);

为了减少命令窗口输出,关闭模型预测控制器(MPC)更新消息。

mpcverbosity (“关闭”);

打开系统级仿真测试台架模型。

open_system (“AEBTestBench”);

打开此模型运行helperSLAEBSetup方法初始化场景drivingScenario对象。它运行默认的测试场景,scenario_25_AEB_PedestrianTurning_Nearside_10kph其中包含一个自我车辆和一个行人。该设置功能还配置控制器设计参数,车辆模型参数,以及定义输入和输出所需的Simulink总线信号AEBTestBench模型。

测试台架模型包含以下模块:

  • 传感器和环境-子系统,指定用于模拟的道路、参与者、摄像机和雷达传感器。

  • 传感器融合与跟踪-融合摄像头和雷达传感器的车辆检测的算法模型。

  • AEB决策逻辑-算法模型,指定横向和纵向决策逻辑,为控制器提供最重要的对象(MIO)相关信息和自我车辆参考路径信息。

  • AEB控制器-指定转向角度和加速控制的算法模型。

  • 车辆动力学—子系统,指定自我车辆的动态模型。

  • 指标的评估-评估系统级行为的子系统。

车辆动力学子系统使用自行车模型建模自我车辆,并使用从AEB控制器模型。有关的详细信息车辆动力学子系统,看到高速公路车道后的例子。

要绘制合成传感器探测、跟踪对象和地面真相数据,请使用鸟瞰的范围.的鸟瞰的范围是一个模型级可视化工具,您可以从Simulink模型工具栏打开它。在模拟选项卡,在审查结果,点击鸟瞰的范围.打开范围后,单击更新信号设置信号。仪表板显示这些自我车辆参数:速度,加速度,AEB状态,前方碰撞警告(FCW)状态和安全状态。

传感器和环境子系统配置路网,定义目标行为体轨迹,并合成传感器。打开传感器和环境子系统。

open_system (“AEBTestBench /传感器和环境”

子系统使用这些块指定自我载具的场景和传感器:

  • 场景的读者块读取drivingScenario对象,然后从该对象读取参与者数据。该块利用自我载具信息进行闭环仿真,然后在自我载具坐标中输出场景行为人及其轨迹的地面真相信息。

  • 驾驶雷达数据发生器Block从驾驶场景生成雷达传感器数据。

  • 视觉检测发电机Block通过安装在自我交通工具上的摄像头产生检测和测量结果。

  • 参考路径信息块为自我车辆导航提供了一个预定义的参考轨迹。方法创建块中的引用路径helperEgoRefPathCreatorhelper函数。

传感器融合与跟踪算法模型处理视觉和雷达检测,生成轨道相对于自我车辆的位置和速度。打开AEBSensorFusion算法模型。

open_system (“AEBSensorFusion”);

AEBSensorFusion模型包含这些块:

  • 检测串联-将视觉和雷达检测合并到单个输出总线上。

  • 多目标跟踪器—执行传感器融合和输出静止和移动物体的轨迹。这些轨道更新在预测的时间中的数字时钟块指定传感器和环境子系统。

AEBDecisionLogic算法模型基于预定义的自我参考路径和轨迹,指定了横向和纵向决策。打开AEBDecisionLogic算法模型。

open_system (“AEBDecisionLogic”);

AEB决策逻辑算法模型包含以下几个块:

  • 自我参考路径生成器-利用自我车辆的当前位置和参考路径信息估计自我车辆的曲率、相对偏航角和横向偏差传感器和环境子系统。方块也决定了自我载体是否达到了目标。

  • 发现领导的车-找到领头车,也就是在同一车道自我车前面的MIO。这个模块输出自我载具和MIO之间的相对距离和相对速度。

模型AEB控制器

AEBController算法模型实现了指定纵向和横向控制的主算法。打开AEBController算法模型。

open_system (“AEBController”);

AEBController模型包含以下子系统:

  • 控制器模式选择器-当AEB被激活时释放车辆加速器。

  • NLMPC控制器-读取自我车辆的纵向速度、曲率序列、相对偏航角和横向偏差,然后输出自我车辆的转向角和加速度。打开NLMPC控制器引用的子系统。

open_system (“AEBController / NLMPC控制器”

本例使用了一个具有七个状态、三个输出变量和两个操作变量的预测模型的非线性MPC控制器。

  • 横向速度

  • 偏航率

  • 纵向速度

  • 纵向加速度

  • 横向偏差

  • 相对偏航角

  • 相对偏航角的输出扰动

输出变量

  • 纵向速度

  • 横向偏差

  • 偏航角和偏航角输出扰动之和

被操纵的变量

  • 加速度

  • 操舵

该控制器将道路曲率和纵向速度的乘积作为测量扰动进行建模。预测层位和控制层位由helperSLAEBSetup函数。非线性装置模型的状态函数及其雅可比矩阵由helperNLMPCStateFcn功能和helperNLMPCStateJacFcn函数,分别。NLMPC控制器的连续时间预测模型使用了中定义的输出方程helperNLMPCOutputFcn函数。操作变量的约束条件和标准MPC代价函数中的权重定义在helperSLAEBSetup函数时创建nlmpc对象。在这个例子中,NLMPC控制器不支持自我车辆的零初始速度。

在本例中,扩展卡尔曼滤波器(EKF)为七个状态提供状态估计。中定义了EKF的状态转移函数helperEKFStateFcn函数中定义了测量函数helperEKFMeasFcn函数。有关设计非线性MPC控制器的详细信息,请参见基于非线性模型预测控制的车道跟随(模型预测控制工具箱)

制动控制器子系统实现了基于停止时间计算方法的FCW和AEB控制算法。

停止时间$ {\ tau_{停止}}$指的是从自我车辆第一次刹车开始的时间,美元现代{制动}$,直到它完全停止。你可以用这个等式来计算停止时间:

$ \ tau_{停止}= v_{自我}/现代{制动}$

在哪里美元v_{自我}$是自我载体的速度。

FCW系统在与前导车辆即将发生碰撞时向驾驶员发出警报。司机会对警报做出反应,并在延迟时间内刹车,$ \ tau_{反应}$

自我车在与前车相撞前的总行驶时间可表示为:

$ $ \ tau_{结合}= \ tau_{反应}+ \ tau_{停止}= \ tau_{反应}+ v_{自我}/现代{司机}$ $

当与前车碰撞时间(TTC)小于$ \ tau_{结合}$, FCW警报激活。

如果驾驶员因分心等原因未能及时刹车,AEB系统将独立于驾驶员发挥作用,以避免或减轻碰撞。AEB系统通常采用级联制动,包括多级部分制动和全制动[1]。

打开制动控制器子系统。

open_system (“AEBController /制动控制器”

制动控制器子系统包含这些块:

  • TTCCalculation-使用前车的相对距离和速度计算TTC。

  • StoppingTimeCalculation-计算FCW、第一和第二阶段部分制动(PB)和完全制动(FB)的停止时间。

  • AEBLogic-状态机,将TTC与计算的停止时间进行比较,以确定FCW和AEB激活。

AEB控制器输出转向角度和加速命令,决定是加速还是减速。

探索指标评估

指标的评估子系统支持使用场景中的地面真相信息进行系统级度量评估。打开指标的评估子系统。

open_system (“AEBTestBench /指标评估”);

在本例中,您可以使用以下指标来评估AEB系统:

  • 检查碰撞-验证自我载具在模拟过程中的任何一点是否与目标参与者碰撞。

  • 检查安全-验证自我载具是否在规定的阈值内safetyGoal在整个模拟。使用helperAEBSetup后加载回调函数来定义safetyGoal

模拟AEB模型

基于Euro NCAP测试协议的场景模拟测试台架模型。Euro NCAP提供了一系列测试协议,用于测试AEB系统在车对车后部(CCR)[2]和脆弱道路用户(VRU)[3]场景下的性能。

本例使用这两个场景的闭环模拟。然后分析结果。

  • scenario_23_AEB_PedestrianChild_Nearside_50width

  • scenario_25_AEB_PedestrianTurning_Nearside_10kph

模拟scenario_23_AEB_PedestrianChild_Nearside_50width

配置AEBTestBench模型scenario_23_AEB_PedestrianChild_Nearside_50width场景。在这个场景中,一个儿童行人正从马路的右侧向左侧过马路。向前行驶的自我车辆与儿童行人相撞。在碰撞时,行人是自我车辆宽度的50%。

helperSLAEBSetup (scenarioFcnName =“scenario_23_AEB_PedestrianChild_Nearside_50width”);

测试台架模型读取drivingScenario对象并运行模拟。

模拟模型0.1秒。

sim卡(“AEBTestBench”StopTime =“0.1”);模拟0.1秒

鸟瞰的范围显示车辆和儿童行人的地面真实数据。它还显示雷达探测、视觉探测和多目标跟踪器跟踪的对象。在0.1秒的模拟时间内,摄像头和雷达传感器不会检测到儿童行人,因为其他车辆阻碍了他们的视线。

模拟模型2.8秒。

sim卡(“AEBTestBench”StopTime =“2.8”);模拟2.8秒

更新鸟瞰瞄准镜。注意,传感器融合和跟踪算法检测儿童行人作为MIO, AEB系统应用刹车以避免碰撞。

仪表板显示AEB系统采用级联制动,在碰撞点前将自我车辆停止。AEB指示灯的颜色表示AEB激活的程度。

  • 灰色- AEB未激活。

  • 黄色-第一级部分制动被激活。

  • 橙色-第二级部分制动被激活。

  • 红色-全刹车被激活。

将场景模拟到最后。然后,通过使用helperPlotAEBResultshelper函数。

sim卡(“AEBTestBench”);模拟到场景结束helperPlotAEBResults (logsout scenarioFcnName);

  • TTC vs.停止时间-分别比较了FCW、一级部分制动、二级部分制动和完全制动的碰撞时间和停止时间。

  • FCW和AEB状态—根据第一张图的对比结果显示FCW和AEB的激活状态。

  • 自我汽车加速度-显示自我载具的加速。

  • 自我汽车偏航和偏航率-显示自我飞行器的偏航和偏航率。

  • 自我的车速度-显示自我载具的速度。

  • 进展-显示自我载具和MIO之间的距离。

在最初的2秒内,自我交通工具会加速达到指定的速度。在2.3秒时,传感器首先检测到儿童行人。检测到后,FCW系统立即启动。

在2.4秒时,AEB系统应用第一级部分制动,自我车辆开始减速。

当自我交通工具在4.1秒时完全停下来时,自我交通工具与儿童行人之间的距离约为2.1米。在这种情况下,AEB系统完全避免了碰撞。

模拟与scenario_25_AEB_PedestrianTurning_Nearside_10kph

配置AEBTestBench模型scenario_25_AEB_PedestrianTurning_Nearside_10kph场景。在这个场景中,自我车辆在十字路口右转,与从十字路口对面过马路的成年行人相撞。在碰撞时,行人在自我车辆正面结构宽度的50%处。

helperSLAEBSetup (scenarioFcnName =“scenario_25_AEB_PedestrianTurning_Nearside_10kph”);

模拟模型并绘制结果图。

sim卡(“AEBTestBench”);helperPlotAEBResults (logsout scenarioFcnName);

在最初的9.5秒内,自我交通工具以指定的速度行驶。在9.5秒后,在自我车辆右转之后,传感器首先检测到十字路口的行人。尽管自我车辆与行人之间的距离很短,但由于自我车辆的速度较低,AEB系统只应用第一个部分制动。

生成c++代码

如果您拥有Simulink Coder™和Embedded Coder™的许可证,您可以为算法模型生成现成的部署代码,如嵌入式实时(ERT)目标的AEB传感器融合、AEB决策逻辑和AEB控制器。

您可以使用软件在环模拟来验证编译后的c++代码是否如预期的那样运行。要在SIL模式中模拟引用的模型,请输入以下命令。

set_param(“AEBTestBench/传感器融合和跟踪”,…SimulationMode="软件在环(SIL)") set_param("AEBTestBench/AEB决策逻辑",…SimulationMode="软件在环中(SIL)") set_param("AEBTestBench/AEB Controller",…SimulationMode = " Software-in-the-loop (SIL)”)

当您运行AEBTestBench模型中生成、编译和执行的代码AEBSensorFusionAEBDecisionLogic而且AEBController模型。这使您能够通过模拟测试已编译代码的行为。

探索更多的场景

的系统行为scenario_25_AEB_PedestrianTurning_Nearside_10kph而且scenario_23_AEB_PedestrianChild_Nearside_50width场景。方法兼容的其他场景AEBTestBench模型:

  • scenario_01_AEB_Bicyclist_Longitudinal_25width

  • scenario_02_AEB_Bicyclist_Longitudinal_50width

  • scenario_03_AEB_Bicyclist_Longitudinal_75width

  • scenario_04_AEB_CCRb_2_initialGap_12m

  • scenario_05_AEB_CCRb_2_initialGap_40m

  • scenario_06_AEB_CCRb_6_initialGap_12m

  • scenario_07_AEB_CCRb_6_initialGap_40m

  • scenario_08_AEB_CCRm_50overlap

  • scenario_09_AEB_CCRm__50overlap

  • scenario_10_AEB_CCRm_75overlap

  • scenario_11_AEB_CCRm__75overlap

  • scenario_12_AEB_CCRm_100overlap

  • scenario_13_AEB_CCRs_50overlap

  • scenario_14_AEB_CCRs__50overlap

  • scenario_15_AEB_CCRs_75overlap

  • scenario_16_AEB_CCRs__75overlap

  • scenario_17_AEB_CCRs_100overlap

  • scenario_18_AEB_Pedestrian_Farside_50width

  • scenario_19_AEB_Pedestrian_Longitudinal_25width

  • scenario_20_AEB_Pedestrian_Longitudinal_50width

  • scenario_21_AEB_Pedestrian_Nearside_25width

  • scenario_22_AEB_Pedestrian_Nearside_75width

  • scenario_23_AEB_PedestrianChild_Nearside_50width

  • scenario_24_AEB_PedestrianTurning_Farside_10kph

  • scenario_25_AEB_PedestrianTurning_Nearside_10kph(默认)

  • scenario_26_AEB_CCFtap_VUT_10kph_GVT_30kph

方法创建了这些场景驾驶场景设计师App,然后导出到场景文件。您可以配置AEBTestBench模型和工作区来模拟这些场景helperSLAEBSetup函数。的模拟配置scenario_01_AEB_Bicyclist_Longitudinal_25width场景下,输入此命令。

helperSLAEBSetup (scenarioFcnName =“scenario_01_AEB_Bicyclist_Longitudinal_25width”);

完成此示例后,再次启用MPC更新消息。

mpcverbosity (“上”);

参考文献

[1] Hulshof, Wesley, Iain Knight, Alix Edwards, Matthew Avery和Colin Grover。"自动紧急制动试验结果"在第二十三届加强车辆安全国际技术会议论文集论文号13-0168。首尔,韩国:ESV会议,2013。

[2]欧洲新车评估计划(Euro NCAP)。测试协议- _AEB系统.2.0.1版本。2017年11月,欧洲NCAP。

[3]欧洲新车评估计划(Euro NCAP)。测试协议- AEB VRU系统.2.0.2版本。2017年11月,欧洲NCAP。

另请参阅

应用程序

对象

相关的话题

Baidu
map