Несоответствие размера фазы в tls при настройке более одной полосы в сценарии простой сетки
Я модифицирую класс SimpleGridScenario в ../flow/scenarios/grid.py и .../examples/rllib/green_wave.py, чтобы я мог превратить свою простую сетку в сценарий с двойной полосой на коридор. Я добавил их и также установил новые соединения, чтобы транспортные средства могли поворачивать направо и налево. Это показано на прикрепленном изображении. При каждом подходе первая полоса позволяет транспортным средствам поворачивать налево и двигаться прямо, а вторая позволяет транспортным средствам поворачивать направо и также двигаться прямо.
К сожалению, каждый раз, когда я запускаю симуляцию, я получаю следующую ошибку:
Ошибка: Несоответствие размера фазы в tls 'center0', программа 'online'. Выход (по ошибке).
Кто-нибудь знает почему?
Я проверил размер фазы в сумо-гуй, и это 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")
Файлы можно скачать по следующей ссылке: Flow files
Не забудьте заменить файл __init__.py своим в каталоге сценариев!
ОБНОВЛЕНИЕ: Кажется, что может быть онлайн модификация TLS, вероятно, Traci. Для получения более подробной информации, пожалуйста, проверьте это (последний комментарий): Нажмите здесь
4 ответа
Вы можете щелкнуть правой кнопкой мыши в сумо на светофоре (зеленая или красная полоса) и "Показать фазы", чтобы увидеть, какой длины должна быть строка "состояние" (столько, сколько строк в открывшемся окне).
Для некоторых фаз (например, для последней) MaxDur меньше продолжительности. Попробуйте увеличить MaxDur или уменьшить продолжительность.
Вы могли бы прикрепить изображение? Это очень поможет в выяснении этого.
Оказывается, размер фазы был верным, но мой поток среды (green_wave_env.py
) устанавливал состояние светофора в "онлайн" программе с неправильным размером фазы. Это работает сейчас. Спасибо!