该实例展示了如何使用自动驾驶工具箱,利用传感器融合算法实现自动紧急制动(AEB)。
在这个例子中,你:
集成Simulink®和金宝appStateflow®的AEB控制器、传感器融合算法、自我车辆动力学、驾驶场景阅读器、雷达和视觉检测生成器。
使用由此创建的一系列测试场景测试闭环Simulink模型中的AEB系统金宝app驾驶场景设计师应用程序
配置软件循环模拟的代码生成设置,并自动生成控制算法的C代码。
自动紧急制动(AEB)是一种先进的主动安全系统,可以帮助驾驶员避免或减轻与其他车辆或脆弱道路用户的碰撞。AEB系统通过以下措施提高安全性:
通过早期识别关键情况和警告司机来预防事故。
通过降低碰撞速度降低不可避免的崩溃的严重程度。在某些情况下,AEB系统准备车辆和克制系统进行影响[1]。
欧洲新车评估计划(欧洲NCAP)包括2014年的安全评级AEB城市和城市间系统。欧元NCAP继续推广AEB系统,以保护脆弱的道路用户,如行人和骑自行车者。
今天的AEB系统主要使用雷达和视觉传感器来识别自助式车辆前方的潜在碰撞伙伴。通常需要多个传感器进行准确,可靠,鲁棒的检测,同时最小化误报。这就是传感器融合技术对AEB系统起着重要作用的原因。
将示例文件文件夹添加到MATLAB®搜索路径。然后,打开此示例中使用的主要Simuli金宝appnk模型。
AddPath(GenPath(FullFile(MatlaBroot),“例子”那'驾驶')))Open_System('aebtestbenchexample')
该模型由两个主要子系统组成:
具有传感器融合的AEB,其中包含传感器融合算法和AEB控制器。
车辆与环境,它模拟自我车辆动力学和环境。它包括驾驶场景阅读器、雷达和视觉检测生成器。这些块提供对象的合成传感器数据。
要绘制合成传感器检测、跟踪对象和地面真实数据,使用鸟瞰。鸟瞰图是一个模型级可视化工具,可以从“Simulink Model”工具栏上打开。金宝app在这一点模拟标签,下面审查结果, 点击鸟瞰。打开范围后,单击找到信号设置信号。仪表板面板显示自动车辆速度,加速度和自主应急制动(AEB)和前进碰撞警告(FCW)控制器的状态。
使用传感器融合子系统打开AEB控制器。
open_system (“AEBTestBenchExample/AEB传感器融合”)
该子系统包含跟踪和传感器融合算法和速度和AEB控制器。
跟踪和传感器融合子系统处理来自车辆和环境子系统的视觉和雷达检测,并产生相对于自助载体最重要的物体(MIO)轨道的位置和速度。
速度控制器子系统利用比例积分(PI)控制器使自我车辆以驾驶员设定的速度行驶。
当AEB被激活时,加速器机器人子系统释放车辆加速器。
AEB控制器子系统基于停止时间计算方法实现前进碰撞警告(FCW)和AEB控制算法。
停止时间是指自助车首先用减速时施加制动器的时间,,到既完整停止时。停止时间可以通过以下等式获得:
FCW系统会在前方车辆即将发生碰撞时向驾驶员发出警报。司机应该对警报做出反应,并在一定的延迟时间内刹车,。
自我车辆与前车碰撞前的总行驶时间可以表示为:
当铅车辆的碰撞(TTC)变得小于时,FCW警报已激活。
如果驾驶员未能及时应用刹车,例如由于分心,AEB系统独立于驱动器行动以避免或减轻碰撞。AEB系统通常适用级联制动,该制动包括多级局部制动,然后是完全制动[2]。
打开AEB控制器子系统。
open_system ('aebwithsensorfusionmdlref / aeb controller')
AEB控制器由多个功能块组成:
TTCCalculation使用铅载体的相对距离和速度或最重要的物体来计算TTC
stoppingtime计算,分别计算FCW、第一、第二阶段部分制动(PB)和全制动(FB)的停车时间
AEB_Logic,它是一个状态机与停止时间进行比较TTC以确定FCW和AEB激活。
打开车辆和环境子系统。
open_system ('Aebtrestbench表达/车辆和环境')
车辆动态子系统模拟自我车辆动态车辆身体3自由度(车辆动力学块集)车辆动力学块集的单轨块。
驾驶员转向模型子系统生成驾驶员转向角度,以使自我车辆保持在其车道上,并遵循由曲率K定义的曲线道路。
演员和传感器仿真子系统产生跟踪和传感器融合所需的合成传感器数据。在加载Simulink模型之后,金宝app执行回调函数以创建具有道路和多个演员在路上移动的仿真环境。
您也可以通过单击来运行回调函数运行设置脚本从Main Simulink金宝app模型或从命令提示符中键入以下内容:
helperAEBSetUp
您可以从列表中指定与所需方案名称对应的场景编号。
%创建驾驶场景scenariosNames = {%场法'aeb_ccrs_100overlap.mat'那......%1'aeb_ccrm_100overlap.mat'那......%2'aeb_ccrb_2_initialgap_12m_stop_inf.mat'那......%3.“AEB_CCRb_6_initialGap_40m_stop_inf.mat”那......%4.“AEB_PedestrianChild_Nearside_50width_overrun.mat”};%5
场景= 5;
方案名称是由创建的方案文件驾驶场景设计师。
[场景、egoCar actor_Profiles] =......elplersessiontoscenario(方案名称{scenarionumber});
方案文件可以转换为a
对象使用驱动器Cenario.
allowersionttoscenario
脚本。
这情景读者块从场景文件中读取角色摆拍数据。该块将演员的姿势从场景的世界坐标转换为自我载体坐标。演员的姿势在由街区生成的公共汽车上流动。这视觉检测发生器块和雷达检测发生器块分别为目标作用仪合成视觉和雷达检测。
Euro NCAP提供了一系列测试协议,测试汽车到车后部(CCR)和弱势道路用户(VRU)方案中AEB系统的性能。
欧洲NCAP AEB - 汽车到车后试验协议[3]
欧洲NCAP AEB - 易受攻击的道路用户测试协议[4]
自动化驾驶工具箱根据AEB系统的欧洲NCAP测试协议提供预设的驾驶场景。您可以使用审核预设方案驾驶场景设计师。
AEB Simu金宝applink模型读取驱动方案文件并运行模拟。
模拟模型0.1秒。
SIM('aebtestbenchexample'那'停止'那'0.1');模拟0.1秒
鸟瞰镜显示了车辆和儿童行人的地面真实数据。它还展示了雷达检测、视觉检测和多目标跟踪器跟踪的目标。在模拟时间为0.1秒时,由于儿童行人被车辆遮挡,视觉和雷达传感器未能检测到儿童行人。
模拟模型3.8秒。
SIM('aebtestbenchexample'那'停止'那'3.8');%模拟3.8秒
鸟瞰的模拟时间为3.8秒,表明传感器融合和跟踪算法检测到儿童行人作为最重要的物体,并且AEB系统施加了刹车以避免碰撞。
随着鸟瞰图的仪表板面板显示AEB系统施加了级联的制动器,并且自助车辆在碰撞前止动。AEB状态颜色表示AEB激活的级别。
灰色 - 没有AEB被激活。
黄色:一级部分刹车启动。
橙色-第二级部分刹车启动。
红色 - 全刹车被激活。
完成模拟一直到最后收集结果。
SIM('aebtestbenchexample');%模拟到场景结束
查看模拟结果。
螺旋螺纹(Logsout);
第一绘图(TTC与停止时间)示出了FCW,第一级局部制动器,第二级局部制动器,第二级局部制动器和全刹车的时间间冲突(TTC)和停止时间之间的比较。
第二幅图显示了AEB状态机如何根据第一幅图的比较结果确定FCW和AEB的激活。
第三曲线图显示了自我车辆的速度。
第四个图显示了自我车辆的加速度。
第五个图显示了自我车辆和MIO之间的入口。
在前2秒内,自我车辆加速达到设定的速度。2.3秒时,传感器融合算法开始检测儿童行人。检测完成后立即激活FCW。
在2.4秒时,第一阶段部分制动,ego车辆开始减速。在2.5秒时再次进行第二级部分制动。
当自我车辆最终停止3.9秒时,自助式车辆与儿童行人之间的入口约为2.4米。在这种情况下,AEB系统已经完全碰撞。
这AEBWithSensorFusionMdlRef
模型被配置为支持使用Embedded Code金宝appr®软件生成C代码。要检查你是否可以访问Embedded Coder,请运行:
hasembeddedcoderlicense =许可证(“签出”那'rtw_embedded_coder')
您可以为模型生成C函数,并通过运行探索代码生成报告:
如果HasembeddedCoderLicense Slbuild('aebwithsensorfusionmdlref')结尾
您可以使用在循环中的软件(SIL)模拟来验证已编译的C代码是否如预期的那样运行。模拟AccWithsensorfusionmdlref.
SIL模式中引用模型,使用:
如果hasembeddedcoderlicense set_param(“AEBTestBenchExample/AEB传感器融合”那......'simulationmode'那'软件 - 循环(SIL)')结尾
当你运行时AebtstBenchexample.
模型,代码生成,编译和执行AEBWithSensorFusionMdlRef
模型。这使您可以通过仿真来测试编译代码的行为。
在本例中,您使用闭环Simulink模型实现了一个AEB系统。金宝app该模型由Simulink和基于statflow的A金宝appEB控制器、传感器融合算法、自我车辆动力学、驾驶场景阅读器、雷达和视觉检测生成器组成。
您使用由创建的一系列测试场景测试了AEB系统驾驶场景设计师。
您现在可以使用其他欧洲NCAP测试场景测试AEB系统。这些可以从驾驶场景设计师。
从MATLAB搜索路径删除示例文件文件夹。
RMPATH(GenPath(FullFile(Matlabroot,“例子”那'驾驶'))))
[1]欧元ncap |欧洲新车评估计划。欧洲五星
[2] W.Hulshof,等,等,“自主应急制动测试结果”,第23届国际车辆(ESV)安全的国际技术会议,纸张编号13-0168,2013
[3]欧洲NCAP测试协议- AEB系统,版本。2017年11月,2.0.1。
[4]欧元NCAP测试协议 - AEB VRU Systems,Ver。2.0.2,2017年11月。