Страница 1 из 2

Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 02 фев 2020, 07:42
Ромыч РЖДУЗ
Oleg писал(а):
31 янв 2020, 13:14
Подскажите а как взаимодействует в игре КЛУБ и светофоры...
К сожалению в игре пока у нас нет светофоров. То есть с сигнализацией вопрос пока ещё не решён. Вообще ещё очень много нерешённых вопросов, а главный программист у нас один... :(

Re: Скрещиваем OSG + Qt для создания блока индикации

Добавлено: 02 фев 2020, 14:37
maisvendoo
Oleg писал(а):
31 янв 2020, 13:14
КЛУБ и светофоры
Я думаю, есть необходимость обсудить открыто, что мы собираемся делать в этом направлении, но считаю, что для этого нужно создать отдельную тему. Поэтому я отделю эти посты в другую тему, и там изложу свои соображения.

Upd: тему отделил, подготовлю обширный пост, обсудим ;)

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 02 фев 2020, 15:47
maisvendoo
Итак, работа сигнализации так или иначе определяется занятостью блок участков на перегоне, а так же работой СЦБ на станции - состоянием стрелочных переводов и результатом работы прочих команд телеуправления, отдаваемых ДЦН и ДСП со своих пультов. Тема сложная и обширная, начиная рассматривать её мы устремляем наш взгляд... правильно - на формат маршрутов!

Что мы имеем сейчас - мы имеем формат ZDSimulator, в котором изначально есть два главных пути, задаваемые данными файлов route1.trk и route2.trk. Все боковые пути задаются уже в симуляторе ZDS либо бранч-треками в сценариях, либо непосредственно из инструкторского меню. RRS изначально не использует эти вещи, так как то что реализовано в ZDS это костыль, который отрезает всяческое развитие на перспективу. И мы не пойдем этим путем, мы пойдем своим.

На сегодняшний день, дабы не терять возможность использования обширной базы маршрутов ZDS, мы будем использовать её, но модернизируем систему позиционирования поездов на путях, а именно уйдем от главных путей в виде route1.trk и route2.trk, а сформируем собственную топологию траекторий, которую можно выразить следующей схемой

Изображение

В этой топологии минимальной структурной единицей будет так называемый изолированный участок - отрезок пути, на концах которого расположены либо изолированные стыки, либо стрелочные переводы. Каждый такой отрезок будет иметь форму пространственной ломаной, координаты точек которой будет хранится в своем файле *.trk. Связность элементов (из какого на какой изолированный участок мы можем переехать) будет задаваться отдельным конфигурационным файлом.

К чему я это? А к тому, что такая структура, реализованная программно, позволит решить следующие задачи:
  • Двигаться по всем направлениям, в будущем - произвольно разводить пути (после написания соответствующего редактора).
  • Отслеживать занятость участков, причем это будет выполнятся автоматически, при определении положения поезда на пути.
  • Установить светофоры - места их установки определяется расположением изостыков. Соответственно отсюда будет плясать работа сигнализации.
Эту структуру можно развернуть как на существующих маршрутах ZDS, так и на новых маршрутах RRS, когда таковые будут.

