SUMO使用教程(二)

来源:互联网 发布:屏幕视频录制软件 编辑:程序博客网 时间:2024/06/05 11:07
在教程一当中,我们用了osm和SUMO的工具,生成了一些列文件,最后得以仿真。其实,仔细一看之后,这些生成的文件和配置文件本质上都是xml文件,换句话说,我们完全可以自己用一个记事本编辑这些文件。
首先是net.xml文件。作为一个道路文件,抽象成图之后,其实就是由节点和边构成,所谓的节点,映射到物理世界就是十字路口或者三叉路口,反正就是两条路的交汇处,而边就是道路。换句话说,只要我们有了节点和边就可以得到net.xml文件。
我们先编写nod.xml和edg.xml,然后将其结合,而不是直接写出net.xml,这有一点模块化和封装的思想在里面。
1.nod.xml。
这是一个简单的nod.xml文件。node文件的node标签里面有四个属性,id,x,y,type。
  (新浪博客竟然无法显示xml文件,只能截图了)
 
id就是交叉路口的名字,x,y是交叉口的坐标,不像opencv或者显示屏驱动一下,这里的坐标就是左下角是原点。
type属性复杂一些:
priority: 车辆必须等待,直到它们右侧车辆完全通过路口。
Vehicles have to wait until vehicles right to them have passed the junction(并不知道这要表达什么。)
• traffic_light: 交叉口被交通灯控制着

• right_before_left: 来自右边的车辆优先通过
Vehicles will let vehicles coming from their right side pass.(还是不知道)


2.edg.xml文件
下面是一个简单的edg.xml文件:



要注意的是,edge文件对于节点有两个方向,当只存在一个方向的时候,就是单行线。笔者不禁想起家乡坑爹的单行线。

3.有了这两个文件之后,可以用netconvert转换成net.xml。

同样的,node文件和edge文件作为输入,而net.xml作为输出。

最后,我们可以用SUMO-gui看一下地图,

共有12个nodes,所以如上图所示。根据坐标,可以知道左下角是node1,下边中间的是node2,类型分别为traffic_light和priority,所以下面展示的是不一样的。


edge的numlane都是2,所以都是双车道。


到这里,笔者提出了一个问题,像自己家附近单车道管制的地方怎么仿真?
0 0
原创粉丝点击