主要内容

高速公路车道改变

此示例显示了如何模拟高速公路驾驶场景中的自动换道机动系统。

介绍

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

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

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

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

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

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

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

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

探索试验台模型

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

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

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

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

open_system (“HighwayLaneChangeTestBench”

打开这个模型运行HelpersLHHIGHWAYLANECHANGE设置脚本,该脚本使用drivingScenario对象在基本工作区中。它还配置规划器配置参数,控制器设计参数,车辆模型参数,以及定义输入和输出所需的Simulink®总线信号金宝appHighwayLaneChangeTestBench模型。

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

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

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

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

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

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

  • 度量评估-指定用于评估系统级行为的度量的子系统。

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

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

open_system (“HighwayLaneChangeTestBench /场景和环境”

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

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

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

公路换道规划模型

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

open_system (“HighwayLaneChangePlanner”

公路车道更改规划器模型包含以下块:

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

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

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

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

模型变道控制器

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

open_system (“LaneChangeController”

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

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

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

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

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

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

探索指标评估

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

open_system (“HighwayLaneChangeTestBench /指标评估”

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

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

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

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

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

模拟和可视化系统行为

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

HelpersLHHIGHWAYLANECHANGE设置(“scenarioFcnName”“scenario_LC_15_StopnGo_Curved”

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

mpcverbosity (“关闭”);sim卡(“HighwayLaneChangeTestBench”“停止时间”“5”);

关闭图。

hLCPlot = findobj (“类型”“图”“名字”“变道状况图”);如果~isempty(hLCPlot)close(hLCPlot);结束

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

sim卡(“HighwayLaneChangeTestBench”“停止时间”“8”);

关闭图。

hLCPlot = findobj (“类型”“图”“名字”“变道状况图”);如果~isempty(hLCPlot)close(hLCPlot);结束

运行模拟18秒。变道规划参考模型生成一个轨迹,使车辆先行驶到左车道,再行驶到右车道,以避免与缓慢行驶的前车发生碰撞。观察自我车辆执行两次变道以避免碰撞,同时保持一个设定的速度。

simout = sim卡(“HighwayLaneChangeTestBench”“停止时间”“18”);

关闭图。

hLCPlot = findobj (“类型”“图”“名字”“变道状况图”);如果~isempty(hLCPlot)close(hLCPlot);结束

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

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

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

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

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

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

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

  • 仿真时间-显示与模拟步长相对应的时间。单位为米。

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

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

运行脚本并研究情节。

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和工作区来模拟这些场景HelpersLHHIGHWAYLANECHANGE设置函数。例如,您可以为弯曲道路场景配置模拟。

HelpersLHHIGHWAYLANECHANGE设置(“scenarioFcnName”“scenario_LC_10_SingleLaneChange_Curved”);

结论

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

再次启用MPC更新消息。

mpcverbosity (“上”);

另请参阅

(导航工具箱)

相关话题