sumo与python的接口——TraCI

在python中添加TraCI

官网https://sumo.dlr.de/docs/TraCI.html

首先找到traci的安装目录:

sumo\tools

打开python的安装目录(或者anaconda安装目录)–> Lib --> site-packages,在该目录下新建traci.pth文件,在该文件中输入traci的安装目录。
ps:可通过cmd打开python输入

import traci  

检验是否安装成功。

代码实现

from __future__ import absolute_import
from __future__ import print_function

import os
import sys
import optparse
import random
import traci
import time
from sumolib import checkBinary

#检测是否已经添加环境变量
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'") 

#sumo自带的,不知道有啥用
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:\\sumo\\template\\template.sumocfg" #sumocfg文件的位置
    traci.start([sumoBinary, "-c", sumocfgfile]) #打开sumocfg文件
    
    for step in range(0,3600):
        traci.simulationStep()
        #time.sleep(0.1)
        simulation_time = traci.simulation.getTime() #获得仿真时间
        print("仿真时间是",simulation_time)
        all_vehicle_id = traci.vehicle.getIDList() #获得所有车的id
        #获取所有车的position
        all_vehicle_position = [(i, traci.vehicle.getPosition(i)) for i in all_vehicle_id]
    traci.close()

上一篇:第十七届浙大城市学院程序设计竞赛(同步赛)题解


下一篇:SUMO仿真软件