赞
踩
如果你也对交通仿真感兴趣,且是一个小白,但是有python基础,我想我可以帮到你。
首先安装为我们入门的第一步:
下载地址:https://sumo.dlr.de/docs/Downloads.php;推荐安装windos,乌班图啥的也可以但是在环境问题很难搞。
双击安装;这里推荐msi很方便,几乎是傻瓜式安装。
不同于pyhcarm,sumo不会为我们添加环境变量,所以安装时你要记住自己的安装路径,方便一会配置。如果你是默认安装方式那你的路径大概是:C:\Program Files (x86)\Eclipse\Sumo
这步很重要,因为后期我们要配合Python:
一般的仿真文件会有三个:
.net.xml:车辆配置文件
.rou.xml:路网配置文件
.sumocfg:仿真配置文件
文件的编写为大家提供以为大哥的参考:https://blog.csdn.net/weixin_46870466/article/details/115558448
实际上sumo也为我们提供了演示文件:
下一步让我们跑起来:
现在就是利用真实地图生成真实路网啦,这真的很有意思:
首先你得有python解释器,所以说有Python基础是我们的前提,然后我们用Spyder打开这个文件(pycharm打开不好使原因暂时未知),地图能否成功打开极大的依赖你的网速,所以建议大家用手机开个热点:
打开以后是这样的,1是我们设置路网的地方,3可以框选区域,2可以培植我们想要的车辆。
然后点击这里生成文件;稍等一会,他会自己打开gui界面。
生成的文件应该在这里,文件名是你的日期;
看着真的很有趣;
现在就是用python跑起来,让python调用sumo:
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的函数,如果我后续学会了会更新哒。再见啦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。