SUMO仿真快速入门系列二:使用XML生成自定义地图
上图是一个简单的道路模型,在SUMO 中街道模型采用结点(Nodes)和线段(Edges)进行描述,例如一条街道至少需要两个结点和一条线段描述。这个道路模型比较简单,具体步骤如下: 一、编写nodes文件:XML Schema Definitions:http://sumo.sourceforge.net/xsd/nodes_file.xsd 其中id 是结点的标识号码,用于后面的程序调用使用,x和y都是坐标,其数值单位为m,描述了这些结点距离参考原点的距离。具体可以查看XML Schema Definitions里的内容。
ex_NODE.nod.xml <nodes> <node id="node1" x="100.0" y="100.0" type="traffic_light"/> <node id="node2" x="400.0" y="100.0" type="priority"/> <node id="node3" x="700.0" y="100.0" type="traffic_light"/> <node id="node4" x="100.0" y="300.0" type="traffic_light"/> <node id="node5" x="400.0" y="300.0" type="traffic_light"/> <node id="node6" x="700.0" y="300.0" type="traffic_light"/> <node id="node7" x="100.0" y="600.0" type="traffic_light"/> <node id="node8" x="400.0" y="600.0" type="traffic_light"/> <node id="node9" x="700.0" y="600.0" type="traffic_light"/> <node id="node10" x="100.0" y="800.0" type="traffic_light"/> <node id="node11" x="400.0" y="800.0" type="traffic_light"/> <node id="node12" x="700.0" y="800.0" type="priority"/> </nodes> 二、编写edges文件:XML Schema Definitions:http://sumo.sourceforge.net/xsd/edges_file.xsd
具体可以看XML Schema Definitions里的内容。注意Nolanes属性名称已改为numLanes。 ex_EDGE.edg.xml <edges> <edge id="edgeR-0-0" from="node1" to="node2" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-0-1" from="node2" to="node3" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-0-0" from="node2" to="node1" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-0-1" from="node3" to="node2" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-0-0" from="node1" to="node4" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-0-0" from="node4" to="node1" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-0-1" from="node2" to="node5" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-0-1" from="node5" to="node2" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-0-2" from="node3" to="node6" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-0-2" from="node6" to="node3" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-1-0" from="node4" to="node5" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-1-1" from="node5" to="node6" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-1-0" from="node5" to="node4" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-1-1" from="node6" to="node5" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-1-0" from="node4" to="node7" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-1-0" from="node7" to="node4" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-1-1" from="node5" to="node8" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-1-1" from="node8" to="node5" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-1-2" from="node6" to="node9" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-1-2" from="node9" to="node6" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-2-0" from="node7" to="node8" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-2-1" from="node8" to="node9" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-2-0" from="node8" to="node7" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-2-1" from="node9" to="node8" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-2-0" from="node7" to="node10" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-2-0" from="node10" to="node7" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-2-1" from="node8" to="node11" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-2-1" from="node11" to="node8" priority="75" numLanes="2" speed="40" /> <edge id="edgeU-2-2" from="node9" to="node12" priority="75" numLanes="2" speed="40" /> <edge id="edgeD-2-2" from="node12" to="node9" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-3-0" from="node10" to="node11" priority="75" numLanes="2" speed="40" /> <edge id="edgeR-3-1" from="node11" to="node12" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-3-0" from="node11" to="node10" priority="75" numLanes="2" speed="40" /> <edge id="edgeL-3-1" from="node12" to="node11" priority="75" numLanes="2" speed="40" /> </edges> 三、用nodes和edges文件生成自定义的地图netconvert --node-files=ex_NODE.nod.xml --edge-files=ex_EDGE.edg.xml --output-file=MySUMONet.net.xml 这样就生成了MySUMONet.net.xml的地图文件,文件较大,这里就不贴出来了。 四、在sumo-gui下查看自定义的地图在terminal中输入sumo-gui,File->Open Network
路口细节:
至此,简单的自定义地图就实现了。
原创文章,转载请注明!(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |