SoyuzDeveloper

SoyuzDeveloper

на Пикабу
Команда разработчиков симулятора "Союз-ТМА"
350 рейтинг 29 подписчиков 47 комментариев 1 пост 1 в горячем
230

Симулятор космического корабля

Всем привет! Мы - команда Soyuz Developer Team - команда разработчиков симулятора космического корабля Союз-ТМА.

Мы занимаемся этим проектом довольно давно, но более-менее какие-то результаты стали получать только недавно (в связи с довольно большим порогом вхождения в системы корабля).

Наш проект - полноценный симулятор космического корабля Союз-ТМА 200й серии летавшего с  2003 по 2012 год. В симуляторе будут реализованы все алгоритмы вычислительной системы корабля, идентичные штатному вычислительному комплексу "Аргон-16" и спец.-вычислителю "КС-020". Так же будет реализована штатная логика работы других систем (напр. управление двигателями и др.).

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

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

На первом этапе разработки мы (так как не имели опыта в области gamedev) стали делать 3d модели, текстуры и т.д, но через определенное время поняли, что в первую очередь надо было реализовать сами алгоритмы, поэтому было решено описать вначале сами алгоритмы, циклограммы и т.д. Так как мы планируем в симуляторе моделировать все режимы полета (предстартовая подготовка, выведение на орбиту, орбитальный полет, сближение и стыковка, расстыковка и спуск), это ставило определенные сложности в реализации штатного набора алгоритмов, поэтому мы решили сделать отдельное программное обеспечение, моделирующее полет по заданным Начальным Условиям и посылающее в Систему Компьютерной Генерации Изображения (среду, где будет происходить формирование 3D моделей и их расположение на сцене согласно параметрам поступающим из ПО управления) параметры текущего положения и ориентации каждого объекта на сцене - корабля, станции и других небесных тел в виде структур массивов. Обмен между ПО и СКГИ происходит по TCP\IP.

Главному ПО мы дали название (которое может некоторым покажется смешным) - СПО "МиУ", что обозначает Специальное Программное Обеспечение "Моделирование и Управление". В нем будут пока что происходить все операции - ввод и отработка начальных условий, организация взаимодействия с математической моделью движения корабля и с моделью Интегрированного Пульта Управления (ИнПУ) являющегося основным инструментом взаимодействия оператора с моделью корабля. Пока что все это - отдельное ПО, обмен с которым происходит так же по TCP\IP, но в планах перенести все это в dll-библиотеки, подгружаемые в "МиУ".

Получается, что в данный момент СПО "МиУ" и его компоненты (ИнПУ и Блок Математического Моделирования) являются самим симулятором. Пока что все это без вывода в 3д - только цифры текущего положения двух объектов (корабля и станции) и их параметры.

Теперь подробнее про "МиУ".

СПО "Моделирование и Управление"

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

На фото выше представлен скриншот текущего состояния "МиУ".

Данное СПО вряд ли будет публиковаться как симулятор, оно скорее всего только для отработки алгоритмов вычислительной системы и не более. Написано на С++ в среде C++ Builder 6. Пользовательский интерфейс реализован по подобию UI тренажера подготовки космонавтов "ДОН-СОЮЗ ТМА-М" в ЦПК.

Возможности пока ничтожны, зато успехи велики.

По запуску СПО пользователю предлагается провести процесс инициализации, в котором будет проведена проверка сопутствующий файлов программы (файлы конфигурации, файлы моделей и т.д.), а так же попытка установки связи с моделью Блока Управления Моделированием и моделью ИнПУ. Ход процесса инициализации можно проконтролировать в журнале:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

При успешной инициализации загорятся иконки моделей,

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

что будет свидетельствовать о установке соединения с выбранными оператором моделями.

После чего пользователю необходимо будет ввести Начальные Условия текущего положения космического корабля Союз и МКС. Делается это в несколько этапов:

1 - Выбор режима полета

- Посадка экипажа в корабль за два часа до команды Пуск (Контакт Подъема) ( Ткп - 02:: ) - в этом режиме происходит предстартовая проверка систем корабля экипажем совместно с специалистами пуска ( в симуляторе - выставка согласно бортовой документации (чеклисту) параметров корабля и подготовка к пуску);

- Выведение - процесс от момента пуска (Ткп  - Время Контакта Подъема) до Контакта Отделения; 

- Орбитальный полет - этап от момента КО (Контакта Отделения) до начала режима дальнего сближения. О процедурах входящих в состав этого режима напишу отдельно;

