如何在python中使用traci和sumo?

2024-05-20 13:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用红绿灯和检测器来模拟一个十字路口,并训练一个机器学习分类器来使用来自检测器的信息来设置红绿灯相位。在

我可以使用以下方法运行模拟:

import traci
traci.start(sumoCmd) 
step = 0
while step < 1000:
    traci.simulationStep()
    step += 1
traci.close()

但是,我不知道如何获取有关汽车的信息。我有e2探测器,但我不知道如何使用它们的输出。我不明白traci和sumo文档。在

我试过这个代码:

^{pr2}$

但它不起作用。我得到了这个错误

detlist = lanearea.getIDList()
return self._getUniversal(tc.ID_LIST, "")
result = self._connection._sendReadOneStringCmd(self._cmdGetID, varID, objectID)
AttributeError: 'NoneType' object has no attribute '_sendReadOneStringCmd'

有人能告诉我如何修复这个代码吗?或者更一般地说,如果有人知道,如何使用:http://sumo.dlr.de/wiki/TraCI/Lane_Area_Detector_Value_Retrieval中的任何函数或任何其他方法来获取有关汽车的信息。在


Tags: 方法代码importself机器信息分类器step
1条回答
网友
1楼 · 发布于 2024-05-20 13:43:04

不需要自己实例化lanearea。只需使用traci.lanearea.getIDList()traci.lanearea.getLastStepVehicleNumber(det),这样您的程序应该如下所示:

import traci
traci.start(sumoCmd) 
step = 0
detlist = traci.lanearea.getIDList()
while step < 1000:
    traci.simulationStep()
    print([traci.lanearea.getLastStepVehicleNumber(det) for det in detlist])
    step += 1

也没有必要关闭。在

相关问题 更多 >