高速公路车道改变

这个例子说明了如何模拟公路行驶的情况下的自动车道变更操纵系统。

介绍

一种自动车道变更操作(LCM)系统使自身车辆从一个车道自动移动到另一条车道。在LCM系统模型用于自动车道改变纵向和横向的控制动态特性。一个LCM系统感测用于使用车载传感器最重要的对象(MIOS),识别最佳轨迹避免这些目的和阉牛沿着该轨迹自身车辆的环境中。

这个例子展示了如何设计和测试的LCM系统的规划器和控制器组件。在这个例子中,车道改变规划使用从场景地面真实信息来检测MIOS。然后,它产生一个可行的轨迹协商由所述车道变换控制器所执行的车道改变。在这个例子中,您可以:

  1. 试验台架模型探索:该模型包含规划,控制,车辆动态,传感器,和度量来评估功能。

  2. 模型中的车道改变规划子系统:子系统包含一个简单的行为层和一个运动规划器。行为层通过考虑MIO信息来配置运动规划器来生成最优的轨迹。

  3. 变道控制器子系统建模:该子系统根据生成的轨迹为ego车辆生成控制命令。

  4. 模拟和可视化系统行为:该试验台模型被配置以测试计划和控制的融合,在多辆一条直路进行车道变更操作。

  5. 探索其他的场景:这些场景在附加条件下测试系统。

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

探索试验台模型

在这个例子中,你使用的系统级仿真测试平台模型,探索规划者和控制器组件的行为车道变更操作的系统。打开系统级仿真测试平台模型。

