首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SUMO使用教程(二)

SUMO使用教程(二)

作者头像
钱塘小甲子
发布2019-01-29 10:02:56
1.6K0
发布2019-01-29 10:02:56
举报
在教程一当中,我们用了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,所以都是双车道。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档