ENG Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 2 из 5«12345»
Форум » SpaceEngine » Обратная связь и предложения » Авиакосмический симулятор
Авиакосмический симулятор
SpaceEngineerДата: Вторник, 06.11.2012, 23:41 | Сообщение # 16
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Эх, было бы время попробовать встроить это для SE. Пока что нету.
Для поддержки многих планет в системе вам потребуется реализация расчета их орбитального движения. И особенно - модели гравитационных полей и атмосфер других планет.


BlackPhoenixДата: Вторник, 06.11.2012, 23:46 | Сообщение # 17
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Quote (SpaceEngineer)
Эх, было бы время попробовать встроить это для SE. Пока что нету.
Для поддержки многих планет в системе вам потребуется реализация расчета их орбитального движения. И особенно - модели гравитационных полей и атмосфер других планет.

Нет, это вы симулятору всё дадите сами smile

Текущее положение планет просто как можно чаще (но частота раз в секунду тоже подойдёт) надо задавать прямо обьекту-планете.

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

Для каждой планеты можно будет задать базовые параметры (mu, параметры экспоненциальной атмосферы, или ссылки на модели сложнее), дефолтный обработчик космических кораблей справится с этим.

Если надо будет в будущем считать столкновения с ландшафтом, надо будет создать обьект "collision box", или там "шасси" который будет выдавать силы реакции с ландшафтом.
SpaceEngineerДата: Вторник, 06.11.2012, 23:56 | Сообщение # 18
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Да, я уже обновляю положения планет для рассчета гравитации раз в 10-20 кадров.
Коллижены надо по-человечески делать, не простым боксом, а нормальной моделью, да ещё и симуляцию колёс прикрутить. Тут море работы. По началу можно здорово упростить всё, уничтожая корабль при приземлении не на шасси или со слишком большой скоростью, но в конечном итоге нормальный физдвижок по любому должен быть. Некоторык эксперименты в этом направлении я уже делал.


BlackPhoenixДата: Суббота, 10.11.2012, 16:22 | Сообщение # 19
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Вот для интереса код расчёта гравитации (только точечная гравитация поддерживается пока. Код на С, с обёрткой на С++ будет красивее): http://www.everfall.com/paste/id.php?dcvcw276rsko

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

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

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

Сейчас для теста моделируется такая система (деревом указано что внутри чего):
propagator_rk4
* Earth (планета земля, намертво центрированая пока)
* Moon (луна, задана в координатах земли/пропагатора за эфемеридой)
* Satellite (корабль-спутник, просто летает и получает гравитацию от луны и земли)

Если где-то в дереве обьектов есть другие планеты, они тоже будут давать притяжение. Логически будет запихнуть планету внутрь пропагатора (т.е. планета может иметь собственное вращение), а внутрь планеты ещё один пропагатор:
propagator_rk4 (инерциальная система координат)
* Spacecraft (спутник летит на орбите)
* Earth (вращающаяся земля, вектор угловой скорости не нулевой)
** propagator_bullet (неинерциальная система координат - физика на основе движка bullet)
*** Ground vessel (машинка ездит по ландшафту)

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

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

P.S. принципиальное отличие симулятора от других - вместо уже запрограмированой системы уравнений идёт создание системы уравнений для всей системы из отдельных, не связаных, уравнений. Можно строить нужную систему уравнений прямо файлом настройки (или програмно).


Сообщение отредактировал BlackPhoenix - Суббота, 10.11.2012, 16:33
maxmiztejmДата: Четверг, 15.11.2012, 02:00 | Сообщение # 20
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
Насчет детекции коллизии: я думаю если есть возможность, надо сделать подробную модель. Поскольку при полете могут настать ситуации когда сталкиваются 2 корабля. Например в Orbiter корабли проходят через себя, что плохо. Хотелось бы увидеть детекцию коллизии подобную той, которая используется в Kerbal Space Program. Надеюсь, что у вас получится скрестить SE и BPh. Результат бы был интересный!
BlackPhoenixДата: Четверг, 15.11.2012, 03:29 | Сообщение # 21
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Quote (maxmiztejm)
Насчет детекции коллизии: я думаю если есть возможность, надо сделать подробную модель. Поскольку при полете могут настать ситуации когда сталкиваются 2 корабля. Например в Orbiter корабли проходят через себя, что плохо. Хотелось бы увидеть детекцию коллизии подобную той, которая используется в Kerbal Space Program. Надеюсь, что у вас получится скрестить SE и BPh. Результат бы был интересный!


