使用 SUMO 进行仿真(6)-车辆属性说明

王 茂南 2025年8月20日07:53:24
评论
3751字阅读12分30秒

简介

我们在 使用 SUMO 进行仿真(3)-车流的生成(Route 文件)中详细介绍了如何生成车流。但是在那一篇中,我们着重介绍了如何生成 route 文件,如何去定义「有多少车」,「从哪里开到哪里」,「转向率」是多少。

但是那一篇生成的车辆的类型都是一样的。这一篇我们会详细介绍一下如何去定义车辆的类型,使得可以有不同类型的车辆。同时我们会介绍一部分关于安全的指标(注意尽量将 SUMO 更新到最新的)。

下面是主要的两个参考文献:

如果我们想要在仿真过程中对车辆的属性进行修改,或是实时获取车辆的属性,则可以使用 traci 来完成。这部分的内容会在之后讲到。

 

车辆属性

我们使用 vType 来定义车辆的类型。下面是一个定义车辆类型的例子,定义了 type1 这个类型,接着定义车辆的属性。

  1. <routes>
  2.     <vType id="type1" accel="2.6" decel="4.5" sigma="0.5" length="5" maxSpeed="70"/>
  3.     <vehicle id="veh1" type="type1" depart="0">
  4.         <route edges="edge1 edge2 edge3"/>
  5.     </vehicle>
  6. </routes>

 

设置启动损失

例如我们可以通过调整 startupDelay 来设置车辆的启动损失。例如从「红灯变为绿灯」,车辆不会马上启动,而是会有一个反应时间。下面的 rou 文件定义了两种类型的车辆,一个是有「启动损失」的,另外一个是没有「启动损失」。

  1. <routes>
  2.     <vType id="type1" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="70"/>
  3.     <vType id="type2" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="70" startupDelay="1"/>
  4.     <route id="route0" color="1,1,0" edges="2fi 2si 1o"/>
  5.     <route id="route1" color="1,1,0" edges="1fi 1si 2o"/>
  6.     <!-- 没有启动延迟, type="type1" route="route0" -->
  7.     <!-- 有启动延迟, type="type2" route="route1" -->
  8.     <vehicle id="0_0" type="type1" route="route0" depart="0" color="0,1,0"/>
  9.     <vehicle id="1_0" type="type2" route="route1" depart="0" color="1,0,0"/>
  10.     <vehicle id="0_1" type="type1" route="route0" depart="2" color="0,1,0"/>
  11.     <vehicle id="1_1" type="type2" route="route1" depart="2" color="1,0,0"/>
  12.     <vehicle id="0_2" type="type1" route="route0" depart="4" color="0,1,0"/>
  13.     <vehicle id="1_2" type="type2" route="route1" depart="4" color="1,0,0"/>
  14.     <vehicle id="0_3" type="type1" route="route0" depart="6" color="0,1,0"/>
  15.     <vehicle id="1_3" type="type2" route="route1" depart="6" color="1,0,0"/>
  16.     <vehicle id="0_4" type="type1" route="route0" depart="8" color="0,1,0"/>
  17.     <vehicle id="1_4" type="type2" route="route1" depart="8" color="1,0,0"/>
  18.     <vehicle id="0_5" type="type1" route="route0" depart="10" color="0,1,0"/>
  19.     <vehicle id="1_5" type="type2" route="route1" depart="10" color="1,0,0"/>
  20. </routes>

最终的仿真结果如下所示,其中「从左到右」是有「启动损失」的(也就是红色的车辆)。这里为了突出效果,把启动损失调整的比较大(3s)。这里是每辆车都会有启动损失。例如离路口最近的车,在绿灯亮之后,会有等待。后面一辆车,在看到前面的车移动之后,还是会有启动时间。

可以看到下面绿灯亮了之后,「绿色」的车会马上启动,而「红色」的车会有一定的延迟。

使用 SUMO 进行仿真(6)-车辆属性说明

关于启动损失可以查看 Github Issue,Startup loss time/reaction time #7832

 

SSM Device 介绍

设置 SSM Device

我们可以为车辆可以配备 SSM Device,用于记录车辆的一些安全性数据。下面是方式可以将 SSM Device 部署在一辆车上面:

  1. <routes>
  2.     ...
  3.     <vehicle id="v0" route="route0" depart="0">
  4.         <param key="has.ssm.device" value="true"/>
  5.     </vehicle>
  6.     ....
  7. </routes>

我们也可以将 SSM Device 部署在一类车上面,从而可以使得一类车都具有 SSM Device

  1. <routes>
  2.     <vType id="type1" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="70">
  3.         <param key="has.ssm.device" value="true"/>
  4.         <param key="device.ssm.measures" value="TTC DRAC PET BR SGAP TGAP"/>
  5.         <param key="device.ssm.thresholds" value="3.0 3.0 2.0 0.0 0.2 0.5"/>
  6.         <param key="device.ssm.range" value="50.0" />
  7.         <param key="device.ssm.extratime" value="5.0" />
  8.         <param key="device.ssm.file" value="ssm_v0.xml" /> <!-- 输出文件 -->>
  9.         <param key="device.ssm.trajectories" value="false" />
  10.         <param key="device.ssm.geo" value="false" />
  11.         <param key="device.ssm.write-positions" value="false" />
  12.     </vType>
  13.     <route id="route0" color="1,1,0" edges="2fi 2si 1o"/>
  14.     <vehicle id="0_0" type="type1" route="route0" depart="0" color="0,1,0"/>
  15.     <vehicle id="0_1" type="type1" route="route0" depart="2" color="0,1,0"/>
  16.     <vehicle id="0_2" type="type1" route="route0" depart="4" color="0,1,0"/>
  17.     <vehicle id="0_3" type="type1" route="route0" depart="6" color="0,1,0"/>
  18.     <vehicle id="0_4" type="type1" route="route0" depart="8" color="0,1,0"/>
  19.     <vehicle id="0_5" type="type1" route="route0" depart="10" color="0,1,0"/>
  20. </routes>

 

输出文件

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2025年8月20日07:53:24
  • 转载请务必保留本文链接:https://mathpretty.com/14975.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: