函数changeTarget()失败

时间:2019-10-17 18:32:08

标签: sumo

我正在运行一个模拟,要求每辆车都停在其中。因此,当汽车到达其最终目的地时,我尝试使用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))

整个代码在此链接中:https://github.com/eclipse/sumo/issues/6168

非常感谢您!

1 个答案:

答案 0 :(得分:0)

解决方案在https://github.com/eclipse/sumo/issues/6172中。本质是,您需要确保新目的地是“真实”边缘(无路口内部边缘),并且您的车辆可以在该边缘上行驶并且已连接到当前位置。