我正在修改 ../ flow / scenarios / grid.py 和 ... / examples / rllib / green_wave.py 中的 SimpleGridScenario 类。 em>,这样我就可以将每个走廊场景中的简单网格变成双车道。我添加了它们,并且还建立了新的连接,以便车辆可以左右转弯。如图所示。对于每种进场,第一个车道都允许车辆左转并直行,第二个车道也允许车辆右转并直行。
不幸的是,每次我运行模拟时,都会收到以下错误:
错误:tls'center0',程序'online'中的相位大小不匹配。 退出(错误)。
有人知道为什么吗?
我已经在sumo-gui中验证了相位大小,它是16,这是正确的,因为每个进场方法有4种可能的动作。
SimpleGridScenario> __init __()
phases = [{
"duration": "25",
"minDur": "8",
"maxDur": "45",
"state": "GGGgrrrrGGGgrrrr"
}, {
"duration": "7",
"minDur": "3",
"maxDur": "6",
"state": "yyygrrrryyygrrrr"
}, {
"duration": "6",
"minDur": "3",
"maxDur": "6",
"state": "rrrGrrrrrrrGrrrr"
}, {
"duration": "7",
"minDur": "3",
"maxDur": "6",
"state": "rrryrrrrrrryrrrr"
}, {
"duration": "25",
"minDur": "8",
"maxDur": "45",
"state": "rrrrGGGgrrrrGGGg"
}, {
"duration": "7",
"minDur": "3",
"maxDur": "6",
"state": "rrrryyygrrrryyyg"
}, {
"duration": "6",
"minDur": "3",
"maxDur": "6",
"state": "rrrrrrrGrrrrrrrG"
}, {
"duration": "7",
"minDur": "3",
"maxDur": "6",
"state": "rrrrrrryrrrrrrry"
}]
for i in range(self.row_num * self.col_num):
node_id = "center"+str(i)
traffic_lights.add(node_id, phases=phases, tls_type="actuated")
答案 0 :(得分:0)
您可以附加图片吗?这将有助于解决这一问题。
答案 1 :(得分:0)
对于某些阶段(如最后一个阶段),MaxDur小于持续时间。尝试增加MaxDur或减少持续时间。
答案 2 :(得分:0)
您可以在交通信号灯(绿色或红色的条形图)上的相扑上单击鼠标右键,然后单击“显示阶段”,以查看“状态”字符串应多长时间(与打开的窗口中的行数一样多)。
答案 3 :(得分:0)
事实证明,相位大小是正确的,但是我的流程环境(green_wave_env.py
)在'在线'程序中设置了交通信号灯状态,相位大小不正确。现在可以使用了。
谢谢!