SUMO学习(一)

博主现阶段用的较多的编程语言是python,目前研究方向也需要一个合适的交通环境模拟器。结合SUMO开源且有python连接接口的特点,它自然而然成为了我的重点“关照对象”。所以准备基于自己的学习过程,更新一个SUMO学习的专题,以供后来者有前车之鉴,同时也是对自己学习过程的一个总结。

首先要了解SUMO,最详细的内容还是得参考官网上的信息,官网链接:https://sumo.dlr.de/docs。进入官网,SUMO很贴心地给我们提供了教程(Tutorials),具体地址为:https://sumo.dlr.de/docs/Tutorials.html。Beginner Tutorials主要是路网的绘制等可视化操作,我们略过,直接开始Advanced Tutorials中的Hello SUMO。

我们将教程一分为以下步骤:

(1)创建两个txt文件,分别命名为"hello.nod.xml"和"hello.edg.xml",用于生成节点文件和路径文件(即道路的基本路段和起讫点)。

这一步直接将教程中的代码复制进对应的文件即可。

(2)打开SUMO的安装文件夹-->bin-->start-command-line,以输入命令生成"hello.net.xml"。注意,这里用的netconvert工具无法直接使用,需要借助star-command-line命令行间接启动。到这一步,常常会出现以下的错误:

为什么会出错呢?基于命令行,我们发现程序的执行路径是C:\Users\12938\Sumo(每台电脑情况不一),而该路径对应的文件夹里并没有节点文件和路径文件,所以自然无法生成路网文件。我们将两个文件移至Sumo文件夹,再运行:

我们发现依然报错,会不会是文件格式不对呢?官网要求的是"xml"文件,而记事本可能无法直接根据尾缀改变文件属性,于是,我使用Notepad++重新保存节点文件和路径文件为"xml"文件,再运行:

成功了。同时,Sumo文件也生成了一个路网文件"hello.net":

(3)复制教程代码,建立车辆文件。路网有了,也需要有在路网上运行的车辆,这才是一个完整的模拟。保存为"hello.rou.xml"。

(4)复制教程代码,建立结构文件。这个文件是sumo-gui直接执行的文件,由它调用你之前保存的所有文件,同时加入对模拟器的设置,即"hello.settings"。最终结构文件命名为"hello.sumocfg"。

(5)同样的,在star-command-line命令行输入命令运行结构文件。这时,常常出现以下错误:

这里,我也困惑了很久,明明照着官网教程一步一步进行下来,为什么会无法调用结构文件呢?我用Google搜索了一下,果然国际友人跟我遇到了同样的问题,这里给出回答的原链接:https://sourceforge.net/p/sumo/mailman/message/30517245/。简单来说,就是官网给出的文件格式是错误的,正确的结构文件格式为.cfg,有兴趣的朋友可以百度一下.cfg文件是什么类型的文件,这里不再赘述。所以,我们需要添加一行命令将文件类型转化为.cfg,如下:

注意,执行结构文件的命令改为"sumo -c hello.sumo.cfg"。之所以还出现错误,是因为我把结构文件里的命令改为了

"<net-file value="hello.net"/> <route-files value="hello.rou"/><gui-settings-file value="hello.settings"/>",后面的.xml后缀加上就会成功运行。sumo-gui模拟的结果如下,显卡原因,道路颜色有所偏颇:

以上,尽管官网的教程不是太靠谱,我们简单的SUMO手动仿真还是有惊无险地结束了。

本节总结:

(1)SUMO建模过程

(2)"Error:Could not open nodes files- 'hello.nod.xml'"怎么处理?

(3)"Error:Could not access configuration 'hello.sumocfg'"怎么处理?

下一节,我们将介绍节点文件、路径文件、车辆文件的语法细节,敬请期待。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值