SublaneModel

简介#

默认情况下,每条车道上最多只有一辆车,并且车道变换是瞬间完成的。若要改变这种情况,可以激活下述两种模型中的一种。

亚车道模型 (Sublane-Model)#

本页描述的是具有更高横向分辨率的仿真。该模型适用于模拟以下情况:

  • 多辆两轮车在单车道上并排行驶
  • 车辆在单车道上超越自行车
  • 密集交通中虚拟车道的形成(即 2 条车道上有 3 辆车并排行驶)
  • 紧急交通的虚拟车道形成
  • 横向动力学
    • 横向加速度和速度
    • 超车时占用 2 条车道
    • 自行车在车道最右侧行驶
    • 激进驾驶员的横向侵占
    • 车道变换期间的动态纵向间隙接受度

使用选项 --lateral-resolution <FLOAT> 激活该模型。该模型描述见 Simulation framework for testing ADAS in Chinese traffic situations 载于 SUMO2016 会议论文集

横向分辨率与车辆位置#

当亚车道模型被激活时,车辆的横向位置(测量为偏离车道中心线的距离;负值表示在中心右侧,正值表示在中心左侧)可以取 [-laneWidth/2, laneWidth/2] 之间的任意值,与横向分辨率的值无关。

分辨率将车道隐式划分为一个或多个亚车道,定义了决策和碰撞检测的粒度。每辆车可以占据多个亚车道(取决于其宽度)。 在正常的仿真行为中,两辆车永远不会在纵向方向上有重叠的同时占据同一条纹带。因此,--lateral-resolution 的值应足够低,以满足最窄交通成员的空间需求。 如果三辆自行车能够在 3.6m 宽的车道上并排行驶,则横向分辨率不得高于 1.2m。

Note

车辆在亚车道之间连续移动。这意味着,即使横向分辨率设置为等于车道宽度,车辆在车道变换过程中(每当需要多个仿真步骤来完成期望的机动时)也会占据许多中间位置。

Note

建议将横向分辨率设置为能整除车道宽度的值,以避免因条纹宽度变化而产生的伪影(条纹在车道边界处结束)。

Caution

--lateral-resolution 的值越小,计算仿真状态的运行时间越长。

新参数#

车辆行为受特定于模型的 vType 属性 (maxSpeedLat, minGapLat, latAlignment)车道变换模型属性 (lcSublane, lcPushy) 约束。

sumo-gui 对话框或 netstate-output 中描述车辆状态时,会使用附加属性:

  • 横向位置 (posLat):偏离当前车道中心的偏移量(米)
  • 阴影车道:亚车道模型中的每辆车占据 1 或 2 条车道。包含前保险杠中心的车道称为其车道。如果车辆前保险杠也延伸到另一条车道,则称为阴影车道
  • 目标车道:如果车辆已开始向另一条车道进行车道变换机动,则为目标车道
  • 横向速度:当前仿真步的横向速度
  • 车道变换机动距离:当前车道变换机动中要覆盖的绝对横向距离(米)(超越另一辆车被认为由两个机动组成:1. 离开当前车道,2. 超车后重新进入车道)
  • 车辆右侧在路缘上的偏移量:车辆右侧距离当前道路右侧路缘的偏移量(米)
  • 车辆左侧在路缘上的偏移量:车辆左侧距离当前道路右侧路缘的偏移量(米)
  • 右边缘亚车道:车辆占据的最右侧亚车道(至少部分占据),从当前道路的右侧开始计数,从 0 开始
  • 左边缘亚车道:车辆占据的最左侧亚车道(至少部分占据),从当前道路的右侧开始计数,从 0 开始

模型细节#

道路网络的常规车道被划分为宽度至少为给定分辨率 (--lateral-resolution) 的亚车道。如果车道宽度不是给定值的倍数,最左侧亚车道的宽度将减小。SUMO 的默认车道宽度为 3.2m,因此 0.8 的横向分辨率将为每条车道创建恰好 4 个该宽度的亚车道。1.0 的分辨率将创建三个 1.0m 宽的亚车道和一个 0.2m 宽的额外车道。建议使用的分辨率至少与正在模拟的最窄车辆(即摩托车)一样小。

车辆跟驰#

