Как я могу представить дорожную систему в программном обеспечении? - PullRequest
3 голосов
/ 28 мая 2011

Я собираюсь провести симуляцию дорожного движения как побочный проект, но у меня возникают проблемы с идеями о том, как я должен представлять саму дорогу.Мне нравится идея использования ряда путевых точек (прямые линии, использующие координаты широта / долгота), но представляется сложным представить различные полосы движения с помощью этого метода.Я также рассмотрел некоторые другие вопросы по моделированию трафика, и в одном из них упоминается использование растрового изображения, но у меня возникают проблемы с решением, как это позволило бы мне легко назначать реальные длины отрезкам дороги и ширине полосы движения и т. Д.Есть ли у кого-нибудь полезные советы или другие идеи, которые позволили бы автомобилю существовать в определенной точке дороги и могли бы менять полосу движения и т. Д.?

Ответы [ 3 ]

2 голосов
/ 28 мая 2011

Я бы начал с сетки связанных узлов.Узел будет представлять изменение состояния дороги, например, пересечение, начальную или конечную полосу движения, расширение самой дороги и т. Д. Либо вы создаете сложные соединения, которые хранят всю информацию (полосы в обоих направлениях? Сколько полос в каждом направлении? Полоса движения)свойства и т. д.) или вы сохраняете одно соединение для каждой полосы.Чтобы быть уверенным в том, что 2 соединения на разных сторонах узла связаны с одной и той же полосой, вы можете использовать идентификаторы полос на основе каждого узла.

Таким образом, у вас есть график, на котором можно выполнять вычисления, и выесть все данные для визуализации всей сети.

1 голос
/ 29 мая 2011

На предыдущей работе я был ведущим разработчиком симулятора вождения, в частности моделирования дорожной сети.Я построил то, что я назвал Логическая дорожная сеть , которая была абстрактным описанием дорожной сети, которая используется для отслеживания транспортных средств вдоль дороги.

A полоса была простопуть, который шел по дороге, но был смещен на положительное или отрицательное расстояние от центрального пути.Каждая дорога представляла собой прямой или изогнутый участок и представляла собой путь центральных вершин с одним или несколькими смещениями полос по обе стороны.Затем автономные автомобили могли бы следовать по дорожке полосы движения.

Короче говоря, многоугольники, составляющие дорогу, были построены вокруг центрального пути вдоль дороги, например,

*------*------*
|\     |\     |
| \    | \    |
|  \   |  \   |
|   \  |   \  |
|    \ |    \ |
|     \|     \|
*------*------*

, где * - этовершина, создавая 4 многоугольника для этого простого отрезка прямой дороги.

Интерполяция между двумя вершинами вдоль пути обеспечила простой способ перемещения транспортного средства в заданном направлении.Вдобавок к этому простому пути мы ввели некоторую нечеткость для автономных транспортных средств, так что возникли небольшие отклонения на пути (создавая более реалистичное движение).Логично, что транспортные средства были добавлены и удалены из сегмента дороги , и транспортные средства могли осматривать сегмент, чтобы увидеть другие транспортные средства впереди, позади или на другой полосе движения.Это позволило получить некоторую степень искусственного интеллекта в каждом транспортном средстве, чтобы они могли замедлить движение позади другого транспортного средства или дождаться проезда встречного движения, прежде чем сделать поворот.

Не уверен, что это именно то, что вам нужно, но янадеюсь, что это поможет тем не менее: -)

1 голос
/ 28 мая 2011

Это действительно зависит от того, что вы хотите сделать со своей моделью, поэтому сложно найти «правильный» ответ здесь.

Если вы хотите моделировать перегрузки, вам может вообще не понадобиться сеть. Вы можете смоделировать это на круговой дороге.

Кто-нибудь действительно нуждается в концепции полос? Если вы это сделаете, вы можете просто смоделировать их как отдельные линии между узлами, или, может быть, достаточно просто сохранить количество полос на дорогу.

В любом случае, я понимаю, что вам следует сначала немного подумать о том, чего вы хотите достичь, прежде чем начать думать о точной модели данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...