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
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Sumo是一种源自日本的传统摔跤运动,在世界范围内越来越受到关注和喜爱。如果想要学习sumo,以下是一些学习资料的汇总。 1. 图书:有许多关于sumo的图书可供学习。其中一本经典的书籍是《相扑-百科全书》,它详细介绍了相扑的历史、规则、技巧和文化背景。此外,还有一些介绍相扑训练和比赛策略的教程书籍。 2. 视频教程:许多分享sumo技巧和战术的教学视频可以在网络上找到。这些视频通常由专业相扑选手或经验丰富的教练拍摄,在视频中他们会解释和演示各种技术动作和比赛战术。 3. 相扑训练营:参加相扑训练营是学习sumo的好方法。这些训练营通常由经验丰富的教练和专业选手指导,并提供专业的指导和训练设施。参加训练营可以让学习者接触到真实的sumo训练环境,并与其他学习者互动交流。 4. 在线论坛和社区:加入在线的sumo讨论论坛和社区是与其他相扑爱好者交流和学习的好途径。在这些论坛上,你可以提问问题、分享经验,并从其他人的回答和建议中获取帮助。 5. 实践:最重要的学习sumo的方法是实践。找到当地的sumo俱乐部或团体,参与他们的训练和比赛。通过与其他学习者和专业选手一起练习和比赛,你将更加熟悉sumo的技巧和规则,并提高自己的技能水平。 总结来说,要学习sumo,可以利用图书、视频教程、参加训练营、加入在线社区和通过实践来提高自己的技能。这些资源将帮助你更好地了解sumo的规则和文化,并提供专业的指导和交流机会。 ### 回答2: Sumo学习资料汇总可以包括以下内容: 1. 书籍:有很多关于Sumo的书籍可以作为学习资料,其中一些经典的包括《Sumo大将》、《Sumo的哲学》等。这些书籍可以帮助我们了解Sumo的起源、发展历史以及训练技巧等方面知识。 2. 视频教程:有许多Sumo比赛的录像可以通过互联网观看,这些视频可以帮助我们学习Sumo的比赛规则、技巧以及角力的策略等方面知识。同时,还有一些专门的Sumo教学视频,可以教授一些基本的动作和技巧。 3. 网络文章和博客:有很多Sumo爱好者在网络上分享他们的经验和观点,通过搜索相关的关键词,我们可以找到很多有关Sumo的文章和博客。这些文章可以帮助我们了解Sumo的历史背景、技巧训练以及相关比赛等方面内容。 4. Sumo俱乐部和培训班:在一些大城市,可以找到一些Sumo俱乐部或者培训班,这些地方提供专业的指导和培训,可以帮助我们系统地学习Sumo的知识和技巧。在这些场所,我们可以与其他Sumo爱好者一起训练,共同进步。 总而言之,想要学习Sumo,除了了解比赛规则之外,还需要了解Sumo的起源和发展、训练技巧以及背后的哲学理念等方面知识。通过阅读书籍、观看视频、阅读网络文章、参加Sumo俱乐部等方式,我们可以获取丰富的学习资料,提升自己的Sumo水平。 ### 回答3: sumo 是一种名为 "Simulation of Urban MObility" 的交通仿真软件,它被广泛应用于交通规划和研究领域。以下是 sumo 学习资料的汇总: 1. 官方文档和教程:sumo 官方网站上提供了详尽的文档和教程,包括安装指南、用户手册、示例文件等。这些资料可以帮助初学者快速上手 sumo,掌握基本的使用方法和功能。 2. 在线视频教程:在互联网上可以找到许多 sumo 的视频教程,这些教程通常由专业人士制作,通过实例演示 sumo 的使用和各种功能。观看视频教程可以更直观地理解 sumo 的操作和原理。 3. 书籍和论文:一些交通规划和仿真领域的专业书籍和学术论文也涉及到 sumo 的应用和技术细节。阅读这些书籍和论文可以深入了解 sumo 的背景知识和进阶技巧。 4. 开发者社区和论坛:sumo 有一个活跃的开发者社区和官方论坛,用户可以在这些平台上提问、讨论和分享关于 sumo 的问题和经验。通过参与讨论,用户可以学习其他人的使用经验,解决疑惑,并与其他 sumo 用户建立联系。 5. 源代码和示例文件:sumo 是开源软件,其源代码可以在官方网站上下载。对于对编程有一定了解的用户,可以通过研究源代码和示例文件来深入理解 sumo 的内部工作原理和实现细节。 综上所述,初学者可以通过官方文档、在线视频教程和书籍快速入门 sumo。对于进一步学习和探索 sumo 的用户,可以参与开发者社区的讨论,阅读相关论文和源代码,提升对 sumo 的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值