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

您所在的位置:网站首页 车道转弯半径怎么画的图片 sumo之使用netedit绘制路网并进行简单模拟

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

2024-07-14 11:29| 来源: 网络整理| 查看: 265

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键入如下代码:

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

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

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

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

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

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

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

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

效果图如下:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3