1、错误提示
Simulation started with time: 0.00
Error: Vehicle '15' is not allowed todepart on any lane of its first edge.
Quitting (on error).
根据提示来看,加在了net之后车辆并没有运行。那么我们就来查看一下不能运行的原因。
2、文件的来龙去脉
2.1OSM文件
首先我们从OpenStreetMap上下载自己感兴趣的区域,并将相应区域下载,下载后的文件是*.osm格式。具体如图(这里取名为csdnTest.osm):
2.2net文件
将OSM文件转换为sumo可用的路网文件,这个时候就要请出:NETCONVERT了!!
我的osm文件存放路径:C:\Users\flyeah\Desktop\osmRandom,你们可以根据自己的存储路径来替换即可。sumo版本为0.27.1.
发现上图的success,表明我们生成成功了。OK!
2.3trip文件
有了路网,那么下一步就是,道路有了,但是没有车辆跑啊???好的,下面我们生成交通需求文件,我们选择trips文件。sumo给我们提供了根据net文件随机生成trips.xml文件的工具,就是:randomTrips.py!!!
我们利用它生成相应的需求文件csdnTest.trips.xml:
没有报错,在文件夹下面我们也发现了相应的文件!ok!又一个文件搞定!
2.4rou文件
根据前面生成的文件,我们知道有了net文件和trips文件,那么接下来就可以生成后路径文件了。接下来rou文件登场,我们使用DUAROUTER工具实现csdnTest.rou.xml文件的生成:
好吧,到这里你也发现问题了,这么多的Error。。。。。不过rou文件还是生成了!好吧,先不管这些。既然有了net和rou文件,那么先跑一跑试一试。
2.5仿真
准备仿真配置文件。具体内容:
好了,现在sumo-gui加载跑一下。
不错,加载net文件成功了!那就Play一下吧!
我擦,竟然失败了,错误就是开头我们提到了,车辆不能运行!!!
3、排查错误
在我们这里,是显示的:
Error: Vehicle '16' is not allowed todepart on any lane of its first edge.
Quitting (on error).
那我们就查看车辆16的一些信息。
打开rou.xml文件,找到如下内容:
按照错误的提示,在道路的第一个路段车辆就不能加载,路径中的第一个路段为:-443337016,那么我们就到net.xml文件中搜索相应路段的信息。我找啊找~,发现如下图所示:
额,我们主要到这个道路的属性type=“highway.service”,也就是高速服务站类型,我们查看相应的允许类型,发现服务站就不允许汽车行驶。【想想也是,你再服务站里开车???】因此,在自动生成trips文件的时候,没有考虑道路的类型。默认性况下车的类型是passenger(家用普通轿车),那么不考虑道路类型,有默认生成汽车,那面就会发生不允许汽车行驶的道路最终包含在了trips文件中。那么我们接下里就需要提出路网文件中的service等类型。sumo很好的考虑到了这个问题,只是在用NETCONVERT工具时在后面加上--remove-edges.by-type "string",其中string根据自己的路网而定,可以通过这个命令将不允许汽车行驶的道路剔除。
改正方案:
以上步骤相同,只是在用NETCONVERT工具时在后面加上--remove-edges.by-type "string",其中string根据自己的路网而定。
相关信息:
默认车辆类型:http://sumo.dlr.de/wiki/Vehicle_Type_Parameter_Defaults
道路类型文件:http://sumo.dlr.de/wiki/SUMO_edge_type_file