Несоответствие размера фазы в tls при настройке более одной полосы в сценарии простой сетки

Я модифицирую класс SimpleGridScenario в ../flow/scenarios/grid.py и .../examples/rllib/green_wave.py, чтобы я мог превратить свою простую сетку в сценарий с двойной полосой на коридор. Я добавил их и также установил новые соединения, чтобы транспортные средства могли поворачивать направо и налево. Это показано на прикрепленном изображении. При каждом подходе первая полоса позволяет транспортным средствам поворачивать налево и двигаться прямо, а вторая позволяет транспортным средствам поворачивать направо и также двигаться прямо.

К сожалению, каждый раз, когда я запускаю симуляцию, я получаю следующую ошибку:

Ошибка: Несоответствие размера фазы в tls 'center0', программа 'online'. Выход (по ошибке).

Образец узла в сетке

соединения в NETEDIT

Фазы в СУМО

Кто-нибудь знает почему?

Я проверил размер фазы в сумо-гуй, и это 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) устанавливал состояние светофора в "онлайн" программе с неправильным размером фазы. Это работает сейчас. Спасибо!

Другие вопросы по тегам