主要内容

高速公路车道改变

这个例子展示了如何模拟自动变道机动系统的公路驾驶场景。

介绍

自动车道更换机动(LCM)系统使自动车辆能够自动从一条车道移动到另一个车道。LCM系统为自动通道变化进行纵向和横向控制动态。LCM系统使用板载传感器感测最重要的对象(MIIO)的环境,识别避免这些物体的最佳轨迹,并沿着该轨迹操纵自我车辆。

这个例子展示了如何设计和测试LCM系统的规划器和控制器组件。在本例中,变道规划师使用场景中的地面真实信息来检测mio。然后生成一个可行的轨迹来协商由变道控制器执行的变道。在这个例子中,你:

  • 探索测试平台模型-模型包含规划、控制、车辆动态、场景和评估功能的指标。

  • 建立变道规划师模型-参考模型查找MIO,采样自我车辆的终端状态,生成最优轨迹。

  • 模型车道更换控制器- 此模型基于所生成的轨迹为自我车辆生成控制命令。

  • 模拟和可视化系统行为- 测试台模型配置为测试规划和控件的集成,以便在具有多个车辆的弯曲道路上执行车道更换操作。

  • 探索其他场景- 这些方案在额外的条件下测试系统。

您可以应用在此示例中使用的建模模式来测试LCM系统的自己的策划器和控制器组件。

探索测试台模型

在此示例中,您可以使用系统级仿真测试台模型来探索车道更换机动系统的规划器和控制器组件的行为。

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

AddPath(FullFile(MatlaBroot,“工具箱”'驾驶'“drivingdemos”));helperDrivingProjectSetup (“HighwayLaneChange.zip”“workDir”,PWD);

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

open_system (“HighwayLaneChangeTestBench”

打开此模型运行helperSLHighwayLaneChangeSetup脚本,该脚本使用驱动器Cenario.对象在基本工作区中。它还配置规划器配置参数,控制器设计参数,车辆模型参数,以及定义输入和输出所需的Simulink®总线信号万博1manbetxHighwayLaneChangeTestBench模型。

测试台模型包含以下子系统。

  • 场景和环境-指定用于模拟的场景、车辆和地图数据的子系统。

  • 规划器配置参数-子系统,指定规划器算法所需的配置参数。

  • 高速公路变道规划师-实现高速公路变道规划师算法的子系统。

  • 变道控制器-指定路径跟随控制器的子系统,该控制器生成控制命令以引导自我车辆沿所生成的轨迹行驶。

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

  • 度量评估——指定度量来评估系统级行为的子系统。

车辆动态子系统使用A模拟自助式车辆自行车模型并使用从变道控制器接收的命令更新其状态。有关车辆动力学子系统的详细信息,请参见高速公路车道后的例子。

方案和环境子系统使用场景的读者提供封堵路网和车辆地面真实位置。该块还输出高速公路变道规划算法所需的地图数据。打开Scenario和Environment子系统。

open_system (“HighwayLaneChangeTestBench /场景和环境”

场景的读者块被配置为读取驱动器Cenario.对象。它使用这个对象来读取参与者数据。它吸收自我车辆信息进行闭环仿真。该模块以自我车辆坐标输出车道和行动者的地面真实信息。的汽车世界块用于将目标车辆位置从车辆坐标转换为世界坐标。这个子系统从基本工作空间读取地图数据,并输出关于车道和参考路径的信息。

Planner Configuration Parameters子系统使用常量块读取基本工作区变量,并使用总线Creator块构造总线结构。由这个子系统创建的总线由变道规划器使用。

高速公路变道规划师参考模型使用世界坐标、地图数据和规划师配置参数中的地面真实actor位置来执行自动变道机动的轨迹规划。

模型高速公路变道规划师

高速公路车道改变策划仪参考模型实现了高速公路车道改变系统的主要算法。该模型使用FERNET坐标系找到自我车辆周围的MIO。随后,模型样本用于不同行为的终端状态,预测目标演员的运动,并生成多个轨迹。最后,该模型评估了产生的轨迹的成本并检查了碰撞和运动可行性的可能性,以估计最佳轨迹。打开高速公路车道改变策划员参考模型。

open_system (“HighwayLaneChangePlanner”

高速公路变道规划师模型包含以下模块:

  • 弗涅特状态转换模块将场景中自我载体和其他载体的姿态从世界坐标转换为弗涅特坐标系统。

  • 查找MiOS块标识自助式车辆周围的最重要的物体(MIO)。

  • 终端状态采样器块对巡航控制、引导车辆跟踪和变道行为的终端状态进行采样。运动预测模块对mio的运动进行预测。

  • Motion Planner参考模型从采样的轨迹生成最优轨迹。该模型通过检测采样轨迹的成本、可行性和碰撞可能性来确定最优轨迹。这个块也计算自我飞行器要跟随的轨迹上的适当点。有关高速公路车道变更规划的更多信息,请参见为高速公路车道改变规划师生成代码

模型变道控制器

车道改变控制器参考模型模拟了一种路径,该路径在跟踪沿着所产生的轨迹的同时保持自我车辆在跟踪设定的速度的同时。为此,控制器调整自助车辆的纵向加速度和前转向角。控制器使用自适应模型预测控制(MPC)来满足速度,加速度和转向角约束的同时计算最佳控制动作。打开车道更换控制器参考模型。

open_system ('lanechangecontroller'

  • 虚拟通道中心子系统从路径点创建虚拟通道。虚拟通道匹配路径后控制器块所需的格式。

  • 曲率预览子系统将轨迹转换为路径跟随控制器模块所需的曲率输入。

  • 路径跟踪控制器块使用路径跟踪控制系统(模型预测控制工具箱)块从模型预测控制工具箱™。

路径跟踪控制器模块保持车辆在高速公路的标记车道内行驶,同时保持用户设置的速度。该控制器包括自我车辆的纵向和横向组合控制:

  • 纵向控制保持用户设定的自我车辆速度。

  • 横向控制是通过调节自我车辆的转向来保持自我车辆在车道中心线上行驶。

探索度量标准评估

指标评估子系统使用下面提到的度量评估LCM系统的系统级别行为。打开度量评估子系统。

open_system (“HighwayLaneChangeTestBench /指标评估”

  • DetectCollision块检测自我车辆与其他车辆的碰撞,如果检测到碰撞,则停止仿真。

  • DetectLeadVehicle块计算自我和铅车之间的入口,用于计算TimeGap价值。

  • TimeGap计算值使用距离领先车辆(车头时距)和自我车辆的纵向速度,并根据规定的限制进行评估。

  • LongitudinalJerk值计算使用纵向速度和评估规定的限制。

  • LateralJerk使用针对规定限制评估的横向速度来计算值。

模拟和可视化系统行为

设置并运行HighwayLaneChangeTestBench在变道过程中可视化系统行为的仿真模型。模型中的可视化块创建了一个MATLAB图形,显示了场景的追逐视图和俯视图,绘制了ego车辆、采样轨迹、胶囊列表和场景中的其他车辆。配置HighwayLaneChangeTestBench模型来使用scenario_LC_15_StopnGo_Curved场景。

helperSLHighwayLaneChangeSetup (“scenarioFcnName”“scenario_LC_15_StopnGo_Curved”

模拟模型5秒。变道规划师参考模型生成一个轨迹来导航车辆在场景中。要减少命令窗口输出,首先关闭MPC更新消息。

mpcverbosity (“关闭”);sim卡(“HighwayLaneChangeTestBench”“StopTime”“5”);

关闭图。

hLCPlot = findobj ('类型''数字'“名字”“变道状况图”);如果~ isempty (hLCPlot)关闭(hLCPlot);结尾

运行模拟8秒。变道规划师参考模型生成一个轨迹以导航较慢的前导车辆。

sim卡(“HighwayLaneChangeTestBench”“StopTime”“8”);

关闭图。

hLCPlot = findobj ('类型''数字'“名字”“变道状况图”);如果~ isempty (hLCPlot)关闭(hLCPlot);结尾

运行模拟18秒。车道改变策划器参考模型产生轨迹以将车辆导航到左车道,然后避免与缓慢移动的引线车辆碰撞。观察到自助车辆执行车道两次改变以避免碰撞,同时保持设定的速度。

simout = sim卡(“HighwayLaneChangeTestBench”“StopTime”“18”);

关闭图。

hLCPlot = findobj ('类型''数字'“名字”“变道状况图”);如果~ isempty (hLCPlot)关闭(hLCPlot);结尾

在仿真过程中,模型将信号记录为基础工作区logsout.控件可以分析仿真结果并调试系统行为中的任何故障helperAnalyzeLCSimulationResults功能。该函数创建了MATLAB图形和绘图追逐方案的视图。图中的滑块使您可以选择所需的模拟步骤来分析这些窗格中显示的不同参数:

  • 追逐视图-显示场景的追逐视图,显示自我车辆,采样轨迹,胶囊列表,和其他车辆。

  • 轨迹信息- 显示采样轨迹的不同属性。突出显示的行通过使用相同的颜色编码来显示采样轨迹的类型,如追逐视图所示。

  • 绪的信息- 显示识别的MIIO的不同属性。行的颜色与相应车辆的面色匹配。

  • 模式- 显示自助式车辆的所选行为。

  • 自我速度-显示自我车辆的速度。单位是米每秒。

  • 仿真步骤-显示模拟步骤数设置使用滑块。

  • 仿真时间—显示模拟步长对应的时间。单位是米。

  • 自我状态-显示自我车辆和识别的前车的参数。

  • 计划参数—显示规划器的配置参数。

运行脚本并研究情节。

helperAnalyzeLCSimulationResults (simout.logsout);

探索其他场景

在前一节中,您研究了scenario_LC_15_StopnGo_Curved场景。下面是兼容的场景列表HighwayLaneChangeTestBench模型。

scenario_LC_01_SlowMoving scenario_LC_02_SlowMovingWithPassingCar scenario_LC_03_DisabledCar scenario_LC_04_CutInWithBrake scenario_LC_05_SingleLaneChange scenario_LC_06_DoubleLaneChange scenario_LC_07_RightLaneChange scenario_LC_08_SlowmovingCar_Curved scenario_LC_09_CutInWithBrake_Curved scenario_LC_10_SingleLaneChange_Curvedlc_11_mergingcar_highwayentry场景lc_12_cutincar_highwayentry场景lc_13_disabledcar_ushape场景lc_14_doublelanechange_ushape场景lc_15_stopngo_curved[默认]

使用这些方案使用驾驶场景设计师导出到场景文件。检查每个文件中的注释,以获得关于每个场景中的道路和车辆的更多细节。您可以配置HighwayLaneChangeTestBench和工作区来模拟这些场景helperSLHighwayLaneChangeSetup功能。例如,您可以配置曲线方案的模拟。

helperSLHighwayLaneChangeSetup (“scenarioFcnName”“scenario_LC_10_SingleLaneChange_Curved”);

结论

这个例子演示了如何使用地面真实车辆位置模拟高速公路变道机动。

再次启用MPC更新消息。

mpcverbosity ('在');

也可以看看

(导航工具箱)

相关的话题