1.基本路网的构建(十字路口)

在下载完成sumo后,bin目录下有一个可以运行的nete.exe,点击可以进入界面进行路网的编辑,编辑生成.net.xml文件。点击进去后,点击File->New Network就能开始建立自己的路网了。截图如下:

1.1构建十字路口

在这里介绍的时候,介绍如何建立一个十字路口。刚进入的界面会有一个红色的小圆圈,用来定义结点的。在连接完四个节点后如下所示;

然后在菜单栏点击如下按钮,就可以保存并进入下一步的编辑:

为了规范一点,点击结点(即红色的区域) 可以在pos这个位置设置点的坐标,如下图:

这里将五个点的坐标分别设置为(0,0)(0,100)(100,0)(-100,0)(0,-100).效果如下所示:

基本框架建立以后,选中某一条边点击右键,可以进行变得操作。由于道路有两个方向,这里选择对每条边添加相反的边。操作步骤如下:

1.2 添加相反的边(双向车道)

选中某条边点击右键->edge operations->add reverse diection for edge就能添加出相反的边。重复四次以后的效果图如下:

1.3添加车道(双向六车道)

完成上述绘制以后,可以看到一个基本的十字路口,通过对单条车道的编辑,可以进行车道的扩展。编辑方法如下:选中某条车道以后,在左边的参数栏中间numLanes改为3即可得到3条车道。现在对每条车道的numLanes均改为3就可得到双向六车道的道路。效果图如下:

(如果还行针对某一条车道进行参数设置,可以在edit->clicking should select edges or lanes中取消这一项,选中要修改的车道即可在左边的参数栏中进行参数修改)

1.4车道通行设置

接下来进行车道通行的设置,比如限制某条车道不可右转。

在任务栏中点击如下图所示按钮,可进行车道直接的连接设置:

点击完成后的效果图如下:

车道上的箭头指示了车道接下来可以行驶的路线。以南北方向第六条车道为例,选中以后可得到如下的效果:

 左侧任务栏

可以看到,该车道目前可以右转可以直行可以左转。为了限制右转,可以点击东西方向第六条车道,点击以后就能变成墨绿色,然后点击参数栏的ok即可。设置完成后的效果图如下:

针对黄色的限制行驶车道,如果要强行改成可以形式,则按住Ctrl键再点击即可。

1.5红绿灯及通行设置

设置完基本的十字路口后,还缺少红绿灯的设置。设置红绿灯点击任务栏的如下按钮:

然后点击十字路口的中心(即红色区域),再点击参数栏的Create即可。效果如下:

在参数栏中,可以看见红绿灯的相位:,选中某一条线(以南北方向第一车道,绿色的为例)点击右键可以看见其状态(J0_0就代表了第一个G)。可以删除相位也可以添加相位,如果要编辑,只需要跟上面一样的操作,然后改变其颜色就能改变该车道的通行状况。

例如,不允许由南向北的车辆左转,用上面的方法就能得到如下的效果图:

设置完成后点击左侧参数栏的Save,至此基本的十字路口设置完成。

按住Ctrl+S就能保存设置好的路网,文件后缀为.net.xml。保存后可以通过上一篇文章介绍的方法打开路网进行查看。

在sumo-gui.exe中打开路网的效果如下图:

可以看到刚才的设置效果:由南向北的车辆禁止左转。

2.对路网进行交通模拟

在基本的十字路口编辑完成以后,进行简单的道路模拟。

模拟出一辆车从某一条边(即道路)运动到另一条边需要知道在路网中边的编号。下面模拟的是一辆车由东向西运动然后右转进入由北向南运动。

此时需要知道进过的边的编号,在netedit中,点击边即可在左侧的参数栏中查看编号,我模拟的两条编号分别是E1和E0。

然后开始编写车流文件.rou.xml。这里命名为cross_road_2.rou.xml键入如下代码:

<routes><vType id="myType" vClass="taxi" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="50" callFollowMode="IDM"actionStepLength="1" tau="1.4" laneChangeModel="SL2015"/><vehicle id="00" tpye="myType" depart="2" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="E1  E0"/>  </vehicle>
</routes>

在代码段中,<vType>部分是车辆的一下参数,包括加速度、初速度等;<vehicle>部分就是定义的第一辆小车,id为“00”,depart表示进入的时间 departLane表示进入的车道等等。<route edges >定义的就是车辆行走的路线,前面以及得到了车辆走过边的编号。如果需要模拟多辆汽车,只要复制<vehicle>部分即可,id不能相同,depart即进入的时间只能往上增加。

在完成车辆的路由文件以后,还需要完成.sumocfg文件的编写。这里将其命名为cross_road_2.sumocfg。在文件中键入一下代码:

<configuration><input><net-file value="cross_road_2.net.xml"/><route-files value="cross_road_2.rou.xml"/></input><time><begin value="0"/><end value="10000"/></time>
</configuration>

代码中 道路文件cross_road_2.net.xml和车辆路由文件cross_road_2.rou.xml需要根据读者实际情况进行修改。<time>部分定义了仿真开始和结束的时间。

在都编写完成以后,按照上一篇文章介绍的方法就能完成仿真。仿真的效果图如下所示:

1.小车进入并正常形式:

2.走到十字路口等待红绿灯:

3.完成转弯继续正常形式:

为了模拟多台车辆的运动效果,修改cross_road_2.rou.xml代码后如下所示:                    (其它代码不变)

