主要内容

使用传感器融合和车道检测控制后巷道

此示例显示了如何模拟和生成汽车通道后控制器的代码。

在这个例子中,你:

  1. 回顾一种结合了传感器融合、车道检测和来自模型预测控制工具箱™软件的车道跟踪控制器的控制算法。

  2. 使用自动驾驶工具箱软件生成的合成数据,在闭环Simulink®模型中测试控制系统。万博1manbetx

  3. 配置循环仿真的代码生成设置,并自动生成控制算法的代码。

介绍

车道之后的系统是一种控制系统,该控制系统使车辆在高速公路的标记通道内行驶,同时保持与前车辆的用户设定的速度或安全距离。一个车道之后的系统包括组合自助式车辆的纵向和横向控制:

  • 纵向控制 - 通过调整自工载体的加速度,保持驾驶员设定的速度并保持与前车的安全距离。

  • 侧向控制 - 通过调整自工载体的转向,保持沿着巷道的中心线行驶的自我车辆

组合车道跟踪控制系统实现了车道纵向和横向的单独控制目标。此外,当两个目标不能同时满足时,车道跟随控制系统可以调整这两个目标的优先级。

有关使用带传感器融合的自适应巡航控制(ACC)的纵向控制的一个例子,请参阅传感器融合的自适应巡航控制。有关使用车道检测的车道保持辅助(LKA)系统的侧向控制的示例,请参阅LANE保持辅助车道检测。ACC示例假设理想的车道检测,LKA示例不会考虑周围的车辆。

在该示例中,考虑了两条车道检测和周围的汽车。系统后巷道合成来自视觉和雷达检测的数据,估计车道中心和铅轿厢距离,并计算自我车辆的纵向加速度和转向角。

开放式测试台模型

打开Simulin万博1manbetxk测试台模型。

