功能 changeTarget() 它失败了
Function changeTarget() it's failing
我是运行一个要求每辆车都在里面的模拟。因此,当汽车到达最终目的地时,我尝试使用 traci 库中的 changeTarget()
函数对其进行更改。
具体来说,我使用 getRoute
和 getRouteIndex
函数来了解车辆是否在路线的尽头,并使用 changeTarget
设置新路线,理论上应该由命令创建。但是,错误代码不断出现:traci.exceptions.TraCIException : Route replacement failed for 13
我正在使用 Ubuntu 18.04.3、SUMO 1.3.1 并使用 os、sys、optparse、子进程、随机、数学库。
包含changeTarget
的代码部分是:
if step >= 12: #starts the contamination
car_matrix_actualized = traci.vehicle.getIDList() #gets the cars who are in the simulation in the new step
for i in car_matrix_actualized:
if traci.vehicle.getRouteIndex(str(i)) == (len(traci.vehicle.getRoute(str(i))) - 1): #verification to see if the car is at the end of its route
new_destiny = random.choice(traci.edge.getIDList())
traci.vehicle.changeTarget(str(i),str(new_destiny))
整个代码在这个 link: https://github.com/eclipse/sumo/issues/6168
非常感谢您!
解决方案在https://github.com/eclipse/sumo/issues/6172中。实质是您需要确保您的新目的地是 "real" 边缘(没有交汇点内部边缘),并且您的车辆允许在该边缘上行驶并且它连接到您当前的位置。
我是运行一个要求每辆车都在里面的模拟。因此,当汽车到达最终目的地时,我尝试使用 traci 库中的 changeTarget()
函数对其进行更改。
具体来说,我使用 getRoute
和 getRouteIndex
函数来了解车辆是否在路线的尽头,并使用 changeTarget
设置新路线,理论上应该由命令创建。但是,错误代码不断出现:traci.exceptions.TraCIException : Route replacement failed for 13
我正在使用 Ubuntu 18.04.3、SUMO 1.3.1 并使用 os、sys、optparse、子进程、随机、数学库。
包含changeTarget
的代码部分是:
if step >= 12: #starts the contamination
car_matrix_actualized = traci.vehicle.getIDList() #gets the cars who are in the simulation in the new step
for i in car_matrix_actualized:
if traci.vehicle.getRouteIndex(str(i)) == (len(traci.vehicle.getRoute(str(i))) - 1): #verification to see if the car is at the end of its route
new_destiny = random.choice(traci.edge.getIDList())
traci.vehicle.changeTarget(str(i),str(new_destiny))
整个代码在这个 link: https://github.com/eclipse/sumo/issues/6168
非常感谢您!
解决方案在https://github.com/eclipse/sumo/issues/6172中。实质是您需要确保您的新目的地是 "real" 边缘(没有交汇点内部边缘),并且您的车辆允许在该边缘上行驶并且它连接到您当前的位置。