<routes><vType id="myType" vClass="taxi" accel="0.8" decel="4.5" sigma="0.5" length="5" maxSpeed="50" callFollowMode="IDM"actionStepLength="1" tau="1.4" laneChangeModel="SL2015"/><vehicle id="00" tpye="myType" depart="2" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="E1  E0"/>  </vehicle><vehicle id="01" tpye="myType" depart="3" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="E1  -E2"/>  </vehicle><vehicle id="02" tpye="myType" depart="4" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="E2  E0"/>  </vehicle><vehicle id="03" tpye="myType" depart="5" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="E3  -E2"/>  </vehicle><vehicle id="04" tpye="myType" depart="6" departLane="1" departPos="0" arrivalLane="0" arrivalPos="max" color="1,0,0"depardSpeed="20"> <route edges="-E0  -E3"/>  </vehicle>
</routes>

效果图如下:

sumo之使用netedit绘制路网并进行简单模拟相关推荐

  1. SUMO轨迹图的绘制和traci接口的简单使用

    文章目录 前言 一.SUMO绘制轨迹图 二.Traci接口的简单使用 1.引入库 2.启动SUMO 3.Traci接口的简单调用 总结 前言 本人小白,blog主要记录本人的一些学习过程和存在的疑惑, ...

  2. 使用Python,Opencv绘制调色板及圆形来模拟霓虹的渐变效果

    使用Python,Opencv绘制调色板及圆形来模拟霓虹的渐变效果 1. 效果图 2. 源码 参考 这篇博客将使用python,opencv绘制调色板及圆形来模拟霓虹的渐变效果. 1. 效果图 可以构 ...

  3. OpenCASCADE绘制测试线束:简单的向量代数和测量之测量命令

    OpenCASCADE绘制测试线束:简单的向量代数和测量之测量命令 测量命令 pnt pntc 2dpntc pntsu pntcons drseg 2ddrseg mpick mdist 测量命令 ...

  4. OpenCASCADE绘制测试线束:简单的向量代数和测量之矢量代数命令

    OpenCASCADE绘制测试线束:简单的向量代数和测量之矢量代数命令 矢量代数命令 vec 2dvec pln module 2dmodule norm 2dnorm inverse 2dinver ...

  5. 手把手交你安装配置sumo(解决netedit.exe打不开.xml文件)

    第一步,先去下载一个sumo1.8.0,当然你也可以去下载别的版本.这里直接去官网上下载就很好,如果您觉得找起来麻烦,可以去下载我网盘上的sumo-win64-1.8.0.zip https://pa ...

  6. OMNeT++ SUMO 学习记录(六)SUMO 路网生成及简单仿真实例

    一.SUMO 路网生成方式 1.外部导入 可以从开源地图集 openstreetmap 中下载地图生成 *.osm 文件,然后通过 sumo 自带的 netconvert 程序将其转换为路网文件 (* ...

  7. omnet++,veins,sumo使用多应用层实现车辆和行人的模拟

    1.完成网络的搭建: 搭建一个简单的十字路口场景: 1)定义结点:新建intersection.node.xml,内容如下: NOTE1:结点属性type="traffic_light&qu ...

  8. python绘图subplot绘制5幅图:以2行绘制,首行3幅图,次行2幅图居中(内含绘制3幅图简单版)

    文章目录 省时版本解决方法 遇到的问题 解决方法 参考 省时版本解决方法 请使用matplotlib.gridspec import matplotlib import matplotlib.pypl ...

  9. 1过程流程图 3 apqp_如何绘制流程图?这里有3种绘制方法,既简单又高效!1分钟可学会...

    工作中,很多小伙伴需要绘制流程图,那么如何绘制流程图呢?其实并不难,今天小编就来给大家分享流程图的3种绘制方法,大家可以根据自己的想法选择最适合自己的那一种哦~ 一.Word制作 1.借助SmartA ...

最新文章

  1. 再这么配培养基,你的细菌都被毒死了!
  2. Bzoj3998 弦论
  3. 整理的几个常用的数据库维护的脚本
  4. 直播围观!百度大脑智能监控如何为安全生产保驾护航?
  5. 豆瓣python网络数据采集器代理_Python 网络数据采集1
  6. ISO27001LA国际信息安全管理主任审核员(IRCA)认证
  7. 最大子矩阵问题----悬线法
  8. C语言4位BCD码加法器,四位二进制8421BCD码加法器.doc
  9. shell用户输入数字加法操作
  10. 孰能浊以止,静之徐清
  11. 读书笔记:《浪潮之巅:下》
  12. 【CXY】JAVA基础 之 Set
  13. ticklength
  14. mac环境修改idea.vmoptions导致idea无法启动(闪退)
  15. crop图片后,同时修改物体相应的坐标
  16. 王卫不再担任顺丰速运法人 变更为陈雪颖
  17. Android-四大天王
  18. poj2421修建道路
  19. Google网址大全
  20. Codeforces 939C - Convenient For Everybody

热门文章

  1. 森锐读卡器连接不上_蓝牙接收器配对不成功的常见问题和解决方案
  2. c语言信用卡号验证,Javascript验证Visa和MasterCard信用卡号的方法
  3. 微信分销商城如何推广比较吸引粉丝
  4. SPI MOSI和MISO 相位不同
  5. YOLOV3--训练数据+视频检测
  6. 大天使之剑h5服务器临时维护,大天使之剑H5合服细节 战盟对决时间安排
  7. Landesk桌面管理之服务器管理篇
  8. 详解OSI七层模型和TCP/IP模型
  9. 校招进大厂的Tips
  10. Dremel学习总结1