驾驶员状态 (Driver State)

概述#

驾驶员状态提供了一种通用机制,用于在跟驰和换道模型中引入不完美性。虽然错误可能在驾驶过程的多个阶段进入 [见图 1],但 SUMO 仅在感知阶段应用错误,详情请参见 下文

图 1:驾驶过程中的错误。

实际上,错误是被添加到跟驰模型的输入量(即间距和速度差)中的。若要在 贡献的跟驰模型 中进行集成,可以采用 标准模型中的实现(参见 MSCFModel_Krauss::stopSpeed()MSCFModel_Krauss::followSpeed())。目前(SUMO 1.8.0),该功能仅针对标准 Krauss 和 IDM 模型实现。

为车辆配备驾驶员状态#

要对车辆应用不完美驾驶功能,需为其配备驾驶员状态设备 (Driver State Device),参见 设备配置程序描述(并使用 <device name>=driverstate)。为车辆配备驾驶员状态所需的最小定义形式如下:

<routes>
    ...
    <vehicle id="v0" route="route0" depart="0">
        <param key="has.driverstate.device" value="true"/>
    </vehicle>
    ....
</routes>

在这种情况下,驾驶员状态的所有参数(见下文)均设置为其默认值。下表列出了驾驶员状态设备所有可能的参数。每个参数必须作为相应需求定义元素(例如 <vehicle ... /><vType ... /><flow ... />)的子元素以 <param key=<PARAMETER NAME> value=<PARAMETER VALUE> 的形式指定。关于错误动态的详细信息,请参见 感知错误建模

参数 (Parameter) 类型 默认值 (Default) 描述 (Description)
initialAwareness float 1.0 分配给驾驶员状态的初始感知度 (awareness)。
errorTimeScaleCoefficient float 100.0 时间尺度常数,控制底层错误过程的时间尺度。
errorNoiseIntensityCoefficient float 0.2 噪声强度常数,控制底层错误过程的噪声强度。
speedDifferenceErrorCoefficient float 0.15 用于缩放应用于跟驰模型速度差输入的误差的系数。
headwayErrorCoefficient float 0.75 用于缩放应用于跟驰模型距离输入的误差的系数。
freeSpeedErrorCoefficient float 0.0 用于缩放应用于自由行驶速度的误差的系数。
speedDifferenceChangePerceptionThreshold float 0.1 控制速度差变化感知阈值的常数。
headwayChangePerceptionThreshold float 0.1 控制距离输入变化感知阈值的常数。
minAwareness float 0.1 驾驶员感知度的最小值(这是一个技术参数,用于避免 1/minAwareness 项的爆炸式增长)。
maximalReactionTime float (s) 原始动作步长 (original action step length) 在最小感知度时驾驶员达到的 actionStepLength 值。actionStepLength 在该值与原始值之间随感知度(在 minAwareness 和 1.0 之间)线性缩放。

支持的跟驰模型 (carFollowModels)#

以下模型支持驾驶员状态设备:

  • Krauss
  • IDM
  • CACC

感知错误建模#

一个底层的 奥恩斯坦-乌伦贝克 (Ornstein-Uhlenbeck) 过程驱动着应用于跟驰模型感知输入的误差。该过程的特征时间尺度和驱动噪声强度由驾驶员状态感知度决定,感知度旨在作为交通状况与驾驶员状态动态之间的接口。我们有:

  • errorTimeScale = errorTimeScaleCoefficient*awareness(t)
  • errorNoiseIntensity = errorNoiseIntensityCoefficient*(1.-awareness(t))

时间 t 时的误差状态 error(t) 经过缩放并添加到跟驰模型的输入参数中,如下所示:

  • perceivedSpeedDifference = trueSpeedDifference + speedDifferenceError(t),其中 speedDifferenceError(t) = speedDifferenceErrorCoefficient*headway(t)*error(t)
  • perceivedHeadway = trueHeadway + headwayError(t),其中 headwayError(t) = headwayErrorCoefficient*headway(t)*error(t)

请注意,误差过程的状态 error(t) 并不直接随感知度缩放,感知度仅通过影响过程参数间接控制误差。此外,感知误差的规模被假定为随与感知对象的距离线性增长。

最后,只有当感知值的变化达到足够程度时,驾驶员状态才会引起跟驰模型输入的更新。更新跟驰输入的条件是:

  • 间距:|perceivedHeadway - expectedHeadway| > headwayChangePerceptionThreshold*trueGap*(1.0-awareness)
  • 速度差:|perceivedSpeedDifference - expectedSpeedDifference| > speedDifferenceChangePerceptionThreshold*trueGap*(1.0-awareness)

其中,预期量为:

  • expectedHeadway = lastRecognizedHeadway - expectedSpeedDifference*elapsedTimeSinceLastRecognition
  • expectedSpeedDifference = lastRecognizedSpeedDifference

出版物#

参见 TransAID 项目报告 混合交通中车辆自动化与自动驾驶车辆驾驶员行为的建模、仿真与评估 中的章节 2.3.1.3 Modelling of a Decreased Post-ToC Driver Performance