主要内容

高速公路车道改变

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

介绍

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

此示例显示了如何设计和测试LCM系统的规划器和控制器组件。在此示例中,车道更改计划者使用来自场景的地面真理信息来检测MIOS。然后,它生成可行的轨迹以协商由车道改变控制器执行的车道改变。在这个例子中,你:

  • 探索测试台模型- 该模型包含评估功能的规划,控件,车辆动态,方案和指标。

  • 建立变道规划师模型- 参考模型找到自我车辆的MIO,样本终端状态,并产生最佳轨迹。

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

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

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

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

探索试验台模型

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

Open_System(“HighwayLaneChangeTestBench”

打开这个模型运行allowslhighwaylanechangesetup.脚本,该脚本使用drivingScenario(自动驾驶工具箱)对象在基本工作区中。它还配置规划器配置参数,控制器设计参数,车辆模型参数,以及定义输入和输出所需的Simulink®总线信号万博1manbetxHighwayLanechangetestBench.模型。

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

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

  • Planner配置参数 - 子系​​统,用于指定计划算法所需的配置参数。

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

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

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

  • 指定指定评估系统级别行为的度量标准评估 - 子系​​统。

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

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

Open_System(“HighwayLaneChangeTestBench /场景和环境”

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

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

高速公路车道更改策划员参考模型在世界坐标,地图数据和规划器配置参数中使用地面真理演员位置,以对自动车道更换机动执行轨迹规划。

模型公路车道改变计划者

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

Open_System('HighwayLanechangePlanner'

高速公路Lane更改计划程序模型包含以下块:

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

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

  • 终端状态采样器块样本终端状态用于巡航控制,导线车跟随和车道改变行为。运动预测模块预测MIOS的运动。

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

模型变道控制器

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

Open_System(“LaneChangeController”

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

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

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

控制器块之后的路径将车辆在高速公路的标记通道内行驶,同时保持用户设定的速度。该控制器包括对自助车辆的组合纵向和横向控制:

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

  • 通过调节自工载体的转向,侧向控制通过调节自工载体的转向,将自由车辆沿着巷道的中心线行进。

探索指标评估

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

Open_System(“HighwayLaneChangeTestBench /指标评估”

  • 检测块块检测自由车辆与其他车辆的碰撞,并且如果检测到碰撞,则停止模拟。

  • DetectLeadVehicle块计算自我和领先车辆之间的间距,用于计算时间间隔。

  • 时间间隔是通过与领先车辆的距离(车头时距)和自我车辆的纵向速度计算出来的,并根据规定的限制进行评估。

  • 纵跳是用纵向速度计算的,并根据规定的极限进行评估。

  • 侧向挺举值是根据规定的极限计算的侧向速度。

模拟和可视化系统行为

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

allowerslhighwaylanechangesetup(“场景”“scenario_LC_15_StopnGo_Curved”

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

mpcverbosity ('离开');sim卡(“highwaylanechangetestbench”“停止”“5”);

运行模拟8秒钟。车道改变策划器参考模型产生轨迹以围绕较慢的铅载。

sim卡(“highwaylanechangetestbench”“停止”“8”);

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

sim卡(“highwaylanechangetestbench”“停止”“18”);

探索其他场景

在上一节中,您探讨了系统行为场景_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.和工作区来模拟这些场景allowslhighwaylanechangesetup.函数。例如,您可以为弯曲道路场景配置模拟。

allowerslhighwaylanechangesetup(“场景”“scenario_LC_10_SingleLaneChange_Curved”);

结论

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

再次启用MPC更新消息。

mpcverbosity (“上”);