装备车辆#
可以为车辆配备 SSM 设备,该设备记录车辆与其他交通参与者(目前仅限车辆)的冲突以及相应的安全替代指标。要将 SSM 设备附加到车辆,可以使用 <device name>=ssm 应用标准设备装备程序。
例如,可以使用以下最小示例装备单车辆(使用默认值参数化的设备):
<routes>
...
<vehicle id="v0" route="route0" depart="0">
<param key="has.ssm.device" value="true"/>
</vehicle>
....
</routes>
准备网络文件#
SSM 设备利用交叉口的路权信息来推导部分指标。它使用路权定义的敌对方矩阵来提取交叉和合流路径。如果交叉口设置为无管制 (unregulated),则此信息不可用,因此例如无法为该交叉口计算 PET 指标。
输出文件#
SSM 设备生成一个输出文件(默认情况下,每个车辆一个,命名为 ssm_<vehicleID>.xml,但多个车辆可以写入同一个文件)。
要设置自定义文件名,请为 <vehicle> 或其 <vType> 元素定义 <param key="device.ssm.file" value="FILE"/>。
或者,设置选项 --device.ssm.file 以让所有车辆写入同一个文件。
生成文件的顶级元素是:
<conflict begin="<log-begin-time>" end="<log-end-time>" ego="<equipped-vehicleID>" foe="<opponent-vehicleID>"> ... </conflict>。
输出内容配置#
每个冲突的信息详细程度以及将一次遭遇归类为冲突的标准(即在输出中生成相应的 conflict 元素),可以通过车辆或设备的一系列通用参数进行自定义。完整的参数化(在此冗余分配默认值)可能如下所示:
<routes>
...
<vehicle id="v0" route="route0" depart="0">
<param key="has.ssm.device" value="true"/>
<param key="device.ssm.measures" value="TTC DRAC PET BR SGAP TGAP PPET MDRAC"/>
<param key="device.ssm.thresholds" value="3.0 3.0 2.0 0.0 0.2 0.5 2.0 3.4"/>
<param key="device.ssm.range" value="50.0" />
<param key="device.ssm.mdrac.prt" value="1.0" />
<param key="device.ssm.extratime" value="5.0" />
<param key="device.ssm.file" value="ssm_v0.xml" />
<param key="device.ssm.trajectories" value="false" />
<param key="device.ssm.geo" value="false" />
<param key="device.ssm.write-positions" value="false" />
<param key="device.ssm.write-lane-positions" value="false" />
<param key="device.ssm.filter-edges.input-file" value="input_list.txt" />
<param key="device.ssm.exclude-conflict-types" value="" />
</vehicle>
....
</routes>
参数#
可能的参数总结在下表中:
| 参数 | 类型 | 默认值 | 备注 |
|---|---|---|---|
| measures | 字符串列表 | 所有可用的 SSM | 此空格或逗号分隔的 SSM 标识符列表决定了为装备设备的车辆的哪些遭遇计算遭遇特定的 SSM,以及记录哪些全局指标(见下文) |
| thresholds | 浮点数列表 |
|
此空格或逗号分隔的 SSM 阈值列表决定了哪些遭遇被归类为冲突(如果其测量值超过阈值),并因此作为 <conflict> 元素写入输出文件。如果给定,此列表的长度必须与指标列表的长度相同。注意: 目前,全局指标作为整个模拟时间跨度的单个时间线记录,阈值仅在查找与 SGAP 和 TGAP 值相对应的距离内的领导者时有效。 |
| range | double | 50.0 [m] | 设备的检测范围(米)。一旦其他车辆沿道路网络距离装备车辆小于 <range>,就会被跟踪。执行树搜索以查找车辆当前位置上游和下游范围内的所有车辆。此外,对于范围内的所有下游交叉口,会执行给定范围的上游搜索。 |
| extratime | double | 5.0 [s] | 在遭遇不再与潜在冲突关联后(在穿越冲突区域后、偏离共同路线后、换道后,或车辆离开设备范围后等),继续跟踪该遭遇的额外时间。 |
| mdrac.prt | double | 1.0 [s] | 指定 MDRAC 计算 的感知反应时间。 |
| file | string | "ssm_<equipped_vehicleID>.xml" | 用于存储装备车辆冲突信息的文件名。多个车辆可以写入同一个文件。单车辆的冲突按遭遇的日志开始时间顺序写入。 |
| trajectories | bool | false | 是否将不同测量值的完整时间线写入输出。这包括记录时间值、遭遇类型、车辆位置和速度、所选 SSM 的值以及相关的冲突点位置。如果关闭(默认),则仅写入所选 SSM 的极值。 |
| geo | bool | false | 输出文件中的位置是否应以网络的原始坐标参考系给出(如果可用)。 |
| write-positions | bool | false | 是否将位置(坐标)写入输出。 |
| write-lane-positions | bool | false | 是否将车道和车道上的位置写入输出。 |
| write-na | bool | true | 是否写入所有值均为无效 ("NA") 的冲突数据。 |
| filter-edges.input-file | string | - | 如果定义,则仅测量在提供的边和交叉口发生的冲突。参见将 SSM 设备限制在边和交叉口 |
| exclude-conflict-types | 字符串列表 | - | 此空格或逗号分隔的 SSM 设备冲突类型代码列表决定了哪些冲突将出现在输出文件中。任何在至少一个时间步长内被归类为上述类型之一的冲突都将从输出中排除。特殊值 "foe"(类型 {3,7,11,13,15})和 "ego"(类型 {2,6,10,12,14})将预定义集添加到列表中。特殊值 'none' 不排除任何内容,但可用于抑制详细输出 |
遭遇类型#
不同类型的遭遇,例如交叉、合流或前导/跟驰情况,可能意味着安全指标的不同计算程序。因此,SSM 设备会跟踪这些分类并在输出中提供它们,以便正确解释相应的值。
下表列出了不同的遭遇类型及其代码,这些代码将出现在输出文件中。
| 代码 | 名称 | 描述 | 空间间隙 | 速度差 | 冲突入口点 |
|---|---|---|---|---|---|
| 0 | NOCONFLICT_AHEAD | 敌对车辆比范围更近,但不在与本车前方路线冲突的车道上。 | |||
| 1 | FOLLOWING | 一般跟驰/前导情况(不完整类型,仅在内部使用)。 | |||
| 2 | FOLLOWING_FOLLOWER | 本车正在跟随敌对车辆。 | foeBack - egoFront | egoSpeed - foeSpeed | foeBack |
| 3 | FOLLOWING_LEADER | 敌对车辆正在跟随本车。 | egoBack - foeFront | foeSpeed - egoSpeed | egoBack |
| 4 | ON_ADJACENT_LANES | 敌对车辆在本车车道的相邻车道上,同向行驶。 | |||
| 5 | MERGING | 本车和敌对车辆共享其路线的即将到来的边,且路线的合流点仍在前方(不完整类型,仅在内部使用)。 | |||
| 6 | MERGING_LEADER | 同 5。敌对车辆预计到达合流点的时间早于本车。 | foeEntryDist | foeSpeed | mergePoint |
| 7 | MERGING_FOLLOWER | 同 5。本车预计到达合流点的时间早于敌对车辆。 | egoEntryDist | egoSpeed | mergePoint |
| 8 | MERGING_ADJACENT | 同 5。车辆的当前路线导致在同一条边上的相邻车道。 | |||
| 9 | CROSSING | 本车和敌对车辆的路线有交叉边(不完整类型,仅在内部使用) | |||
| 10 | CROSSING_LEADER | 同 6。本车预计到达冲突点的时间早于敌对车辆。 | foeEntryDist | foeSpeed | foeCrossingPoint |
| 11 | CROSSING_FOLLOWER | 同 6。敌对车辆预计到达冲突点的时间早于本车。 | egoEntryDist | egoSpeed | egoCrossingPoint |
| 12 | EGO_ENTERED_CONFLICT_AREA | 遭遇是可能的交叉冲突,且本车已进入冲突区域。(目前未记录 -> TODO) | foeEntryDist | foeSpeed | foeCrossingPoint |
| 13 | FOE_ENTERED_CONFLICT_AREA | 遭遇是可能的交叉冲突,且敌对车辆已进入冲突区域。(目前未记录 -> TODO) | egoEntryDist | egoSpeed | egoCrossingPoint |
| 14 | EGO_LEFT_CONFLICT_AREA | 遭遇曾是可能的交叉冲突,但本车已离开冲突区域。 | |||
| 15 | FOE_LEFT_CONFLICT_AREA | 遭遇曾是可能的交叉冲突,但敌对车辆已离开冲突区域。 | |||
| 16 | BOTH_ENTERED_CONFLICT_AREA | 遭遇曾是可能的交叉冲突,且两辆车都已进入冲突区域(辅助类型,仅在内部使用,被评估为 BOTH_LEFT_CONFLICT_AREA 或 COLLISION)。 | |||
| 17 | BOTH_LEFT_CONFLICT_AREA | 遭遇曾是可能的交叉冲突,但两辆车都已离开冲突区域。 | |||
| 18 | FOLLOWING_PASSED | 遭遇曾是跟驰情况,但不再活跃。 | |||
| 19 | MERGING_PASSED | 遭遇曾是合流情况,但不再活跃。 | |||
| 20 | ONCOMING | 车辆在同一条车道上相向行驶。 | foeFront - egoFront | egoSpeed + foeSpeed | 车辆之间的中点 |
| 111 | COLLISION | 碰撞。 |
空间间隙定义#
- front:车辆前保险杠的位置,作为距其车道起点的偏移量
- back:车辆后保险杠的位置,作为距其车道起点的偏移量
注意
当本车和敌对车辆在连续的车道上时,间隙是通过加上中间车道的距离来计算的。
冲突类型#
基本上,我们区分两辆车的三种遭遇类型:
- 前导/跟驰情况: 车辆在冲突点前后通过相同的车道序列
- 交叉情况: 车辆在冲突点前后通过不同的车道序列
- 合流情况: 车辆在冲突点前通过不同的车道,但在冲突点后通过相同的车道
冲突定义#
对于每个冲突,都有一个入口点。对于合流和交叉冲突,还有一个出口点。 这些点对于本车和敌对车辆可能略有不同,因为该点是相对于车辆前保险杠或后保险杠计算的,而碰撞可能发生在车辆的另一部分。
- entryDist:沿车道序列,车辆前保险杠与入口点之间的距离
- 合流和相向遭遇的 exitDist:entryDist + 车辆长度
- 交叉遭遇的 exitDist:entryDist + 跟驰车辆长度 + 前导车辆宽度
- mergePoint:本车和敌对车辆的第一个公共车道的起点
- crossingPoint:两辆车的车道几何序列(中心线)相交的点
- egoCrossingPoint:沿本车车道向上游偏移敌对车辆宽度一半的交叉点
- foeCrossingPoint:沿敌对车辆车道向上游偏移本车宽度一半的交叉点
可用的 SSM#
目前,已实现以下安全替代指标:
此外,还可以生成以下额外的安全相关输出,这些输出不会链接到特定的遭遇:
注意
对于设备输出中的选择,必须使用缩写。
请注意,某些 SSM 仅适用于特定遭遇,或者针对不同遭遇的计算方式不同。 对于交叉和合流情况,我们考虑车辆相对于冲突区的“预期”进入和退出时间。 在计算接近车辆的这些时间时,我们考虑了车辆的当前减速度,如果车辆没有减速,则当前速度被外推为恒定值(即,仅当加速度为负时才考虑加速度)。
有关 SSM 定义的一些参考,请参见例如 Guido et al. (2011) "Safety performance measures: a comparison between microsimulation and observational data" 或 Mahmud et al. (2016) "Application of proximal surrogate indicators for safety evaluation: A review of recent developments and research needs"。
TTC#
碰撞时间 (TTC) 定义于所有前导/跟驰情况,其中跟驰车辆比前导车辆快。其定义为:
TTC = space_gap/speed-difference.
对于交叉或合流情况,仅当车辆 A 的预期冲突区退出时间大于车辆 B 的预期冲突区进入时间时(其中 A 是预期冲突区进入时间较小的车辆),才认为 TTC 有定义。如果是这种情况,则 TTC 定义为:
TTC = B’s distance to conflict area entry / B’s current speed.
DRAC#
对于前导/跟驰情况,当跟驰车辆的速度大于前导车辆的速度时,DRAC(避免碰撞的减速率)定义为:
DRAC = 0.5*speed_difference^2/space_gap.
对于交叉情况,仅当第一辆车(A)的预期冲突区退出时间 tA 大于第二辆车(B)的线性外推冲突区进入时间时,才认为 DRAC 有定义。在这种情况下,DRAC 定义如下:
DRAC = 2*(speedB - distConflictB/tA)/tA.
选择此值是为了使以相应速率进行的恒定减速意味着 B 在时间 tA 恰好进入冲突区,而此时车辆 A 离开它。
对于合流情况,必须测试 DRAC 计算的两种变体,并应将最小结果作为 DRAC 的适当值。
注意
这仍有待实现,目前仅使用一种变体。
MDRAC#
一种改进的 DRAC 指标称为 MDRAC,考虑了感知反应时间 (PRT),定义为:
MDRAC = 0.5*speed_difference/(TTC - PRT).
PRT 通过参数键 device.ssm.mdrac.prt 或选项 --device.ssm.mdrac.prt 配置,默认值为 1 秒。
注意
此指标尚未完全针对所有冲突类型实现!(目前仅类型 0 - 8 部分测试)
PET#
对于合流和交叉情况,PET(侵入后时间)定义为前导车辆的冲突区退出时间 tA 和跟驰车辆的冲突区进入时间 tB 之间的差值:
PET = tB - tA.
对于前导/跟驰情况,不计算 PET。
注意
当前实现状态的一些缺陷:
1) 目前冲突区域的几何形状被认为是简化的,认为交叉车道是正交的。
2) 合流区域未被处理(合流冲突的“冲突区域”实际上被认为是公共目标车道起点处的横截面。
3) 合流冲突的 DRAC 计算仍不完整
4) 忽略了对向或相邻车道交通的横向冲突
BR#
制动率在每个模拟步长记录。如果车辆加速,则记录值为 0.0。
SGAP#
间距测量为到本车前导车辆的保险杠到保险杠距离减去车辆的最小间隙
TGAP#
到前导车辆的车头时距等于间距/速度。
输出#
SSM 设备的输出写入由 routes 定义文件中的参数 device.ssm.file 指定的文件,参见上文。
输出的范围可以通过参数 device.ssm.measures(报告哪些 SSM)和 device.ssm.trajectories(是否报告车辆的完整轨迹、跟踪的 SSM 和遭遇类型)来控制。
生成的文件包含一个根元素 <SSMLog>,其中包含多个 <conflict> 元素和一个 <globalMeasures> 元素。每个报告的 <conflict> 对应于一个跟踪的遭遇,在此期间模拟过程中某个 SSM 的临界性阈值被超过。<globalMeasures> 元素保存所有模拟时间的时间线以及所选指标的相应值,这些指标未与特定冲突关联,参见可用的 SSM。
输出文件内容示例:
<SSMLog>
<conflict begin="6.50" end="13.90" ego="ego1" foe="foe1">
<timeSpan values="6.50 6.60 6.70 6.80 6.90 7.00 7.10 ..."/>
<typeSpan values="10 10 10 10 10 10 10 ..."/>
<egoPosition values="98.35,61.20 98.35,60.20 98.35,59.25 ..."/>
<egoLane values="NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 ..."/>
<egoLanePosition values="59.73 61.12 62.51 63.89 65.28 66.67 68.06 ..."/>
<egoVelocity values="0.00,-10.23 0.00,-9.78 0.00,-9.33 ..."/>
<foePosition values="76.31,48.35 77.59,48.35 78.82,48.35 ..."/>
<foeLane values="WC_0 WC_0 WC_0 WC_0 WC_0 WC_0 WC_0 ..."/>
<foeLanePosition values="45.84 47.23 48.62 50.00 51.39 52.78 54.17 ..."/>
<foeVelocity values="13.02,0.00 12.57,0.00 12.12,0.00 ..."/>
<conflictPoint values="99.23,49.46 99.23,49.46 99.23,49.46 ..."/>
<TTCSpan values="1.78 1.74 1.70 1.67 1.63 1.60 1.56 ..."/>
<minTTC time="7.40" position="99.23,49.46" type="10" value="1.48" speed="13.50"/>
<DRACSpan values="3.66 3.61 3.56 3.50 3.44 3.37 3.30 ..."/>
<maxDRAC time="6.50" position="99.23,49.46" type="10"
value="3.66" speed="12.95"/>
<PET time="9.42" position="99.23,49.46" type="17" value="0.72" speed="5.12"/>
</conflict>
<conflict begin="21.50" end="27.20" ego="ego1" foe="foe2">
...
</conflict>
...
<globalMeasures ego="ToC_veh">
<timeSpan values="0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 ..."/>
<positions values="98.35,61.20 98.35,60.20 98.35,59.25 ..."/>
<lane values="NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 NC_0 ..."/>
<lanePosition values="0.00 1.39 2.78 4.17 5.56 6.95 8.33 9.72 11.11 12.50 13.89 ..."/>
<BRSpan values="0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ..."/>
<maxBR time="363.20" position="1850.01,-4.95" value="5.53"/>
<SGAPSpan values="27.50 27.50 27.49 27.45 27.38 27.29 27.17 27.02 26.85 26.65 ..."/>
<minSGAP time="365.50" position="1863.41,-4.95" value="0.31" leader="leader"/>
<TGAPSpan values="inf 105.77 52.86 35.19 26.33 20.99 17.41 14.85 12.91 11.39 10.16 ..."/>
<minTGAP time="365.30" position="1863.14,-4.95" value="0.23" leader="leader"/>
</globalMeasures>
</SSMLog>
<conflict> 类型的元素在其子元素中包含以下信息:
| 元素 | 属性 | 类型 | 描述 | 参数 |
|---|---|---|---|---|
| timeSpan | values | 浮点数列表 | 遭遇持续时间内所有模拟时间点。所有其他列表类型元素的条目都是相对于相应时间点给出的。 | --device.ssm.trajectories |
| typeSpan | values | 整数列表(遭遇类型代码) | 跟踪遭遇的分类时间序列。 | --device.ssm.trajectories |
| egoPosition | values | 2D 坐标列表 | 本车位置(坐标)的时间序列。 | --device.ssm.trajectories |
| egoLane | values | 字符串列表 | 本车车道 ID 的时间序列。 | --device.ssm.trajectories --device.ssm.write-lane-positions |
| egoLanePosition | values | 浮点数列表 | 本车在车道上位置的时间序列。 | --device.ssm.trajectories --device.ssm.write-lane-positions |
| egoVelocity | values | 2D 向量列表 | 本车速度向量的时间序列。 | --device.ssm.trajectories |
| foePosition | values | 2D 坐标列表 | 敌对车辆位置(坐标)的时间序列。 | --device.ssm.trajectories |
| foeLane | values | 字符串列表 | 敌对车辆车道 ID 的时间序列。 | --device.ssm.trajectories --device.ssm.write-lane-positions |
| foeLanePosition | values | 浮点数列表 | 敌对车辆在车道上位置的时间序列。 | --device.ssm.trajectories --device.ssm.write-lane-positions |
| foeVelocity | values | 2D 向量列表 | 敌对车辆速度向量的时间序列。 | --device.ssm.trajectories |
| conflictPoint | values | 2D 坐标列表 | 冲突点(最终外推)坐标的时间序列。冲突点被视为冲突区的相应入口点。 | --device.ssm.trajectories |
| TTCSpan | values | 浮点数列表 | 计算出的 TTC 值的时间序列。可能包含 'NA' 条目,对应于 TTC 未定义的时间。 | --device.ssm.trajectories --device.ssm.measures "TTC" |
| DRACSpan | values | 浮点数列表 | 计算出的 DRAC 值的时间序列。可能包含 'NA' 条目,对应于 DRAC 未定义的时间。 | --device.ssm.trajectories --device.ssm.measures "DRAC" |
| minTTC | time | 浮点数 | TTC 最小测量值的时间点。 | --device.ssm.measures "TTC" |
| position | 2D 坐标 | 相应冲突点的坐标。 | --device.ssm.measures "TTC" | |
| type | 整数(遭遇类型代码) | 相应遭遇类型的类型代码。(定义了 TTC 计算 的变体。) | --device.ssm.measures "TTC" | |
| value | 浮点数 >= 0 | 最小测量的 TTC 值。 | --device.ssm.measures "TTC" | |
| speed | 浮点数 >= 0 | 发生 minTTC 时报告车辆的速度。 | --device.ssm.measures "TTC" | |
| maxDRAC | time | 浮点数 | DRAC 最大测量值的时间点。 | --device.ssm.measures "DRAC" |
| position | 2D 坐标 | 相应冲突点的坐标。 | --device.ssm.measures "DRAC" | |
| type | 整数(遭遇类型代码) | 相应遭遇类型的类型代码。(定义了 DRAC 计算 的变体。) | --device.ssm.measures "DRAC" | |
| value | 浮点数 >= 0 | 最大测量的 DRAC 值。 | --device.ssm.measures "DRAC" | |
| speed | 浮点数 >= 0 | 发生 maxDRAC 时报告车辆的速度。 | --device.ssm.measures "DRAC" | |
| PET | time | 浮点数 | PET 最小测量值的时间点。(通常 PET 仅测量一次,因此不报告 PETSpan。) | --device.ssm.measures "PET" |
| position | 2D 坐标 | 相应侵入点的坐标。 | --device.ssm.measures "PET" | |
| type | 整数(遭遇类型代码) | 相应遭遇类型的类型代码。 | --device.ssm.measures "PET" | |
| value | 浮点数 >= 0 | 测量的 PET 值。 | --device.ssm.measures "PET" | |
| speed | 浮点数 >= 0 | 发生 PET 时报告车辆的速度。 | --device.ssm.measures "PET" |
<globalMeasures> 元素具有以下结构:
| 元素 | 属性 | 类型 | 描述 | 参数 |
|---|---|---|---|---|
| timeSpan | values | 浮点数列表 | 报告指标被记录时的模拟时间点。 | |
| positions | values | 2D 坐标列表 | 报告指标被记录时的模拟位置。 | --device.ssm.write-positions |
| lane | values | 字符串列表 | 报告指标被记录时的模拟车道 ID。 | --device.ssm.write-lane-positions |
| lanePosition | values | 浮点数列表 | 报告指标被记录时的车道上模拟位置。 | --device.ssm.write-lane-positions |
| BRSpan | values | 浮点数列表 | timeSpan 中给定时间点的制动率值。 | --device.ssm.measures "BR" |
| SGAPSpan | values | 浮点数列表 | timeSpan 中给定时间点的间距值。 | --device.ssm.measures "SGAP" |
| TGAPSpan | values | 浮点数列表 | timeSpan 中给定时间点的车头时距值。 | --device.ssm.measures "TGAP" |
| maxBR | time | 浮点数 | 记录到最大制动率值的时间。 | --device.ssm.measures "BR" |
| value | 浮点数 | 记录到的最大制动率值。 | --device.ssm.measures "BR" | |
| position | 2D 坐标 | 记录到最大制动率时本车的位置。 | --device.ssm.measures "BR" | |
| minSGAP | time | 浮点数 | 记录到最小间距的时间。 | --device.ssm.measures "SGAP" |
| value | 浮点数 | 记录到的最小间距值。 | --device.ssm.measures "SGAP" | |
| position | 2D 坐标 | 记录到最小间距时本车的位置。 | --device.ssm.measures "SGAP" | |
| minTGAP | time | 浮点数 | 记录到最小车头时距的时间。 | --device.ssm.measures "TGAP" |
| value | 浮点数 | 记录到的最小车头时距值。 | --device.ssm.measures "TGAP" | |
| position | 2D 坐标 | 记录到最小车头时距时本车的位置。 | --device.ssm.measures "TGAP" |
将 SSM 设备限制在边和交叉口#
选项 --device.ssm.filter-edges.input-file <input_list> 可用于指定一个输入文件,其中包含用于限制冲突测量的 edgeID 和 junctionID。
边和交叉口必须按以下方式定义:
edge:edgeID1
edge:edgeID2
...
junction:junctionID1
junction:junctionID2
...
使用与给定交叉口相邻的边和给定的边来测量冲突。仅测量和输出在这些边上发生的冲突。
TraCI#
如果装备了设备的车辆启用了相应的指标,则可以检索以下值:
- traci.vehicle.getParameter(vehID, "device.ssm.minTTC")
- traci.vehicle.getParameter(vehID, "device.ssm.minPET")
- traci.vehicle.getParameter(vehID, "device.ssm.maxDRAC")
这些值对应于当前所有活跃遭遇的当前最小/最大值。
可视化示例#
SSM 输出文件可用作 plotXMLAttributes.py 的输入。这是一个示例:

