Sumo中配置Traci接口
最近用sumo的时候需要调用Traci接口,对数据进行处理和绘图,官网文档有点抽象看不懂, 查了点教程,自己总结一手
1.Traci介绍
Traci (Tracl:Traffic control Interface)交通控制接口,主要用于获取SUMO交通模拟环境中的数据,并实时修改、控制,并支持python,C++,Java等多种语言,其中python是最全面的。这里介绍python的用法。
2. 创建一个python项目
3. 导入Traci
3.1 创建路径文件
在我们创建的这个python项目中找到路径
E:\sumoproject\venv\Lib\site-packages
然后创建一个记事本,里面内容是
D:\CodeTool\sumo\tools\traci
(注意,路径因人而已,前者是从python项目安装路径找的,后者是sumo安装路径找的)
文件保存后,改名为traci.path,如图所示
3.2 导入traci库文件
将的sumo中自带的traci文件夹和sumolib文件夹复制到与traci.path文件同一路径下,如图所示:
4.测试
测试代码如下:
import os
import sys
import optparse
import traci
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()
if options.nogui:
sumoBinary = checkBinary('sumo')
else:
sumoBinary = checkBinary('sumo-gui')
sumocfgfile = "E:\\pythonProject\\Changda\\test.sumocfg" # sumocfg文件的位置,你需要自己修改,同时文件路径需要双\进行转义
traci.start([sumoBinary, "-c", sumocfgfile]) # 打开sumocfg文件
for step in range(0, 300): # 仿真时间
traci.simulationStep() # 一步一步(一帧一帧)进行仿真
simulation_time = traci.simulation.getTime() # 获得仿真时间
print("========================================")
print("仿真时间是", simulation_time)
#你可以在此编写你所需要的代码
"""
可以通过traci接口获取车辆、道路等数据,并进行处理
"""
traci.close()
正常打开sumo-gui界面则配置成功