Open_System('lanefollowingtestbenchexample'

该模型包含四个主要组件:

  1. 控制器之后的车道 - 控制自助车辆的纵向加速度和前舵角

  2. 车辆和环境 - 模型自我车辆的运动和模型环境

  3. 碰撞检测 - 当检测到自我车辆和铅车辆的碰撞时停止模拟

  4. MIO跟踪-使MIO跟踪显示在鸟瞰镜。

打开此模型还可以运行helperLFSetUp脚本,该脚本通过加载Simulink模型所需的常量来初始化模型所使用的数据,例如车辆模型参数、控制器设计参数、道路场景和周围的车辆。万博1manbetx

画出自我承载的道路和路径。

情节(方案)

为了绘制仿真结果,并描述自我车辆周围环境和被跟踪对象,使用鸟瞰的范围(自动驾驶工具箱)。鸟瞰图是一个模型级可视化工具,可以从Simulink ToolStrip打开。万博1manbetx在这一点模拟选项卡,在审查结果, 点击鸟瞰的范围。打开范围后,点击设置信号找到信号

要获得中模仿真视图,模拟模型10.秒。

SIM('lanefollowingtestbenchexample'“StopTime”'10'

在模拟型号10秒后,打开鸟瞰的范围。在Scope ToolStrip中,要显示World Comordinates View的方案,请单击世界坐标。在这种观点中,自我车辆被圈出来。要显示车辆协调视图的图例,请单击传奇

鸟瞰镜显示了传感器融合的结果。它展示了雷达和视觉传感器如何在其覆盖范围内检测车辆。它还显示了由多对象跟踪器块维护的轨迹。黄色轨道表示最重要的目标(MIO),即在自我车辆的车道中距离它最近的轨道。理想的车道标记也与综合检测的左、右车道边界(以红色显示)一起显示。

在场景的最后模拟模型。

SIM('lanefollowingtestbenchexample'
假设没有添加到测量的输出通道#3中的干扰。- >假设添加到测量的输出干扰,输出通道#2是集成的白噪声。假设没有添加到测量的输出通道#1中的干扰。- >假设添加到测量的输出干扰,输出通道#4是集成的白噪声。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

绘制控制器性能。

plotlfreesults(logsout,time_gap,default_spacing)

第一个图显示了以下间距控制性能结果。

  • 速度情节表明,自我车辆将速度控制从0到11秒保持,从11到16秒切换到间距控制,然后切换回速度控制。

  • 两辆车之间的距离绘图表明,铅车辆和自助车辆之间的实际距离总是大于安全距离。

  • 加速图表明,自助式车辆的加速度是光滑的。

  • 碰撞状态绘图表明,检测到铅车辆和自助车辆之间的碰撞,因此自我车辆以安全模式运行。

第二个图显示了以下横向控制性能结果。

  • 横向偏差图表明与车道中心线的距离在0.2米范围内。

  • 相对偏航角度绘图表明,相对于车道中心线的偏航角误差在0.03 rar(小于2度)。

  • 转向角度图表明自助式车辆的转向角是光滑的。

探索控制器后的车道

车道跟踪控制器子系统包括车道中心估计、跟踪与传感器融合、MPC控制器三个主要部分

Open_System('LaneSeallingTestBenchexample / Lane后面控制器'

估算车道中心子系统将车道传感器数据输出到MPC控制器。预览曲率提供了自助式车辆前方车道曲率的中心线。在该示例中,自我车辆可以向前看3秒,这是预测地平线和控制器采样时间的乘积。控制器使用预览信息来计算EGO车辆转向角,这提高了MPC控制器性能。横向偏差测量自我车辆与车道的中心线之间的距离。相对偏航角度测量自我车辆和道路之间的偏航角差。子系统内的ISO 8855到SAE J670E块将使用ISO 8855的车道检测转换为使用SAE J670E的MPC控制器。

跟踪和传感器融合子系统处理来自车辆和环境子系统的视觉和雷达检测,并在自我车辆周围产生环境的综合情况。此外,它提供了在控制器前面的控制器之后的车道,其在自我车辆前面的车道中最近的车辆。

MPC控制器块的目标是:

  • 维持驾驶员设定的速度并保持距离铅车辆的安全距离。通过控制纵向加速来实现这一目标。

  • 保持自我车辆在车道的中间;这就是减少侧偏$ e_ {横向} $相对偏航角美元E_{偏航}$,通过控制转向角度。

  • 道路弯曲时,减慢自我车辆。为实现这一目标,MPC控制器在横向偏差上具有比纵向速度更大的罚款权重。

MPC控制器基于输入的掩模参数在路径(PFC)系统块之后设计,设计的MPC控制器是自适应MPC,其在运行时更新车辆模型。车道之后的控制器根据以下输入计算自我车辆的纵向加速度和转向角:

  • 司机让速度

  • 自我车辆纵向速度

  • 预览的曲率(从车道检测中得到)

  • 横向偏差(来自车道检测)

  • 相对横摆角(来自车道检测)

  • 铅车辆和自助式车辆之间的相对距离(来自跟踪和传感器融合系统)

  • 铅车辆和自助式车辆之间的相对速度(从跟踪和传感器融合系统)

考虑到自助式车辆的物理限制,转向角受到约束为在[-0.26,0.26]的范围内,并且纵向加速度被约束为在[-3,2] m / s ^ 2内。

探索车辆和环境

车辆和环境子系统使控制器之后的车道闭环模拟。

Open_System('LaneAledingtestbench表演/车辆和环境'

System Latency块对系统中模型输入和输出之间的延迟进行建模。延迟可以由传感器延迟或通信延迟引起。在本例中,延迟近似为一个样本时间T_s = 0.1美元秒。

车辆动态子系统使用来自车辆动态Bloctset™的自行车模型 - 力输入块来模拟车辆动态。较低级别的动态由一阶线性系统建模,其中时间常数$ \ tau = 0.5 $秒。

SAE J670E至ISO 8855子系统将使用SAE J670E的车辆动力学(Vehicle Dynamics)坐标转换为使用ISO 8855的场景阅读器(Scenario Reader)。

情景读者(自动驾驶工具箱)块从场景文件中读取角色摆拍数据。该块将演员的姿势从场景的世界坐标转换为自我载体坐标。演员的姿势在由街区生成的公共汽车上流动。场景读取器块还根据所使用场景中车辆的位置生成理想的左车道和右车道边界helperLFSetUp

视觉检测生成器块从场景读取器块中获取理想的车道边界。检测发生器对单目摄像机的视场进行建模,确定每个道路边界的航向角、曲率、曲率导数和有效长度,并考虑任何其他障碍。雷达检测块根据场景中定义的雷达横截面,从雷达视场中的地面真实数据生成点检测。

运行用于多个测试场景的控制器

这个示例使用了基于ISO标准和真实场景的多个测试场景。为了验证控制器的性能,您可以对控制器进行多种场景的测试,并在控制器性能不理想时进行参数调整。这样做:

  1. 通过更改选择方案scenarioIdhelperLFSetUp

  2. 通过运行配置仿真参数helperLFSetUp

  3. 使用所选方案模拟模型。

  4. 使用Plotlfresults.

  5. 如果性能不令人满意,请调整控制器参数。

您可以使用Simulink Test™自动化控制器的验证和验证。万博1manbetx

为控制算法生成代码

lfrefmdl.模型支持使用万博1manbetx嵌入式码头软件生成C代码。要检查您是否可以访问嵌入式编码器,请运行:

hasEmbeddedCoderLicense =许可证('查看''rtw_embedded_coder'

您可以为模型生成C函数,并通过运行探索代码生成报告:

如果HasembeddedCoderLicense Slbuild('lfrefmdl'结束

您可以验证编译的C代码是否与循环(SIL)模拟的预期行为。模拟这一点lfrefmdl.SIL模式中引用模型,使用:

如果hasembeddedcoderlicense set_param('LaneSeallingTestBenchexample / Lane后面控制器'......'simulationmode''软件 - 循环(SIL)'结束

当你运行lanealedingtestbenchexample.模型,则生成、编译和执行代码lfrefmdl.模型,它使您能够通过模拟测试编译代码的行为。

结论

此示例显示如何在具有传感器融合和车道检测的弯曲道路上实现控制器后控制器,使用自动化驾驶工具箱软件的综合数据进行模拟数据,将其组装为Supportic Data,并自动为其生成代码。万博1manbetx

全部bdclose全部

另请参阅

相关话题