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 = "D:\\PROJECT\\sumo\\carla-sumo\\test.sumocfg" #sumocfg文件的位置
sumocfgfile = "D:\\PROJECT\\sumo\\carla-sumo\\long.sumocfg" #sumocfg文件的位置
traci.start([sumoBinary, "-c", sumocfgfile]) #打开sumocfg文件
index=0
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
print(len(traci.vehicle.getIDList()))
#获取所有车的position
all_vehicle_position = [(i, traci.vehicle.getPosition(i)) for i in all_vehicle_id]
print(all_vehicle_position)
#print(type(all_vehicle_position))
#print(all_vehicle_id)
#print(len(all_vehicle_id))
num=len(all_vehicle_id)
print(traci.vehicle.getRoadID(all_vehicle_id[0]))
#print(traci.vehicle.getSpeed(all_vehicle_id[1]))
#print(all_vehicle_id)
#myID=all_vehicle_id[1]
#print(traci.vehicle.getSpeed(all_vehicle_id))
#traci.vehicle.setSpeed(all_vehicle_id[1], 2+index)
#print(traci.vehicle.getSpeed(all_vehicle_id[0]))
# traci.vehicle.highlight(all_vehicle_id[0], color=(255, 0, 0, 255), size=-1, alphaMax=-1, duration=-1, type=0)
if num==1:
traci.vehicle.setSpeed(all_vehicle_id[0], 1)
print(traci.vehicle.getRoadID(all_vehicle_id[0]))
if num==4:
traci.vehicle.setSpeed(all_vehicle_id[3], 1)
#print(traci.vehicle.getSpeed(all_vehicle_id[1]))
# elif num>6:
# traci.vehicle.setSpeed(all_vehicle_id[0], 14)
elif num>30:
traci.vehicle.setSpeed(all_vehicle_id[0], 14)
traci.vehicle.setSpeed(all_vehicle_id[3], 14)
traci.close()
sumo之traci牛刀小试
最新推荐文章于 2024-10-20 01:34:56 发布