open_system('HighwayLaneChangeTestBench'

打开这个模型运行helperSLHighwayLaneChangeSetup脚本初始化使用道路的情况drivingScenario对象在底座的工作区。它也配置用于定义输入和输出所需要的控制器的设计参数,车辆模型的参数,和Simulink的总线信号金宝appHighwayLaneChangeTestBench模型。

该试验台模型包含以下几个子系统。

  1. 传感器和环境规定了道路,车辆,以及用于模拟传感器。

  2. 车道改变规划指定行为和轨迹规划自主车辆。

  3. 车道改变控制器指定以下控制器,其产生控制命令以沿着生成的轨迹操纵自主车辆的路径。

  4. 车辆动力学车型使用的自车辆自行车模型并更新从所接收的命令使用它的状态车道改变控制器

  5. 公制评估指定评估系统级行为的指标。

车辆动力学中使用的子系统公路车道追踪(自动驾驶工具箱)的例子。这个例子的重点是车道改变规划车道改变控制器子系统。

传感器和环境子系统使用方案读卡器视觉检测发电机为变道机动系统提供所需的路网、车辆地面真值位置和车道检测块。打开传感器和环境子系统。该子系统还输出由车道改变计划器所需要的参考路径。

open_system(“HighwayLaneChangeTestBench /传感器和环境”

方案读卡器块被配置为读取drivingScenario来自基本工作区的对象。它使用这个对象来读取actor数据和lane信息。利用车辆信息进行闭环仿真。该块在自车辆坐标下输出车道和行动者的地面真值信息。

视觉检测发电机block提供有关ego车辆的车道检测,帮助识别存在于ego车道和相邻车道上的车辆。

车道改变规划子系统使用从车道检测视觉检测发电机从块和地面实况演员或车辆姿态方案读卡器执行自动变道机动的轨迹规划。

模范里改变规划

车道改变规划子系统使用一简单的行为层配置运动计划运动计划负责生成变道机动的轨迹。打开车道改变规划子系统。

open_system(“HighwayLaneChangeTestBench /巷改变规划”

  1. 寻找我的太阳子系统找到最重要的对象相对于所述自身车辆的当前状态。

  2. 简单的行为层子系统指定运动计划的策划者行为。

  3. 运动计划子系统使用trajectoryOptimalFrenet和MIO信息进行路径规划。

寻找我的太阳子系统使用地面实况车辆姿态来计算MIO信息相对于所述自身车辆。存在于前部或后部自身车辆的车辆被认为是MIOS。所述MIOS也可以在相邻车道中所示下图。

简单的行为层子系统通过使用当前车辆状态信息计算终端状态、权重和偏差值来配置规划人员的行为。打开简单的行为层子系统。

open_system(“HighwayLaneChangeTestBench /车道改变规划/简单的行为层”

  • EstimateCurrentEgoState块使用System对象™,HelperEstimateCurrentEgoState,计算自身车辆的横向和纵向位置。这个计算是使用自车辆和车道检测的当前状态,在标架空间完成。它还计算关于相邻车道可用性(NoLeftLane,NoRightLane)相对于从参考路径偏移自主车辆位置和偏移信息。

  • LongitudinalSamplerblock定义了纵向规划的范围,如下图所示。它配置可能的纵向终端状态,以定义规划师的行为基于距离输入纵向位置。输入的纵向位置是根据到目标点的距离来计算的。

  • LateralSampler块定义的横向规划水平,如示于以下图中。它配置可能的横向终端状态基于相邻车道可用性(NoLeftLane,NoRightLane)限定所述计划者行为。

  • VelocitySampler块配置可能速度终端状态用于定义计划者行为。它被设置为在该模型中的默认配置。

  • AccelerationSampler块为定义规划器行为配置可能的加速终端状态。它被设置为在该模型中的默认配置。

  • 权重bus定义了一些属性,可以配置这些属性来改变规划者生成的轨迹轮廓。这些设置为该模型中的默认值。

运动计划参考模型通过使用计划者行为,方案信息,和MIO信息生成的轨迹。打开运动计划参考模型。

open_system('MotionPlanner'

  • 脉冲发生器块定义了一个重新计划期间轨迹发生器块。默认值设置为1秒。

  • 轨迹发生器块产生一个基于MIOS,参考路径,并且指定的计划者行为最佳轨迹。这个块使用的系统对象,HelperTrajectoryGenerator,产生所需的轨迹。此系统对象是使用实施trajectoryOptimalFrenet。它采用使用状态更新的验证信息,MIO。多个轨迹样本验证使用状态验证和最优轨迹识别动态碰撞。

  • 提取状态块从生成的轨迹中提取路径信息。

  • 路径分析器块估计航向角,发现路径上的适当点,以遵循。生成的路径必须符合道路形状。路径上的该参考点是所使用的车道改变控制器子系统。

型号车道变换控制器

车道改变控制器参考模型以下,保持自主车辆行驶沿着生成的轨迹,同时跟踪一组速度控制机构模拟路径。这样做时,控制器调节两个纵向加速度和所述自主车辆的前转向角。控制器,同时满足速度,加速度,以及使用自适应模型预测控制(MPC)的转向角的限制计算最佳的控制动作。打开车道改变控制器参考模型。

open_system(“LaneChangeController”

  • 虚拟巷中心子系统创建从路径点的虚拟车道。虚拟通道通过所要求的格式相匹配路径跟踪控制器块。

  • 预览曲率要求的子系统转换轨迹曲率输入路径跟踪控制器

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

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

  • 纵向控制维持自主车辆的用户设置的速度。

  • 横向控制保持自身车辆通过调节自身车辆的转向沿车道的中心线行驶。

探索指标评估

公制评估子系统使用下述度量LCM系统的评估系统水平的行为。打开度量评估子系统。

open_system(“HighwayLaneChangeTestBench /指标评估”

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

  • DetectLeadVehicle块计算自我与领导车辆之间的车头时距,用于计算自我与领导车辆之间的车头时距时间空隙

  • 时间空隙使用到引线车辆(进展)和自身车辆的纵向速度的距离被计算,并且它针对规定的限度进行评价。

  • LongitudinalJerk利用纵向速度被计算并针对规定的限值进行评价。

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

仿真和可视化系统行为

设置并运行HighwayLaneChangeTestBench仿真模型,以可视化的行为,该系统在一个车道的变化。的可视化模型中的块创建了一个鸟瞰图,显示场景中的车道信息、自我车辆、自我轨迹和其他车辆。配置HighwayLaneChangeTestBench模型中使用scenario_LC_06_DoubleLaneChange场景。

helperSLHighwayLaneChangeSetup(“scenario_LC_06_DoubleLaneChange”

模拟模型5秒。要减少命令窗口输出,首先关闭MPC更新消息。

mpcverbosity (“关”);SIM(“HighwayLaneChangeTestBench”“停止时间”“5”);

8秒运行模拟。轨迹计算较慢的铅车辆导航左右。

SIM(“HighwayLaneChangeTestBench”“停止时间”“8”);

13秒运行模拟。车辆继续在左侧车道直行。

SIM(“HighwayLaneChangeTestBench”“停止时间”“13”);

探索其他场景

在前一节中,您研究了scenario_LC_06_DoubleLaneChange场景。下面是与。兼容的场景列表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_CutInWithBreak_Curved scenario_LC_10_SingleLaneChange_Curved

这些场景是使用驾驶场景设计师并导出到场景文件。查看每个文件中的注释,了解每个场景中的道路和车辆的更多细节。您可以配置HighwayLaneChangeTestBench和工作区,以模拟使用这些场景helperSLHighwayLaneChangeSetup函数。例如,您可以为一个弯曲的道路场景配置模拟。

helperSLHighwayLaneChangeSetup(“scenario_LC_10_SingleLaneChange_Curved”

结论

这个例子展示了如何使用理想的车辆位置和车道检测来模拟高速公路变道机动。

再次启用MPC更新消息。

mpcverbosity (“上”);