车辆占据一个或多个亚车道,并对所有在至少一个亚车道上被跟随的车辆执行跟驰计算。

车道变换#

启用亚车道模型时,会自动使用车道变换模型 SL2015。车道变换发生在亚车道级别,并根据车辆宽度潜在地使用道路的整个宽度。除了为路线跟随、协作、义务(靠右行驶)或速度增益而变换车道外,车辆还执行横向运动以实现特定的横向对齐。这种偏好保持在车道中间或其一侧的倾向由 vType 属性 latAlignment 配置。

除了这些动机之外,还有一个额外的行为层负责维持安全的横向间隙。期望间隙可以使用 vType 属性 minGapLat 设置。距离保持仅针对距离本车不太远的车辆执行。如果相邻车辆的前保险杠位于本车纵向中点之后,则忽略该邻居。

Note

相邻车辆的横向范围仅在设定的 --lateral-resolution 范围内计算。

模型 SL2015 支持以下附加参数:

  • lcSublane:在车道内使用配置的横向对齐的渴望程度。更高的值导致更愿意为了对齐而牺牲速度。默认值:1.0,范围 [0-inf]
  • lcPushy:横向侵占其他驾驶员的意愿。默认值:0,范围 [0-1]。如果设置此值,车辆将开始横向变换,即使其目标亚车道仍被占用。对于紧急(战略)车道变换,这会产生本车违反其邻居的横向最小间隙从而触发规避性横向运动(推挤)的行为。
  • lcAssertive:接受目标车道上较低的前部和后部间隙的意愿。默认值:0,范围 0 到 1
  • lcImpatience:修改 lcAssertive 和 lcPushy 的动态因子。默认值:0(无效果),范围 -1 到 1。不耐烦充当乘数。在 -1 时乘数为 0.5,在 1 时乘数为 1.5
  • lcTimeToImpatience:达到最大不耐烦度(为 1)的时间。每当车道变换机动被阻挡时,不耐烦度就会增长。
  • lcAccelLat:每秒最大横向加速度。与 maxSpeedLat 一起限制横向移动速度。
  • latAlignment:车道内首选的横向对齐。
    • right:保持在车道右侧
    • center:保持在车道中心
    • left:保持在车道左侧
    • arbitrary:保持当前横向对齐。(车辆仅在响应周围车辆或车道宽度变化时才进行横向变换)
    • compact:靠近右侧的相邻车辆
    • nice:与右侧最近的亚车道边界对齐。(以避免使用超过必要的亚车道)
    • <FLOAT>:偏离车道中心的首选横向偏移量(米)
  • lcMaxSpeedLatStanding, lcMaxSpeedLatFactor:使用 lcMaxSpeedLatStanding + lcMaxSpeedLatFactor * speed 计算横向速度的边界。如果 factor > 0,这是横向速度的上限;如果 factor < 0,则作为下限。

其他#

车辆可以横向位于车道上的任何位置。车辆根据其 maxSpeedLat vType 属性增量变换车道。亚车道的宽度影响对横向间隙接受的跟驰保真度,并确定在车道变换期间评估的候选移动数量。

通过 TraCI 使用 vehicle 命令 moveToXY 控制车辆 时,车辆将被放置在与指定坐标完全匹配的精确纵向和横向位置。这允许对亚车道放置进行完全控制。

简单的连续车道变换模型#

上述亚车道模型允许模拟与横向车辆动力学相关的广泛现象,代价是计算负载增加。

车道变换机动通常比单个仿真步骤花费更长的时间,而在未激活亚车道模型的情况下,车道变换是瞬时的,这是横向动力学的一个重要方面。

如果只需要对车道变换的非瞬时方面进行建模,可以使用简化的(因此更快的)模型作为亚车道模型的替代方案。

通过设置选项 --lateral-resolution <FLOAT> 来激活简单连续车道变换模型,该选项指定在相邻车道之间变换的默认时间(秒)(而不是设置选项 --lateral-resolution)。

使用此模型时,车辆将以恒定的横向速度移动,以在指定时间内完成机动。车道变换决策会考虑所需的额外时间。

附加车辆参数#

  • 当设置 <vType> 属性 maxSpeedLat 时,由默认持续时间计算出的横向速度将被配置的类型特定速度替换。