2、路网构建基础:使用netedit绘制简单十字路口、设置车道与连接关系。
好,咱们正式开始动手了。
上一章我们聊了SUMO的整体框架,你可能觉得有点虚。这一章,我们来点实在的——亲手画一个十字路口。
你想想看,一个交通仿真系统,最核心的载体是什么?就是路网。没有路网,车往哪儿跑?所以,路网构建是基本功。我个人习惯,不管多复杂的项目,第一步永远是先画一个标准的十字路口,把流程跑通。
2.1 启动netedit,认识界面
netedit是SUMO自带的图形化路网编辑器。说白了,就是给你一个画板,你拿鼠标在上面画路。
启动方式很简单,在命令行里敲:
netedit
或者你在SUMO的安装目录下找到netedit.exe双击也行。我刚开始用的时候,总记不住命令,后来干脆在桌面建了个快捷方式。
界面打开后,你会看到几个主要区域:
- 画布区:中间最大的空白区域,你就在这儿画路。
- 工具栏:左侧竖排的一堆图标,有选择、画边、画连接等。
- 属性面板:右侧,选中某个元素后,这里会显示它的详细参数。
嗯,这里要注意,第一次打开可能会有点懵。别急,我们只用到其中几个核心功能。
2.2 绘制道路:从一条边开始
在SUMO里,一条路叫“边”(Edge)。两条边相交的地方叫“节点”(Junction)。
我们先画一条东西走向的路。
- 点击左侧工具栏的 创建边 图标(看起来像一条带箭头的线)。
- 在画布上点击一下,确定起点。
- 再点击一下,确定终点。一条路就出来了。
是不是很简单?但这里有个坑。你画出来的路默认是单向的,箭头指向终点。我们做十字路口,需要双向车道。
怎么解决?两种方法:
- 方法一: 画完一条边后,再反向画一条。麻烦,不推荐。
- 方法二: 在属性面板里,找到
spread type这个参数,把它改成center。这样,你画一条边,系统会自动生成双向车道。
我建议你直接用方法二。我在项目中遇到过,新手用方法一画出来的路,经常出现连接关系错乱,排查起来很头疼。
2.3 构建十字路口:画第二条路
好,现在画一条南北走向的路,让它和刚才那条路相交。
操作步骤完全一样:
- 点击 创建边 图标。
- 从北往南画,穿过刚才那条路。
- 注意,画的时候,终点要落在第一条路的“身上”,而不是旁边。系统会自动识别交叉点。
画完之后,你会看到两条路交叉的地方,自动生成了一个黄色的节点。这个节点就是十字路口的中心。
为什么会自动生成?因为netedit检测到两条边相交了,它认为这里需要一个路口来管理交通流向。嗯,这个逻辑很聪明。
2.4 设置车道数量与方向
默认画出来的路,每个方向只有一条车道。现实中的十字路口,至少得有一条左转、一条直行、一条右转吧?
我们来改一下。
- 选中一条边(点击它,变红就表示选中了)。
- 在右侧属性面板里,找到
numLanes这个参数。 - 把值改成
3。回车。
你会看到,这条路瞬间变成了三条车道。但注意,这三条车道目前是“通用”的,没有指定转向。
怎么指定?我们需要用到“连接关系”(Connections)。
2.5 设置连接关系:让车能转弯
连接关系,说白了就是告诉SUMO:从A路来的车,到了路口,可以往哪几个方向走。
操作步骤:
- 点击左侧工具栏的 创建连接 图标(看起来像两个箭头对接)。
- 鼠标移到路口中心,你会看到每条车道都伸出了“触手”。
- 点击一条车道(比如最左侧的车道),然后点击它要去的目标车道(比如对面路的左转车道)。
- 一条绿色的连接线就出现了,表示连接建立成功。
我一般这样设置一个标准的十字路口:
- 最左侧车道:连接对面路的左转车道。
- 中间车道:连接对面路的直行车道。
- 最右侧车道:连接右侧路的右转车道(或者直行+右转)。
这里有个细节。右转车道,在SUMO里通常不需要单独设置连接,因为默认允许右转。但如果你希望右转车辆不受红绿灯控制,可以单独设置一条“右转专用道”并跳过连接。
2.6 保存与验证
画完之后,记得保存。文件格式是 .net.xml。
保存后,我建议你用SUMO自带的工具验证一下:
netconvert -s your_network.net.xml -o output.net.xml
如果没有任何报错,恭喜你,路网构建成功了。
你也可以用 sumo-gui 打开看看效果。加载路网文件,你会看到车辆在路口自动转弯、等待,一切井然有序。
2.7 本章知识体系
为了让你更直观地理解,我画了一张图,把本章的核心逻辑串起来:
这张图把我们从启动netedit到最终仿真测试的整个链条串起来了。你可以看到,设置连接关系是承上启下的关键一步,它直接决定了车辆在路口的行为。
2.8 一些经验之谈
最后,分享几个我个人的小习惯:
- 命名规范:给每条边起个有意义的名字,比如
road_east_west,别用默认的edge_001。不然项目大了,你根本找不到哪条路是哪条。 - 备份习惯:每完成一个关键步骤,就保存一次。我吃过亏,画了两个小时的路网,软件崩了,全没了。
- 多看属性面板:选中一个元素后,右侧的属性面板会显示所有可调参数。很多高级功能都藏在这里,比如限速、车道宽度、允许的车辆类型等。
好了,这一章的内容就到这儿。你跟着操作一遍,应该就能画出一个能用的十字路口了。下一章,我们会在路网上放车,让仿真跑起来。
可可精品资料库