加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SUMO仿真快速入门系列二:使用XML生成自定义地图

发布时间:2020-12-15 22:56:20 所属栏目:百科 来源:网络整理
导读:上图是一个简单的道路模型,在SUMO 中街道模型采用结点(Nodes)和线段(Edges)进行描述,例如一条街道至少需要两个结点和一条线段描述。这个道路模型比较简单,具体步骤如下: 一、编写nodes文件: XML Schema Definitions:http://sumo.sourceforge.net/xs

上图是一个简单的道路模型,在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


路口细节:



至此,简单的自定义地图就实现了。


原创文章,转载请注明!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读