主要内容

公路换道

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

介绍

自动变道机动(LCM)系统使自我车辆自动从一个车道移动到另一个车道。LCM系统对自动变道的纵向和横向控制动力学进行建模。LCM系统利用机载传感器感知最重要目标(mio)的环境,识别避开这些目标的最佳轨迹,并沿着该轨迹引导自我车辆。

本例显示了如何设计和测试LCM系统的规划器和控制器组件。在本例中,车道变更规划器使用场景中的地面真实信息来检测MIO。然后,它生成可行的轨迹以协商车道变更控制器执行的车道变更。在本例中,您:

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

  • 建立变道规划师模型-参考模型找到MIO,对ego飞行器的终端状态进行采样,并生成最优轨迹。

  • 对车道变换控制器进行建模-该模型根据生成的轨迹为ego车辆生成控制命令。

  • 模拟和可视化系统行为-试验台模型被配置为测试规划和控制的集成,以执行多车辆在弯曲道路上的变道机动。

  • 探索其他场景—这些场景在附加条件下测试系统。

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

探索试验台模型

在本例中,您将使用一个系统级仿真测试台架模型来探索车道变更机动系统的规划器和控制器组件的行为。

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

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

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

开放式系统(“HighwayLaneChangeTestBench”

打开这个模型运行helperSLHighwayLaneChangeSetup脚本,该脚本使用drivingScenario对象在基本工作区中。它还配置规划器配置参数,控制器设计参数,车辆模型参数,以及定义输入和输出所需的Simulink®总线信号万博1manbetx公路车道更换试验台模型。

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

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

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

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

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

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

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

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

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

开放式系统(“HighwayLaneChangeTestBench /场景和环境”

场景的读者块被配置为读取drivingScenario对象。它使用此对象读取参与者数据。它接收ego车辆信息以执行闭环模拟。此块输出ego车辆坐标中车道和参与者的地面真实信息通往世界的交通工具块用于将目标车辆位置从车辆坐标转换为世界坐标。这个子系统从基本工作空间读取地图数据,并输出关于车道和参考路径的信息。

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

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

模型高速公路变道规划师

高速公路变道规划师参考模型实现了高速公路变道系统的主要算法。该模型利用Fernet坐标系寻找自我车辆周围的mio。随后,模型采样不同行为的终端状态,预测目标行为者的运动,并生成多个轨迹。最后,该模型评估生成轨迹的代价,并检查碰撞的可能性和运动学的可行性,以估计最优轨迹。打开高速公路变道规划师参考模型。

开放式系统(“HighwayLaneChangePlanner”

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

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

  • Find MIOs块识别了自我载体周围最重要的对象(MIOs)。

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

  • Motion Planner参考模型根据采样轨迹生成最佳轨迹。此模型检查采样轨迹的成本、可行性和碰撞可能性,以确定最佳轨迹。此块还计算轨迹上的适当点,以便ego车辆跟随。有关详细信息,请参阅在“公路车道变换规划器”上,请参见为公路车道变更规划器生成代码

模型变道控制器

变道控制器参考模型模拟了一种路径跟踪控制机制,使自我车辆在跟踪给定速度的同时沿着生成的轨迹行驶。为此,控制器可以同时调整自我车辆的纵向加速度和前转向角度。该控制器使用自适应模型预测控制(MPC)在满足速度、加速度和转向角度约束的情况下计算最优控制动作。打开变道控制器参考模型。

开放式系统(“LaneChangeController”

  • 虚拟车道中心子系统从路径点创建一个虚拟车道。虚拟lane与Path Following Controller块所要求的格式匹配。

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

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

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

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

  • 横向控制通过调整ego车辆的转向,使ego车辆沿着其车道的中心线行驶。

探索指标评估

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

开放式系统(“HighwayLaneChangeTestBench /指标评估”

  • 检测碰撞块检测ego车辆与其他车辆的碰撞,并在检测到碰撞时停止模拟。

  • DetectLeadVehicleBlock计算自我和领先车辆之间的间距,用于计算TimeGap价值。

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

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

  • LateralJerk数值是根据规定的极限计算的横向速度。

模拟和可视化系统行为

设置并运行公路车道更换试验台在变道过程中可视化系统行为的仿真模型。模型中的可视化块创建了一个MATLAB图形,显示了场景的追逐视图和俯视图,绘制了ego车辆、采样轨迹、胶囊列表和场景中的其他车辆。配置公路车道更换试验台模型来使用场景\u LC\u 15\u stoppngo\u曲线场景。

helperSLHighwayLaneChangeSetup (“场景名称”“scenario_LC_15_StopnGo_Curved”

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

MPC可靠性(“关”);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);结束

在仿真过程中,模型将信号记录到基础工作空间为罗格苏特。您可以使用分析模拟结果并调试系统行为中的任何故障helperAnalyzeLCSimulationResults函数。该函数创建了一个MATLAB图形和场景的绘图追逐视图。图中的滑块可以让您选择所需的模拟步骤来分析这些窗格中显示的不同参数:

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

  • 轨迹信息-显示采样轨迹的不同属性。高亮显示的行通过使用Chase视图中显示的相同颜色编码显示采样轨迹的类型。

  • 绪的信息—显示已识别的mio的不同属性。列的颜色与相应车辆的脸颜色相匹配。

  • 模式-显示自我车辆的选择行为。

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

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

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

  • 自我状态-显示ego车辆和已识别的主导车辆的参数。

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

运行脚本并研究情节。

helperAnalyzeLCSimulationResults (simout.logsout);

探索其他场景

在上一节中,您探讨了场景\u LC\u 15\u stoppngo\u曲线场景。下面是与公路车道更换试验台模型。

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[默认值]

这些场景是使用驾驶场景设计师和导出到方案文件。请检查每个文件中的注释,以了解每个方案中道路和车辆的更多详细信息。您可以配置公路车道更换试验台和工作区来模拟这些场景helperSLHighwayLaneChangeSetup函数。例如,您可以为弯曲道路场景配置模拟。

helperSLHighwayLaneChangeSetup (“场景名称”“scenario_LC_10_SingleLaneChange_Curved”);

结论

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

再次启用MPC更新消息。

MPC可靠性(“上”);

另请参阅

(导航工具箱)

相关的话题