Мне точные столкновения без вопросов нужны для симуляции стыковки и расчёта динамики стыковочных механизмов. Это одно из основных требований ко всей штуке.

Вот кстати документация и туториал по физ. движку (фреймворку), в процессе написания: http://evds.wireos.com/


Сообщение отредактировал BlackPhoenix - Четверг, 15.11.2012, 03:30
maxmiztejmДата: Четверг, 15.11.2012, 13:39 | Сообщение # 22
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
Quote (BlackPhoenix)
Мне точные столкновения без вопросов нужны для симуляции стыковки и расчёта динамики стыковочных механизмов. Это одно из основных требований ко всей штуке. Вот кстати документация и туториал по физ. движку (фреймворку), в процессе написания: http://evds.wireos.com/


Отлично! Кстати, я занимаюсь разработкой кабины симулятора космического корабля. Пока проект стоит из за того, что нет подходящей программы-симулятора. Orbiter не подходит, именно из-за отсутствия детекции коллизии с другими кораблями и поверхностью планет, а так-же отсутствия рельефа у планет(есть плагин-но это все не то). Kerbal тоже не подходит, поскольку это игра не приспособленная для использования в симуляторaх (нет возможности использовать мульти-оконный режим). А вот вашу "штуку" в кабине думаю можно будет применить. Особенно здорово это получится если скрестить ее с SE.


Сообщение отредактировал maxmiztejm - Четверг, 15.11.2012, 13:41
BlackPhoenixДата: Четверг, 15.11.2012, 17:25 | Сообщение # 23
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Quote (maxmiztejm)
Отлично! Кстати, я занимаюсь разработкой кабины симулятора космического корабля. Пока проект стоит из за того, что нет подходящей программы-симулятора. Orbiter не подходит, именно из-за отсутствия детекции коллизии с другими кораблями и поверхностью планет, а так-же отсутствия рельефа у планет(есть плагин-но это все не то). Kerbal тоже не подходит, поскольку это игра не приспособленная для использования в симуляторaх (нет возможности использовать мульти-оконный режим). А вот вашу "штуку" в кабине думаю можно будет применить. Особенно здорово это получится если скрестить ее с SE.


Основная общая задача EVDS (физика) и IVSS (внутренние системы) - помощь в эскизном создании космических кораблей, параметрическом задании их форм и функциональных элементов. Кабину вы для какого КА хотите делать, кабину виртуальную или физическую (железную)?

Если железную, то мне интересно как вы планируете подключение самих панелей к ЭВМ - я постараюсь посмотреть в этом направлении, что-бы в IVSS (где указана логика работы всяких панелей, систем и т.п.) были нужные програмные средства.
maxmiztejmДата: Четверг, 15.11.2012, 18:27 | Сообщение # 24
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
Quote (BlackPhoenix)
Основная общая задача EVDS (физика) и IVSS (внутренние системы) - помощь в эскизном создании космических кораблей, параметрическом задании их форм и функциональных элементов. Кабину вы для какого КА хотите делать, кабину виртуальную или физическую (железную)? Если железную, то мне интересно как вы планируете подключение самих панелей к ЭВМ - я постараюсь посмотреть в этом направлении, что-бы в IVSS (где указана логика работы всяких панелей, систем и т.п.) были нужные програмные средства.


