RoadRunner 场景定义了车辆的自主行为。如果没有为车辆指定自定义行为,那么该车辆将在模拟过程中遵循内置行为。 RoadRunner Scenario 支持车辆的这些内置行为:
- 车道跟随行为——车辆沿着车道中心行驶。
- 变道行为——车辆在收到改变横向偏移动作时变道(Change Lane) 。
- 横向偏移行为——车辆在收到 Change Lateral Offset 动作时横向移动以偏离车道中心。
- 纵向距离行为——当车辆接收到改变纵向距离(Change Longitudinal Distance)动作时,车辆与参考参与者保持指定的距离或时间间隔。
- 路径跟随行为——车辆沿着指定路径行驶。如果为路径上的一个或多个路点指定时间数据,车辆将调整其速度以在指定时间到达这些路点。
笔记:车辆的速度必须大于零才能模拟这些行为。
车道跟随行为
如果将车辆添加到场景中但未指定车辆的路径或自定义行为,则该车辆将按照其车道的行进方向属性指定的方向沿着其车道的中心行驶。有关如何设计具有车道跟随行为的场景的更多信息,请参阅设计车道跟随场景。 当道路结束时,车辆在新道路上选择一条与当前道路上的车道行驶方向相同的车道。这种行为使车辆能够转入适当的车道,如这些图像所示。
车辆沿右转车道驶向十字路口。
车辆右转进入交叉路口,继续其行驶方向。
如果没有后继车道,或者如果当前车道和后继车道的行驶方向不匹配,则车辆在到达其当前车道的尽头时停止。例如,此图像显示一辆车停在没有后续车道的并道车道的尽头。
在路口,车辆选择曲率变化最小的车道。例如,在这个丁字路口,车辆直行而不是急转弯。
笔记
当将变道动作的 Dynamics Type 属性设置为 With Acceleration 时,必须为 Acceleration 属性值指定一个适当的符号。如果加速度值的符号不能使车辆达到指定的目标速度值,则车辆忽略该符号。
限制
- 车辆不会检查是否与其他车辆或静态障碍物发生碰撞。
- 如果放置车辆使其中心远离道路或在不可行驶的车道上,则车辆在模拟期间保持静止。例如,如果车辆在自行车的车道上,它会保持静止。
- 车辆在行驶时只考虑车道中心。例如,车辆可以在比车辆宽度窄的车道上行驶。
- 不支持在没有行驶方向的车道上行驶。
- 车辆忽略其车道的指定 Speed Limit 属性。相反,每辆车都遵循 Initialize Speed 或 Change Speed 动作的指定的速度属性。
变道行为
变道行为使车辆能够在模拟过程中执行变道操作。对于执行此操作的车辆,目标车道必须满足以下条件:
- 目标车道是可行驶车道。
- 目标车道的行驶方向属性与当前车道的行驶方向属性匹配。如果当前车道的形式方向属性是 Bidirectional,则目标车道的形式方向属性必须与车辆实际行驶方向一致。
如果存在有效的目标车道,则车辆根据变道动作的指定属性从当前车道的中心过渡到目标车道的中心。有关如何指定属性和设计具有变道行为的场景的更多信息,请参阅设计变道场景。 笔记:要模拟内置的车道变换行为,不能为车辆指定路径。否则,车辆将忽略该变道动作并继续沿着指定路径行驶。
为了执行与动作者相关的变道动作,车辆首先将其目标车道识别为在目标接收到动作的瞬间包含参考演员中心的车道。车辆然后相对于识别的目标车道执行其动作。这种行为使车辆能够找到合适的目标车道,即使在车辆接收到变道动作时引用的参与者正处于车道变换的中间 。
当车辆无法到达指定的目标车道时,它会搜索最近的可能有效车道。如果存在有效车道,则车辆执行变道操作。否则,车辆忽略该动作并继续在当前车道行驶。例如,考虑以下两种情况:
一辆汽车在三车道单行道路上的最左侧车道行驶。如果将目标车道指定为偏离当前车道三车道的车道,则该道路上不存在可行驶的目标车道。在这种情况下,车辆认为可行驶车道与其当前车道相差两条车道,并执行变道操作。
变道动作前的车辆:
变道动作后的车辆:
车辆在双向道路上行驶,每个行驶方向只有一条车道。如果您指定当前车道右侧的目标车道,则车辆不会执行操作变道。
如果用指定的动态执行变道动作不可行,车辆将覆盖指定的动态并使用动态配置文件(Dynamics Profile)的Step的类型 立即执行动作。例如,如果您指定在小于车道宽度的距离内改变车道,则车辆会忽略指定的动态并立即执行操作。
限制
- 车辆不会检查是否与其他车辆或静态障碍物发生碰撞。
- 当指定的目标车道偏离当前车道两条或多条车道时,车辆依次检查每条中间车道是否为有效车道。如果所有中间车道都有效,则车辆过渡到指定的目标车道。否则车辆从当前车道过渡到最后一个有效的中间车道。如果当前车道旁边的中间车道无效,则车辆不执行该变道动作。如果车辆无法过渡到指定的目标车道,则变道动作阶段必须具有有效的结束条件才能完成动作。否则,车辆无法执行所有剩余的动作。
- 当指定相对于在未连接路段上行驶的参与者的目标车道时,不会发生指定的变道动作,并且车辆会继续在当前车道上行驶。例如,在此图像中,一辆白色车辆和一辆红色车辆在两条彼此不相连的不同道路上行驶。对于白色车辆,如果你指定了一个相对于红色车辆的变道动作,白色车辆会忽略这个动作。
- 如果车辆在收到变道动作时正在接近其道路的尽头,如果道路的剩余长度不足以让车辆在指定的距离或时间内完成动作,则车辆不会执行变道动作。例如,当车辆收到指定要到达目标车道超过 10 米的动作时,考虑距离道路尽头 5 米的车辆。因为指定的距离大于道路的剩余长度,所以车辆不执行该动作。
- 如果车辆在收到变道动作时正在偏离道路行驶,则车辆不会执行该动作。例如,如果您为 Change Lateral Offset 动作指定一个大于道路宽度的横向偏移值,则车辆在执行该动作时会偏离道路 Change Lateral Offset。如果车辆随后接收到一个变道动作,则车辆将忽略该动作并保持静止直到模拟结束。
- 如果将 Dynamics Type 属性设置为 With lateral velocity, 则不支持Dynamics Profile Cubic类型,并且车辆 使用 Dynamics Profile 线性类型执行变道操作。
- 当您指定包含Change Lateral Offset 和变道动作的平行动作阶段时,车辆会考虑最底部的横向动作并忽略所有其他平行横向动作。例如,如果一个变道动作发生Change Lateral Offset在平行动作阶段的一个动作之上,那么车辆在模拟过程中会忽略该变道动作。