第1章:NETEDIT图形化编辑器——从零搭建你的第一条路

说实话,刚接触SUMO那会儿,我最头疼的就是怎么把现实中的路网搬进电脑里。命令行写XML?太反人类了。好在SUMO团队早就想到了这点,给我们准备了NETEDIT这个图形化工具。今天我就带你把它摸透。

1.1 界面布局:别被密密麻麻的按钮吓到

第一次打开NETEDIT,你可能会觉得眼花。别慌,我帮你拆解一下。

整个界面分三大块:

  • 顶部工具栏:所有核心操作都在这里。创建节点、画路、连车道,全在图标上挂着。
  • 中央画布:你的路网就在这上面画。鼠标滚轮缩放,按住中键平移,跟CAD一个路子。
  • 右侧属性面板:选中任何元素,属性就显示在这。改车道数、限速、名字,都在这改。
我的小习惯:每次新建项目,我先把网格对齐打开(View → Toggle Grid)。对齐了画出来的路网规整,后面做仿真不容易出奇奇怪怪的偏移问题。

2.2 创建道路节点(Junction)

节点就是路口的交点。在SUMO里,每条路的两端都是节点。

操作很简单:

  1. 点击工具栏上的「创建节点」图标(像个圆点)
  2. 在画布上点一下,一个节点就出来了
  3. 右键结束创建

嗯,这里要注意:节点位置决定了路网的拓扑结构。我见过有人把节点堆在一起,结果路口乱成一锅粥。建议先规划好路网草图,再动手画。

我曾经踩过的坑:节点之间的距离别太近,至少留出10米以上。否则后面画路段时,车道长度不够,连接器会报错。别问我怎么知道的...

2.3 绘制路段(Edge)

有了节点,接下来就是画路。路段就是两个节点之间的那一段。

操作步骤:

  1. 点击「创建路段」图标(两条平行线)
  2. 先点起点节点,再点终点节点
  3. 路段就自动生成了

你想想看,这跟现实中修路是不是一个道理?先定好路口,再铺路。

路段默认是双向的。如果你只需要单向,可以在属性面板里把「Spread Type」改成「center」,然后手动调整车道方向。

2.4 设置车道数

车道数决定了这条路能同时跑多少车。在属性面板里找到「Num Lanes」这个参数,直接改数字就行。

举个例子:

  • 城市主干道:3-4车道
  • 次干道:2车道
  • 小区内部路:1车道

我一般会先按实际道路来设,但仿真时如果车流量不大,可以适当减少车道数,跑起来更快。

核心要点:车道数改了之后,连接器会自动调整。但如果你手动改过连接器,再改车道数可能会把连接器搞乱。所以我的习惯是:先定好车道数,再配连接器。

2.5 连接器(Connector)使用

连接器是SUMO里最容易被忽略但最重要的东西。它决定了车辆从一个路段怎么拐到另一个路段。

操作方式:

  1. 点击「创建连接器」图标(像个箭头分叉)
  2. 在起点路段上点一下,再在目标路段上点一下
  3. 连接器就生成了

默认情况下,SUMO会自动生成所有可能的连接。但有时候你需要手动调整,比如禁止左转、只允许直行。

举个例子:十字路口,你只想让车辆直行和右转,那就删掉左转的连接器。

我的经验:连接器多了容易乱。我习惯先让SUMO自动生成,然后手动删掉不需要的。比从头画快得多。

2.6 保存网络文件

画了半天,别忘了保存。NETEDIT支持多种格式,但最常用的是.net.xml。

保存步骤:

  1. File → Save Network As
  2. 选择保存路径
  3. 输入文件名,比如my_road.net.xml
  4. 点击保存

保存后,你会得到一个XML文件。别怕,虽然看起来像天书,但SUMO能读懂就行。

重要提醒:保存前一定要检查连接器是否完整。我遇到过最惨的一次:画了三个小时的路网,保存后跑仿真,车全堵在路口不动。后来发现是连接器漏了几个。从那以后,我每次保存前都会用「Check Network」功能扫一遍。

知识体系总览

下面这张图帮你理清本章的核心逻辑:

NETEDIT核心操作 界面布局 工具栏+画布+属性面板 创建节点 定义路口位置 绘制路段 连接节点成路 设置车道数 决定道路容量 连接器 控制转向逻辑 保存网络文件 五个步骤环环相扣,缺一不可 建议按顺序操作,避免返工

说白了,NETEDIT就是让你用鼠标代替代码,把路网画出来。上面这张图把本章的知识点串起来了:从界面布局开始,到创建节点、画路段、设车道数、配连接器,最后保存。每一步都是下一步的基础。

我个人觉得,学NETEDIT最好的方式就是动手。打开软件,照着上面的步骤画一条路试试。画错了?删掉重来,反正又不会烧电脑。

好了,这一章就到这。记住:路网是仿真的基础,基础打牢了,后面跑车、调参数才顺手。