Кабину хочу создать именно железную. Что-то типа такого ( http://www.youtube.com/watch?v=ukLTlqqy-s8 ) . Кабина КА близкого будущего (Orion, PPTS, Dragon, Boeing) и кабина спускаемых аппаратов близкого будущего. Цель - научить людей основам космических полетов и дать им возможность попробовать управление КА в разных ситуациях.

Соединение кабины с програмным обеспечением следующие: снаружи кабины, за окнами находится большой полукруглый или сферический экран на который проецируется вид с КА (без элементов внешней конструкции), второй экран устанавливается на столе оператора. Это экран на который выводятся меню предназначеные для выбора и пуска конкретной симуляции а так же вид на КА снаружи, позволяющий оператору контролировать полет КА. Следующий экран, это MFD, экран для самой кабины на котором изображаюстя панели систем КА, карты, гироскоп и картинки с внешних видео-камер КА (видео-камеры виртуальные). Должна быть возможность иметь хотя бы 2 независимых от себя MFD. На каждом MFD стоят кнопки, которые служат на его управление. Кнопки подключены к модулю, который имитирует работу клавиатуры. То-есть при нажатии кнопки MFD, модуль через USB порт посылает код, который соответствует какой-нибудь комбинации клавиш на клавиатуре. Джойстики для управления КА, также подключаются через USB порт. Если возникает необходимость подключить к компьютеру какой нибудь прибор кабины КА, то коммуникация с прибором осуществляется через виртуальные COM порты (на самом деле идет подключение к компьютеру через переходник RS232/USB). Через COM порт должна посылаться вся необходимая информация, для работы конкретного прибора или группы приборов. Формат протокола не так уж и важен, поскольку перепрограммировать прибор на конкретный формат данных не сложно. Подключение нескольких экранов к компьютеру можно осуществить с помощью наружной графической карты Matrox TripleHead2Go. Так же можно всю систему сделать на нескольких компьютерах соединеных в сеть. Самое главное чтобы система могла функционировать в мульти-оконном режиме, могла посылать данные через COM порты а так же, чтобы была возможность наставить комбинацию клавиш к каждому элементу управления.

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


Сообщение отредактировал maxmiztejm - Четверг, 15.11.2012, 18:29
BlackPhoenixДата: Четверг, 15.11.2012, 19:24 | Сообщение # 25
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Quote (maxmiztejm)
Если хотите, могу нарисовать подробную блоковую схему подключения апратуры кабины КА к компьютеру с симулятором.

Не требуется. Звучит отлично. Какие планы по написанию бортовой системы для КА? Я просто тут совсем случайно делаю "свой Орион" - просто капсула на основе Ориона, но со своими бортовыми системами (только в общем похожими на орион), но одинаковые режимы и ракеты практически идентичны (по проекту Ares).

Вот картинки:
http://brain.wireos.com/wp-content/uploads/screenshot_107.png
http://brain.wireos.com/wp-content/uploads/screenshot_101.png

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

Тут системы на базе просто "ОС", которая написана на Lua - фактически это набор библиотек для навигации и цифрового автопилота, библиотека пропагации (которая снова EVDS, но уже бортовая версия), и всякие другие штуки. Бортовая система ракеты выводит ракету на орбиту, у капсулы своя система которая эту капсулу по орбите гоняет.

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

Мульти-оконность это к автору отрисовки (в данному случае SpaceEngine smile ), встроеная поддержка распределения по сети в симуляторах IVSS, EVDS будет, но не скоро. Не в этом году скорее всего.
maxmiztejmДата: Четверг, 15.11.2012, 20:04 | Сообщение # 26
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
Планов, по написанию бортовых систем-никаких, поскольку я делаю именно железо, а бортовые системы зависимы от симулятора конкретного корабля. Так, что по моей части только механика и электроника кабины КА. Ну а визуализацию и симулятор физики для PC приходится искать.
Кстати Орион выглядит очень хорошо! Это визуализация под X-Plane? Правильно ли я понял в X-Plane есть только Земля и поэтому симуляцию перелетов и посадок на другие планеты там невозможно сделать? Надеюсь, что ваш симулятор и SE смогут работать вместе.
Проблему с мульти-оконностью можно решит так, что главный вид показывает PC с SpaceEngine a данные на MFD выводит PC с симулятором. Хотя тут появляется проблема вывода на MFD картинки с виртуальных бортовых видео-камер (камеры для стыковки и посадки). В такой конфигурации не представляю, как это можно сделать. Если для карты данные можно брать из SE, то всю картинку с виртуальной камеры взять будет очень сложно.
BlackPhoenixДата: Четверг, 15.11.2012, 20:15 | Сообщение # 27
Космонавт
Группа: Пользователи
Украина
Сообщений: 47
Награды: 0
Статус: Offline
Quote (maxmiztejm)
Планов, по написанию бортовых систем-никаких, поскольку я делаю именно железо, а бортовые системы зависимы от симулятора конкретного корабля. Так, что по моей части только механика и электроника кабины КА. Ну а визуализацию и симулятор физики для PC приходится искать.
Кстати Орион выглядит очень хорошо! Это визуализация под X-Plane? Правильно ли я понял в X-Plane есть только Земля и поэтому симуляцию перелетов и посадок на другие планеты там невозможно сделать? Надеюсь, что ваш симулятор и SE смогут работать вместе.
Проблему с мульти-оконностью можно решит так, что главный вид показывает PC с SpaceEngine a данные на MFD выводит PC с симулятором. Хотя тут появляется проблема вывода на MFD картинки с виртуальных бортовых видео-камер (камеры для стыковки и посадки). В такой конфигурации не представляю, как это можно сделать. Если для карты данные можно брать из SE, то всю картинку с виртуальной камеры взять будет очень сложно.


Ах, тогда всё отлично - между нами зависимости никакой не будет. Делайте кабину под простую модель, а если у меня появится рабочая модель этого "ориона", то запустить его не должно составить проблем! На простую физ. модель у меня уже кода хватит.

Визуализация под X-Plane, мне сделали 3Д модель а я её покрасил (текстуру сделал). Не знаю как насчёт SpaceEngine, но как альтернатива я работаю над подключением Proland (ландшафтный движок) для визуализации изображения со всяких камер. Реализуется через отрисовку сцены несколько раз с каждой камеры.

В X-Plane только Земля, причём у меня всё летало под моим физическим движком, который исправляет проблемы в X-Plane. Но тот движок был совсем не модулярный, и просто плохой smile

SpaceEngineer скорее всего сможет сказать, можно ли такое реализовать на SpaceEngine (нужна отрисовка в буффер без вывода на экран, может быть тривиально или сложно).

MFD у старой версии ориона у меня был такой:
SpaceEngineerДата: Четверг, 15.11.2012, 20:28 | Сообщение # 28
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Отрисовка в буффер - без проблем. Предачу картинки по сети тоже можно сделать, но вы понимаете, что это не быстро, лучше просто выводить на дочернее окно, расположенное на другом мониторе. Идеально, если весь рендер делает один компьютер. Сейчас есть материнсткие платы, куда можно воткнуть 4 видеокарты, итого 8 мониторов (пара проекторов и 6 MFD). Правда я не знаю, как реализовать многооконный независимый рендер в такой системе (не CrossFire/SLI, а именно чтобы каждая видеокарта работала независимо).

maxmiztejmДата: Четверг, 15.11.2012, 20:39 | Сообщение # 29
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
MFD мне нравится!
Насчет отрисовки, посмотрим что скажет SpaceEngineer. Я думаю, что сделать это можно. Хотелось бы, чтобы на визуализацию использовался именно SE, поскольку вселенная тут нарисованна отлично smile
Кстати, можно будет с вами связаться по e-mail? У меня скорее всего появятся вопросы по интерфейсу управления системами КА и обмену дат апаратуры кабины с симулятором.

Добавлено (15.11.2012, 20:39)
---------------------------------------------

Quote (SpaceEngineer)
Отрисовка в буффер - без проблем. Предачу картинки по сети тоже можно сделать, но вы понимаете, что это не быстро, лучше просто выводить на дочернее окно, расположенное на другом мониторе. Идеально, если весь рендер делает один компьютер. Сейчас есть материнсткие платы, куда можно воткнуть 4 видеокарты, итого 8 мониторов (пара проекторов и 6 MFD). Правда я не знаю, как реализовать многооконный независимый рендер в такой системе (не CrossFire/SLI, а именно чтобы каждая видеокарта работала независимо).

Понял. Естьвопрос: а как скажем достичь того, чтобы в одном окне показывался и вид с виртуальной видео-камеры КА и данные систем КА и карта? За вид с видео-камеры отвечает SE a за данные КА уже симулятор.
SpaceEngineerДата: Четверг, 15.11.2012, 20:45 | Сообщение # 30
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 54
Статус: Offline
Quote (maxmiztejm)
Понял. Естьвопрос: а как скажем достичь того, чтобы в одном окне показывался и вид с виртуальной видео-камеры КА и данные систем КА и карта? За вид с видео-камеры отвечает SE a за данные КА уже симулятор.

Никак, рисовать должна одна программа. Быстрее будет передать несколько циферок данных с симулятора в SE, чем гонять мегабайты видеопотока обратно. А вообще, вся система должна быть одной программой, или вы хотите по сети скрестить две отдельные программы?


Форум » SpaceEngine » Обратная связь и предложения » Авиакосмический симулятор
Страница 2 из 5«12345»
Поиск:

>