sumo的简单使用

如果你也对交通仿真感兴趣,且是一个小白,但是有python基础,我想我可以帮到你。

安装

首先安装为我们入门的第一步:

  1. 下载地址:https://sumo.dlr.de/docs/Downloads.php;推荐安装windos,乌班图啥的也可以但是在环境问题很难搞。

  2. 双击安装;这里推荐msi很方便,几乎是傻瓜式安装。在这里插入图片描述

  3. 不同于pyhcarm,sumo不会为我们添加环境变量,所以安装时你要记住自己的安装路径,方便一会配置。如果你是默认安装方式那你的路径大概是:C:\Program Files (x86)\Eclipse\Sumo在这里插入图片描述

配置环境变量

这步很重要,因为后期我们要配合Python:

  1. 方法在官网:https://sumo.dlr.de/docs/Basics/Basic_Computer_Skills.html#additional_environment_variables在这里插入图片描述
  2. 如果你成功了应该是这样:在这里插入图片描述
  3. 好了你现在已经成功了,你用好友了两个软件:在这里插入图片描述
  4. gui是仿真界面,netedit是你将来画或修改路网的。

文件配置

一般的仿真文件会有三个:在这里插入图片描述
.net.xml:车辆配置文件
.rou.xml:路网配置文件
.sumocfg:仿真配置文件
文件的编写为大家提供以为大哥的参考:https://blog.csdn.net/weixin_46870466/article/details/115558448
实际上sumo也为我们提供了演示文件:在这里插入图片描述

运行

下一步让我们跑起来:

  1. 找到之前说的.sumocfg文件比如上面的hello.sumocfg,右键用sumo-gui打开,箭头1是运行,箭头2是延迟(如果跑的太快左拉就会变慢),如果看不清,可以用鼠标拖动,配合滑轮调整图大小这都是基本操作啦:在这里插入图片描述
  2. 找到之前说的.rou.xml文件比如上面的hello.rou.xml右键用netedit打开就可以修改路网,这部分教程太复杂为大家推荐一个教学视频:https://www.bilibili.com/video/BV1Kt411N7Xp/?spm_id_from=autoNext&vd_source=f9a4b1d50147e488803b17ca19871210
    当然我们的目标是python自动生成真实的路网啦。

python文件生成真实路网

现在就是利用真实地图生成真实路网啦,这真的很有意思:

  1. 首先你得有python解释器,所以说有Python基础是我们的前提,然后我们用Spyder打开这个文件(pycharm打开不好使原因暂时未知),地图能否成功打开极大的依赖你的网速,所以建议大家用手机开个热点:在这里插入图片描述

  2. 打开以后是这样的,1是我们设置路网的地方,3可以框选区域,2可以培植我们想要的车辆。
    在这里插入图片描述

  3. 然后点击这里生成文件;稍等一会,他会自己打开gui界面。在这里插入图片描述

  4. 生成的文件应该在这里,文件名是你的日期;在这里插入图片描述

  5. 看着真的很有趣;在这里插入图片描述

python调用

现在就是用python跑起来,让python调用sumo:

  1. 直接给大家上代码:
import os
import sys
import optparse
import traci

if 'SUMO_HOME' in os.environ:
   tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
   sys.path.append(tools)
else:
   sys.exit("please declare environment variable 'SUMO_HOME'")

from sumolib import checkBinary  

def get_options():
   optParser = optparse.OptionParser()
   optParser.add_option("--nogui", action="store_true",
                        default=False, help="run the commandline version of sumo")
   options, args = optParser.parse_args()
   return options

if __name__ == "__main__":
   options = get_options()
   print(1)
   if options.nogui:

       sumoBinary = checkBinary('sumo')
   else:
       sumoBinary = checkBinary('sumo-gui')

   traci.start([sumoBinary, "-c", r"C:\Users\glp10765\Sumo\2022-10-14-10-33-00\osm.sumocfg"])


   for step in range(0,3600000):

#        traci.vehicle.setSpeed('a12.5',10)
#        print(traci.vehicle.getIDList())
#        print(traci.edge.getIDList())
#        print(traci.inductionloop.getVehicleData('abcd'))
       traci.simulationStep()
       if step <= 10:
           print(traci.vehicle.getIDList())


   traci.close()

2.记得在这里修改自己的.sumocfg文件路径哦,这个for循环是你运行的次数;在这里插入图片描述

3.最后对于自动生成的路网,虽然你打开了gui但是并不能跑起来是因为你的文件缺了这几句,加上他!!!在这里插入图片描述
然后就能跑起来啦,至此就是剩下一些traci的函数,如果我后续学会了会更新哒。再见啦

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值