~.slowDown() 方法的一些问题

Some problems with ~.slowDown() method

我想强制 SUMO 使用 traci 让一些车辆在特定时间步减速。我使用了以下脚本,但是一旦 'c1' 车辆离开网络,就会出现“车辆 'c1' 未知并停止”的错误问题。我知道这是由于 'for' 循环造成的,但我不知道。

def slowdown():
    traci.start(sumoCmd)
    
    N = 1000
    step = 0
    traci.vehicle.add(vehID = 'c1', typeID = "car1", routeID = "route_1", departLane='0', depart = 30)
    traci.vehicle.add(vehID = 'c2', typeID = "car1", routeID = "route_1", departLane='0', depart = 60)
    for step in range(N):
        if step % 10 == 5:
                traci.vehicle.slowDown('c1', 0, 5)
                traci.vehicle.slowDown('c2 ', 0, 5)
                step += 1
        traci.simulationStep()    
    traci.close()
    sys.stdout.flush()
slowdown()  

这里有两种可能性:您可以使用以下方法检查车辆是否还在那里:

if 'c1' in traci.vehicle.getIDList():

或者您捕捉到引发的 TraCIException 并继续。