概述#
ToC 设备(ToC Device)为在自动驾驶车辆中建模控制权接管(take-over of control, ToC)提供了工具。该设备是在 TransAID 项目中开发的,参见 Lücken 等人 (2019) [1]。
为此,用户必须至少指定两种车辆类型,分别用作自动驾驶和手动驾驶的模型。所有支持的参数如下所述。
控制权的转换可以朝两个方向进行:
- 驾驶员 -> 自动化(“向上转换”)
- 自动化 -> 驾驶员(“向下转换”)
假设更复杂的过程是向下转换,即人类驾驶员从车辆自动化系统接管控制权,因为驾驶员在接管事件后的状态可能只允许较低的驾驶表现。ToC 设备将向下转换分为两个状态:
- '准备'(preparing)状态:此时已发出接管请求(TOR),但驾驶员尚未接管车辆控制权。
- '恢复'(recovering)状态:ToC 刚结束,此时驾驶员表现出下降的驾驶表现(详见下文)。
此外,如果驾驶员未在指定的前置时间内接管车辆控制权,该设备会触发最小风险机动(minimum risk maneuver, MRM)(见图)。

图 1:ToC 设备建模的 ToC 时间线
配置#
要为车辆配备 ToC 功能,可以使用设备的通用装备功能,参见装备程序描述(并使用 <device name>=toc)。为一辆车辆装备 ToC 设备所需的最小定义形式如下:
<routes>
...
<vehicle id="v0" route="route0" depart="0">
<param key="has.toc.device" value="true"/>
<param key="device.toc.automatedType" value=<AUTOMATED_VTYPE_ID> />
<param key="device.toc.manualType" value=<MANUAL_VTYPE_ID> />
</vehicle>
....
</routes>
下表列出了 ToC 设备的所有可能参数。每个参数都必须作为相应需求定义元素(例如 <vehicle ... />、<vType ... /> 或 <flow ... />)的子元素以 <param key=<参数名> value=<参数值> 的形式指定。
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| manualType | vTypeID (字符串) | 无 (必填) | 用于建模手动驾驶的车辆类型的 ID。 |
| automatedType | vTypeID (字符串) | 无 (必填) | 用于建模自动驾驶的车辆类型的 ID。 |
| responseTime | 浮点数 | 5.0 | 驾驶员在发出 TOR 后(见下文 TORs)接管车辆控制权所需的时间(单位:秒)。 |
| initialAwareness | 浮点数 | 0.5 | ToC 后分配给驾驶员的意识水平。该值必须在 [0.0, 1.0] 之间,其中 1.0 对应正常驾驶表现,较低的值会导致感知错误增加(见下文)。 |
| lcAbstinence | 浮点数 | 0.0 | 驾驶员不执行变道操作的意识水平阈值。该值必须在 [0.0, 1.0] 之间。默认情况下此功能禁用,将其值设置为 1.0 会在整个恢复阶段阻止驾驶员进行自主变道。 |
| recoveryRate | 浮点数 | 0.1 | ToC 后驾驶员表现恢复的速率(单位:[1/s])。 |
| mrmDecel | 浮点数 | 1.5 | 如果驾驶员未在指定时间内接管控制权,车辆制动的减速度(单位:[m/s²])(见下文 TORs)。 |
| dynamicToCThreshold | 浮点数 | 0.0 | 车辆需要拥有的前置时间(单位:秒),以便继续以自动化模式行驶。默认值 0.0 表示不动态触发 ToC。 |
| dynamicMRMProbability | 浮点数 | 0.05 | 动态触发的 TOR 未被及时响应的概率。 |
| mrmKeepRight | 布尔值 | false | 如果为 true,车辆在执行 MRM 期间会尝试向右变道。 |
| mrmSafeSpot | 字符串 | "" | 如果设置,车辆在执行 MRM 期间会尝试到达指定的命名停靠点。 |
| mrmSafeSpotDuration | 浮点数 | 60.0 | 车辆在 MRM 后在安全点停留的持续时间。 |
| maxPreparationAccel | 浮点数 | 0.0 | 在 ToC 准备阶段可能施加的最大加速度。 |
| ogNewSpaceHeadway | 浮点数 | 0.0 | ToC 准备阶段前的目标额外空间间距(参见 openGap())。 |
| ogNewTimeHeadway | 浮点数 | 原始值 | ToC 准备阶段前的目标时间间距(参见 openGap())。 |
| ogChangeRate | 浮点数 | 1.0 | ToC 准备阶段前间距调整的变化率(参见 openGap())。 |
| ogMaxDecel | 浮点数 | 1.0 | ToC 准备阶段前因间距调整导致的最大减速度(参见 openGap())。 |
| useColorScheme | 布尔值 | True | 装备的车辆是否应根据其当前的 ToC 状态着色。过渡状态(准备 ToC、从 ToC 恢复 和 执行 MRM)的颜色是硬编码的。 |
| file | 字符串 | "" | 在此指定文件名将开启设备的输出,该输出会报告接管过程的事件(ToCup、ToCdown、TOR、MRM)。 |
如果未提供任何 og... 元素,则在 ToC 准备阶段将不执行间距调整。
接管请求 (Take-over requests)#
要在手动和自动化车辆类型之间进行切换,用户必须通过 TraCI 发出接管请求(TOR)。相应的命令如下(以 python 客户端为例):
traci.vehicle.setParameter(<VEHICLE_ID>, "device.toc.requestToC", <AVAILABLE_LEAD_TIME>)
如果当前驾驶模式是自动化模式,这将在指定的(或默认的)responseTime 后触发向手动车辆类型的切换,或者,如果 responseTime > availableLeadTime,则会启动 MRM(并在 responseTime 后中断)。在 MRM 期间,车辆以指定的(或默认的)恒定速率 mrmDecel 制动。responseTime 过后,车辆类型被切换,车辆驾驶员状态的意识参数被设置为 initialAwareness。此后,意识以 recoveryRate 的速率线性增长,直到在 (1.0-initialAwareness)/recoveryRate 秒后达到最大值 (=1.0)。
如果当前驾驶模式是手动模式,TOR 将导致立即切换到自动化车辆类型,并且任何给定的 availableLeadTime 值都将被忽略(如果给定正值,将发出警告)。
动态 TORs#
如果参数 dynamicToCThreshold 被赋予正值,则无需外部命令即可发出 TOR。如果由于受阻的变道导致车辆无法在当前路线上继续行驶超过给定值(单位:秒),它将触发 TOR。当前,相应的 TOR 以给定动态 ToC 阈值的 3/4 作为前置时间发出。
降低的驾驶表现 (Reduced Driving Performance)#
在 ToC 之后的恢复阶段,自动驾驶车辆的驾驶员被假定为以降低的表现驾驶。这是通过暂时提高驾驶员的感知错误幅度来建模的,即降低的驾驶员意识(参见驾驶员状态)。
参考文献#
- Lücken, L., Mintsis, E., Kallirroi, N. P., Alms, R., Flötteröd, Y. P., & Koutras, D. (2019). From Automated to Manual - Modeling Control Transitions with SUMO. EasyChair. SUMO User Conference 2019, 13.-15. May 2019, Berlin, Germany. https://doi.org/10.29007/sfgk