- Сближение и стыковка  - этап начиная от дальнего сближения до касания корабля и станции.

- Расстыковка - начинается за час до расчетного времени расстыковки Союз-ТМА и МКС, за это время экипаж должен произвести ряд стандартных операция входящих в состав подготовки к расстыковки. Заканчивается разделением корабля на отсеки перед входом в плотные слои атмосферы.

- Спуск - этап от разделения до ввода двигателей мягкой посадки.

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Переходим к следующему этапу. Исходя из выбранного режима пользователь вводит остальные параметры начальных условий -
Параметр ориентации:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Параметры орбиты:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

И дополнительные характеристики корабля и МКС

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

И напоследок необходимо ввести время и дату начала режима.


После чего на главной форме нажимается кнопка "Отработка НУ" которая отрабатывает введенные пользователем Начальные Условия (или загруженные из файла) и выставляет начальное состояние признаков для модели Вычислительной системы и БУМ.


Остается только выдать команду "ПУСК" и начнется процесс моделирования.

По запуску процесса моделирования начинается движение КА и происходит запуск таймера обработки текущего состояния моделей (обработка команд от ИнПУ выдаваемых оператором и квитанций факта исполнения команд в ИнПУ , обработка признаков для моделей атмосферы и др.).
Пока что эта команда не работает, т.к. происходит наладка операций на такт таймера. Таймер будет не один, так же будет таймер БЦВК, который будет имитировать такт вычислительной системы "Аргон-16".


Так же в данный момент занимаемся моделью атмосферы в которую входит модель Системы Обеспечения Теплового Режима и Системы Обеспечения Жизнедеятельности. Модель атмосферы должна в основном моделировать температуру и давление в отсеках корабля.


Формат СОТР выглядит следующим образом:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Дополнительно ввели графики для отслеживания изменения параметров:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Ну а теперь перейдем к самой интересной части...

Система Имитации Визуальной Обстановки

В тренажере стыковки "Дон-Союз ТМА" для решения задачи 3-х мерной визуализации используется Система Компьютерной Генерации Изображений «Ариус-СТ»


Назначение системы согласно сайту компании Бликс www.bliks.ru

формирование цветных, управляемых в реальном масштабе времени по командам от вычислительной системы тренажера изображений трехмерных динамических сюжетов внешней визуальной обстановки, наблюдаемых одновременно в шести средствах наблюдения рабочего места операторов «РМО ТМА» тренажера «Дон-Союз ТМА» (визир ВСК-4Т, левый иллюминатор №3, правый иллюминатор №6, ИнПУ-1,2, «Блистер объект», «Блистер фон»), моделирования совместно с другими системами тренажера отдельных режимов работы бортовой телевизионной системы «КЛ-100-01М» и форматов системы «Символ» для рабочего места «РМО ТМА».

У нас же задачи проще:
Программа должна генерировать 3-д модели и изменять их положение и ориентацию на сцене согласно параметрам от СПО "МиУ".

Требования к графике - реалистичные текстуры, хорошее и правильное освещение, отсутствие пластмассовости. 

Вывод картинки должен быть в девяти режимах, из которых 8 статических (неподвижная точная с неподвижным связанным с некоторым объектом вектором направленности) - визир ВСК-4Т, левый иллюминатор №3, правый иллюминатор №6, ИнПУ-1,2, «Блистер объект», «Блистер фон» и один режим отображения динамический - вид от "лица командира корабля" имитирующий глаза космонавта.

Управление планируется от первого лица.

Вот приблизительно что видит командир корабля на своем штатном месте:

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Ну и то что мы сделали - вид от первого лица.

Какую информацию выводить на экран пока не решили, будем этим заниматься когда все алгоритмы закончим и отладим их.

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Еще несколько скриншотов 3д которые мы разработали для нашего симулятора.

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост
Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост
Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

Моделирование большинства деталей делалось по чертежам корабля :

Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост
Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост
Симулятор космического корабля Союз-Тма, Космический симулятор, Длиннопост

В следующем посту расскажу еще что-нибудь.
Планируем конечно публикацию в Steam.

Оставляйте ваши комментарии и предложения, как только реализуем динамику, опубликуем на GitHub.

P.S.

У нас не хватает людей и если кто желает поучаствовать в проекте на свободных началах (денег нет, но интересное путешествие в мир космоса гарантируем) - пишите Soyuz.developer@gmail.com

Показать полностью 17
Отличная работа, все прочитано!