Как идея?

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 03 фев 2020, 04:50
Oleg
Круто! Не плохая задумка! :good: :good: :good:

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 03 фев 2020, 04:53
alex2812
Доверимся профессионалам, плохого точно не придумают! ;)

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 03 фев 2020, 14:31
Pit
Наконец то, я думаю что это будет гуд

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 03 фев 2020, 20:00
maisvendoo
С каждым таким изолированным участком, кроме его геометрии, будет ассоциировано значение ограничения скорости, напряжения КС и рода тока в ней. В будущем это позволит реализовать секционированное питание перегонов и станций, например. Единственная трудность - на первом этапе мне придется вручную стряпать конфиги эти, так как чтобы выделять силы и время на создание программного инструмента для модификации маршрутов, следует иметь представление как это будет работать. К счастью у меня есть вымышленный маршрут "Союз-Волга", который Саша Мищенко делал для нашей ВЖД - там эта топология некоторым образом уже реализована, буду отталкиваться от этого.

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 04 фев 2020, 11:09
Ромыч РЖДУЗ
Вообще, мы с Дмитрием много обсуждали систему маршрутостроения для RRS, в том числе лазили по маршрутам MSTS. Для примера, приведу пару скриншотов из маршрутов MSTS по системе "Картостроение":
Изображение
Изображение
(маршрут "Киевский ход")
Распространённое название "маршрут" для таких вещей как MSTS и многие другие симуляторы, некорректно. Дело в том, что в данной технологии, маршрут строиться не от пункта А, до пункта Б, (как сейчас в ZDS), а именно по карте! То есть создаётся некая часть ландшафта (полигон который привязывается к реальным координатам мира!), и уже на ней разработчик рисует линии пути, где поезда могут ездить. В MSTS, это были так называемые линии TDB (Track Data Base), которые скриптовались в специальном файле "tsection.dat". То есть можно создать свою секцию пути, к примеру кривая радиусом 500, или стрелочный перевод и заскриптовать эту модель файле так, что бы поезд ехал по ней с очень плавным отклонением. Я эту технологию не успел освоить в MSTS, но предполагаю, что геоданные отклонения, выстраивались на базе данных от модели в 3ds max. Там даже есть какой-то редактор кривых что ли. На такой же основе делались и более сложные участки пути. Например, та же английская стрелка, укладывалась частями, каждая из которых имела возможность отклонить поезд.
Вернёмся к скриншотам. На первом, вы видите, что жёлтые линии на карте, это линии TDB, то есть путь, где поезд может ехать. На втором, я показал стрелочные переводы, где красная отметка перед её остряком (надпись 4775), это и есть точка создания кривой отклонения поезда, в случае, если я переведу стрелку в игре, или задам это через сценарий. С этого момента, на карте появляется ветвь, дальнейшее развитие которой, никак не ограничено. А все последующие секции пути, "примагничиваются" к окончанию и можно строить столько разных направлений, сколько угодно! 8-)
Примерно что-то на подобии этого, нам нужно сделать в маршрутах RRS.
Теперь расскажу, что я придумал по поводу маршрутов ZDS.
По скольку маршруты ZDS, это именно "маршруты", а не карты, то здесь все расстояния абсолютно абстрагированные, то есть у них нет привязки к геокоординатам. А отсчёт расположения объектов, идёт от "осевого нуля" маршрута. Данная технология ужасный костыль, созданный на скорую руку. Однако даже при нём, создать качественный реалистичный маршрут можно, но с некоторыми ограничениями.
Если мы будем полностью уходить от системы треков и маршрутов, на "картостроение", то маршруты ZDS, у нас больше работать не будут (вероятнее всего). Что конечно же, многим очень не понравится и нам тоже, так как база реальных маршрутов ZDS, просто огромная!!! :)
Но что бы нам эту базу не терять, желательно было бы, написать специальную программу, которая конвертирует данные из файла "route1.map", в геоданные с привязкой на местности. Что это значит?
А значит это то, что мы выбираем маршрут, например Москва-Сухиничи. На картах мира, ищем спутниковый снимок вокзала и то место, где предположительно, стоит осевой ноль маршрута ZDS:
Изображение
На скриншоте, я обозначил точку, где стоит тупиковая призма и внизу, я подчеркнул красным геокоординаты северной широты, восточной долготы. Это и должен быть старт конвертации данных из route1.map.
Далее, по идее, нужно задать конечную точку, где предположительно будет заканчиваться маршрут - то есть Сухиничи-главные. При этом в программе должен появиться как бы вектор, направленный именно на Сухиничи, к тем координатам (сев. широты, вост. долготы). После этого, программа, автоматически должна выставлять объекты (записи в route1.map) отсчитывая их от точки, которую мы обозначили на скриншоте. Данные по расстояниям, она будет брать всё из того же файла. Конечным пунктом конвертации, будет вторая точка, на которую направлен вектор.
Что по идее должно получиться? А получится именно точно такая же карта, как в MSTS, только без ландшафта и без базы треков. Все объекты, должны будут устанавливаться строго на своих местах, но уже не по системе ZDS, а в координатах геоданных. Возможно, что какие-то объекты сползут и их придётся поправлять вручную. Но это уже будет дело редактора маршрутов. А если мы сумеем сделать базу данных пути, то возможно по моделям секций пути, конвертируемого маршрута, программа, автоматически нарисует путевую базу, опираясь на специальный файл (типа как tsection.dat в MSTS), где уже будут описания кривых или прямых линий.
Для примера, приведу запись из Route1.map:
opkl,-3.75,49200,0,0,0,0;
Где цифра 49200 - это и есть нужная нам координата длинны от нуля!
Примерно как-то так! :)

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 04 фев 2020, 13:20
Oleg
Исходя из всего вышеизложенного, чувствую будет БОМБА!!! :good: :good: :good: :good:

Re: Модернизация формата маршрутов - обсуждаем подходы

Добавлено: 11 мар 2020, 18:03
нюх
В МСТС и РТС было здорово начать свою поездку с любого пути и приехать так же на любой путь на карте... Мне очень нравилось взять, к примеру, ЧМЭ3, прицепить к нему пару-тройку вагонов и кататься с ними по всем кустам и промышленным зонам) :D

А ещё в МСТС был офигенный порядок в укладке стрелочных переводов, что приведено на снимке выше, там стрелки не наползали друг на друга под неестественными углами...