功能 changeTarget() 它失败了

Function changeTarget() it's failing

我是运行一个要求每辆车都在里面的模拟。因此,当汽车到达最终目的地时,我尝试使用 traci 库中的 changeTarget() 函数对其进行更改。

具体来说,我使用 getRoutegetRouteIndex 函数来了解车辆是否在路线的尽头,并使用 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" 边缘(没有交汇点内部边缘),并且您的车辆允许在该边缘上行驶并且它连接到您当前的位置。