Форум программистов, компьютерный форум, киберфорум
Наши страницы
Dima_control
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 2.

Костыли и грабли или как мы делали симулятор - ч.1

Запись от Dima_control размещена 28.12.2019 в 18:41

Никогда не вел блогов, но попробую. И попробую вести про то, чем занимаюсь уже много лет, а именно про то как я разрабатываю симулятор космического корабля Союз-ТМА, его программную реализацию, все проблемы с которыми я столкнулся и как их решал. Многие проблемы может покажутся вам смешным и не серьезным, но а может помогут при решении той или иной задачи, а может вы мне предложите решение мой задачи в новом ключе.

Более 15 лет я занимаюсь системами отображения информации космического корабля Союз, больше всего времени я потратил на Союз-ТМА и его "Нептун-МЭ" разработки НИИАО(г. Жуковский, МО). Да конечно без личного интереса я бы столько не стал бы возится с подобными вещами и интереса тут было много. С годами он перерос в создание симулятора космического корабля Союз-ТМА, который бы любой человек смог поставить себе на компьютер и не просто полетать в космосе и по нажимать разные кнопки в космическом корабле (а скажу сразу их не много - около 100), но и отработать любой режим полета (штатный или с заранее (не)известными авариями) с учетом всех (более 100 параметров начальных условий) собственных прихотей и пожеланий. Никакой фантастики. Только те функции и возможности корабля - которые были на штатном изделии.
Написал я на эту тему уйму статей и сделал около 1000 записей.
Опыта работы конечно у меня не было в данной области у меня было, как собственно и друзей/знакомых которые к этому имели хоть какое-то отношение, но зато у меня был главный козырь - большая часть исходных кодов различных систем космического аппарата (КА) Союз-ТМА написанная на разных языках и в разное время, а так же десятки томов алгоритмов его работы и учебных материалов.
Я принялся изучать это все для того что бы выстроить последовательность своих действий, а так же стал искать в сети материалы о разработке симуляторов космических кораблей. Когда я понял что эта тема очень и очень узка и те кто ею занимается (в России -Центр Тренажеростроения (г. Новочеркасск), ЦПК им.Гагарина (Звездный Городок), ИМБП (г. Москва), НИИАО (г. Жуковский), РКК "Энергия" (г. Королев)) о своих разработках не очень то и распространяются, я решил просто поискать информацию о разработке самих тренажеров.
Я поставил первую основную задачу - написать программный комплекс (звучит громко неправда ли), который повторял бы процессы возникающие в вычислительных устройствах КА, а так же моделировал внешнюю среду и взаимодействие устройств с этой средой и представлял оператору набор необходимых параметров в текстовой и графической форме (как 2х мерной - имитаторы пультов и ПО управления кораблем, так и 3Д - внешняя визуальная обстановка и вид от "наблюдателя").
Задачу решил разбить на несколько подзадач, а именно -
  1. Написать компьютерные модели вычислительной системы корабля,
  2. Написать модели датчиков и других чувствительных устройств,
  3. Написать модель движения корабля,
  4. Написать ПО отображения сцены в 3d пространстве,
  5. Написать ПО с пользовательским интерфейсом для управления всем и контролем.
Конечно одному человек не справится с решением всех этих задач, так как тут надо иметь знания в сотнях областях и иметь тонну времени...ни того ни другого у меня не было, поэтому я решил начать собирать людей. Написав на десятке форумов по несколько тем решил все-таки пока взять всю работу на себя.
Познакомившись в разработчиками тренажера Союз-ТМА на котором космонавты сдают экзамены и тренируются, я узнал довольно большое количество информации, которая мне очень помогла в разработке ( позже расскажу какой).
Теперь стояла важная задача - выбрать основной язык на котором я буду писать симулятор. я считал, что данный вопрос надо решать в первую очередь - в самом начале разработки ПО, т.к. это позволит потом не переписывать тонну кода, когда выяснится, что ЯП не подходит для решения этой задачи. Поняв. что в сети информации не много, решил провести "собственное расследование". Опыта программирования у меня не было и поэтому явной разницы в ЯП я не видел, так что статьи на Википедии мне мало чего дали, я написал в NASA, ESA, Jaxa и всем знакомым из РККЭ, ЦЭНКИ и ЦПК - на чем были написаны симуляторы космических кораблей. Больше всего меня интересовали их мобильные версии (те. работающие в рамках одной машины и не нуждающиеся в дополнительном оборудовании, сети и т.п.) типа МТК, который сейчас применяется на байконуре. ФОТО Ответ пришел откуда и не ждал я даже. Написал знакомый военный рассказывает, мол что у них та симулятор стоит управления летательным аппаратом (не космос, авиация) и он принимал участие в его разработке как программист. Симулятор конечно тяжелый, не для одного ПК, НО. высшее начальство потребовало сделать мобильную версию для одного компа, так что бы было максимально схоже. Ну что сделали - под ДОС на паскале написали сотни модулей (даже какая-то псевдографика была) и сделали неплохую такую игрушку (летал - физика зачет, но графики не хватает X-Plane'овской). Дал он мне эту игрушку на изучение (не ДСП и не военная тайна) и я с ней засел. К этому моменту мне пришли ответы на почту от коллег из космических агентств по поводу ЯП для симулятора. Посидел полистал, привожу сводочку:
  1. 1 место - фортран и алгол
  2. 2 место - С++
  3. 3 место - паскаль и т.д.
Да фортран с алголом отпадают сразу, но вот С++, если его использовать совместно с ассемблером для ускорения работы - самое то. Изучив кратко этот язык его синтаксис и структуру я решил остановится на этом выборе, а это значило, что надо начинать решать первую задачу - разработку модели вычислительной системы КА Союз-ТМА о чем я расскажу позже.
Просмотров 275 Комментарии 7
Всего комментариев 7
Комментарии
  1. Старый комментарий
    Добрый вечер! На какой ОС будете писать?

    Все модули:
    - компьютерные модели вычислительной системы корабля,
    - модели датчиков и других чувствительных устройств,
    - модель движения корабля,
    - ПО отображения сцены в 3d пространстве,
    - ПО с пользовательским интерфейсом для управления всем и контролем,

    будут выполняться на одной машине?
    Запись от MasteRX размещена 28.12.2019 в 21:18 MasteRX вне форума
  2. Старый комментарий
    Цитата:
    Сообщение от MasteRX Просмотреть комментарий
    Добрый вечер! На какой ОС будете писать?

    Все модули:
    - компьютерные модели вычислительной системы корабля,
    - модели датчиков и других чувствительных устройств,
    - модель движения корабля,
    - ПО отображения сцены в 3d пространстве,
    - ПО с пользовательским интерфейсом для управления всем и контролем,

    будут выполняться на одной машине?
    Ну изначально думал делать под QNX, т.к. именно эта ОС используется в ЦПК им. Гагарина в качестве тренажерной (ФОТО тренажера Дон-Союз) из-за того что она ОСРВ, но потом понял, что она ее выбрали из за сопряжения с УСО (Устройство Связи с Объектом). Дело в том, что в ЦПК стоял задача полного погружения и там установлен штатный макет космического корабля, со всем оборудованием и приборами, что находятся и в штатном изделии. Со всем этим надо иметь обмен. Оборудования очень много (один только пульт космонавтов спускаемого аппарата (ФОТО) имеет в составе несколько АЦП-ЦАП фирмы Octagon с которыми надо постоянно иметь связь) всего в Союзе (в тренажерном исполнении) можно насчитать около 2000 каналов I\O. У меня задача проще - я собираюсь сделать все на одном ПК, а управление будет с 3-х джойстиков (РУД, РУО и РУС), поэтому я остановился на Linux и Windows. Тем более что физически подключаемых (по RS232 или Ethernet) приборов пока не предполагаю использовать, уверен что возможности этих ОС хватит на решение поставленных задач.
    Запись от Dima_control размещена 29.12.2019 в 05:28 Dima_control вне форума
  3. Старый комментарий
    Аватар для XLAT
    Цитата:
    Сообщение от Dima_control Просмотреть комментарий
    У меня задача проще - я собираюсь сделать все на одном ПК
    я сначала понял так, что вы 15 лет этот симулятор делали и уже сделали,
    а тут желаете поведать нам историю этого процесса.
    Запись от XLAT размещена 29.12.2019 в 09:02 XLAT вне форума
  4. Старый комментарий
    Цитата:
    Сообщение от XLAT Просмотреть комментарий
    я сначала понял так, что вы 15 лет этот симулятор делали и уже сделали,
    а тут желаете поведать нам историю этого процесса.
    Нет 15 лет я занимаюсь самим Союзом, симулятор в панах было сделать то же много лет назад но начал по факту около года. Текущий процент готовности 35-40%, рассказываю то что произошло за последний год-полтора.
    Запись от Dima_control размещена 29.12.2019 в 10:21 Dima_control вне форума
  5. Старый комментарий
    Аватар для Evg
    Цитата:
    Сообщение от Dima_control Просмотреть комментарий
    но начал по факту около года
    Неплохо бы его реализовать таким образом, чтобы он в том числе и на Эльбрусе функционировал
    Запись от Evg размещена 29.12.2019 в 14:51 Evg вне форума
  6. Старый комментарий
    Цитата:
    Сообщение от Evg Просмотреть комментарий
    Неплохо бы его реализовать таким образом, чтобы он в том числе и на Эльбрусе функционировал
    Я думаю, что когда будет готова стабильная версия для ПК, займусь реализацией для макета пульта "Нептун-МЭ", а та как раз Эльбрус будет самое-то.
    Нептун-МЭ фото
    Но вообще планируется для макетной версии использовать стойки УСО с более новыми и проверенными системами и блоками
    Запись от Dima_control размещена 29.12.2019 в 15:36 Dima_control вне форума
  7. Старый комментарий
    Аватар для bedvit
    Масштабная задача. Желаю вам успехов! С интересом глянул бы на итоговый результат.
    Запись от bedvit размещена 31.12.2019 в 11:17 bedvit вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.