Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Самонаводящаяся ракета в космосе | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 5
На страницу: 1, 2, 3, 4, 5  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Самонаводящаяся ракета в космосе»
Aerton
 70 EGP


Рейтинг канала: 1(8)
Репутация: 4
Сообщения: 67
Откуда: Новосибирск
Зарегистрирован: 20.08.2004
Наверняка кто-нибудь здесь уже делал самонаводящиеся космические ракеты с ньютоновской физикой. Пожалуйста, подскажите алгоритм.

Сначала сделал в лоб - ракета просто всё время поворачивается лицом к цели. Но проблема в том, что при таком повороте не гасится боковая скорость, и ракету уносит в бок.

Почитал про реальные ракеты - там используется такой же алгоритм (называется по-умному Velocity Pursuit Method of Guidance). Но оно расчитано для атмосферы, что накладывает условия, которые в космосе не выполняются: ракета имеет постоянную скорость и, как я понял, боковая скорость просто не учитывается, т.к. относительно быстро гасится сама трением об воздух. В той же доке ещё упоминается Proportional Navigation Method of Guidance, в котором ракета поворачивается в N раз быстрее относительной угловой скорости цели. Но что-то мне кажется, работать оно не будет по тем же причинам.

Выглядит оно сейчас так - особенно заметно, когда ракета немного промахивается по летящей навстречу цели, разворачивается, долго тормозит и возвращается.

Алгоритм действия простой, сначала ракета отбрасывается с какой-то скоростью от борта стреляющего корабля, и через четверть секунды включается система наведения и двигатель. Поворот делается просто приложением момента, т.е. как будто маневровым двигателем. По-хорошему, надо бы сделать поворачивающееся сопло вместо него, но пока хотя бы так научиться попадать.
    Добавлено: 17:59 14-03-2011   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
честное наведение трудно сделать, странно что она ещё не виляет по синусоиде даже когда летит прямо в цель Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 18:52 14-03-2011   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Переведи скорость ракеты в ее локальную систему. Далее возьми боковую составляющую и гаси ее приложением силы - как если бы на ракете стояли боковые двигатели.
Лучшего способа пока не придумал.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 20:32 14-03-2011   
Aerton
 70 EGP


Рейтинг канала: 1(8)
Репутация: 4
Сообщения: 67
Откуда: Новосибирск
Зарегистрирован: 20.08.2004
Это конечно будет работать, но что-то многовато двигателей для одного снаряда получается.
    Добавлено: 21:30 14-03-2011   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Ну тогда можешь попытаться прогназировать траекторию ракеты, и доворачивать ракету так, чтобы эта прогназируемая траектория проходила через цель.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 21:37 14-03-2011   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
ну достаточно назначать рандеву (место где мишень и ракета должны встретиться) в некоторой области, лететь туда и там мощно всем телом подрываться Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 22:42 14-03-2011   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Тоесть тело должно равнодушно ждать смертельного рандеву и да же не будет пытаться сопротивляться?
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 22:44 14-03-2011   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
ракете скорость поболее надо правда, тело имеет право вильнуть и избежать своей участи Улыбка

добавлено спустя 1 минуту:
З.Ы. но вообще да, практически НУРС получается Совсем запутался...
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Sh.Tac. (22:49 14-03-2011), всего редактировалось 1 раз
    Добавлено: 22:49 14-03-2011   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Aerton, попробуй наводить ракету, представив, что вектор движения ракеты и вектор её направления (ориентации) составляют угол, у которого направление на цель - биссектриса.
(исключая экстремальные условия, кажется будет неплохо).
Плюс можно потом заимпрувить алгоритм, меняя тягу в зависимости от величины угла.
_________________
У меня бисера не доxеpа.
    Добавлено: 02:12 15-03-2011   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Вообще говоря, все просто и сложно...

Допустим у ракеты есть 1 маршевый двигатель и набор маневровых (которые ракету крутят вокруг оси).

Теперь представим что ракете необходимо сделать поворот на 90 градусов... Если делается прямоугольны поворот, то алгоритм такой:
Сначала ракета останавливается, потом маневровыми разворачивает тело и ускоряется в соотв. направлении.

Так как это не сильно интересно нам с вами, то достаточно поставить максимальный "угол гашения скорости"... То есть, если ракета хочет погасить какую-то скорость, то она будет поворачиваться не ровно в противоположное направление, а на какой-то угол. Фактически тут будет система весовых приоритетов.

Пока-что приоритета 2: гашение скорости и преследование КА.

Но тогда будет эффект дерганности... Для решения этой проблемы надо вводить плавающие веса в зависимости от "силы" того или иного отклонения. То есть если КА немного сместился, то ракета поворачивает чуть больше, для уменьшения бокового влияния. Если ракета промахнулась, то она может и специально погасить сначала скорость.

Если интересно болле подробнее - могу попытаться расписать это на 2Д ньютоне в виде приложения.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 10:14 15-03-2011   
Crimson
 560 EGP


Рейтинг канала: 4(83)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
Вообще говоря, стоит иметь в виду, что ракеты это не уберваффе и 100% попадать по маневрирующей цели они совершенно не обязаны. Особенно когда их запускают на встречных курсах Улыбка

Имхо у тебя как раза все довольно играбельно, есть элемент навыка и в запуске ракет и в уворачивании. Если сильно заоптимизироваться - получится что запуск по тебе ракеты это game over.

(Мои пять копеек).
    Добавлено: 11:28 15-03-2011   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Crimson :
Имхо у тебя как раза все довольно играбельно, есть элемент навыка и в запуске ракет и в уворачивании. Если сильно заоптимизироваться - получится что запуск по тебе ракеты это game over.

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

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

Собственно, см. Фрил. Там ракеты мазали, но если уж догоняли... Но там было сопротивление киселя.
_________________
Трещит земля как пустой орех
Как щепка трещит броня

Последний раз редактировалось: Guest (11:47 15-03-2011), всего редактировалось 1 раз
    Добавлено: 11:47 15-03-2011   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Посмотрите как это было сделано в HomePlanet.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 11:50 15-03-2011   
Minx
 980 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 136
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
В простейшем случае для ракеты - прогнозировать положение корабля через время, за которое его догонит ракета, и лететь маршевым двигателем туда. Прогноз например для корабля, который летит без ускорения. Перерасчет делается постоянно при работе двигателя ракеты.

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

Очень похожие вопросы обсуждались в теме, которую можно просмотреть полностью или отсюда (со слов "рассмотрим ситуацию").
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 13:22 15-03-2011   
Aerton
 70 EGP


Рейтинг канала: 1(8)
Репутация: 4
Сообщения: 67
Откуда: Новосибирск
Зарегистрирован: 20.08.2004
Shirson :
Aerton, попробуй наводить ракету, представив, что вектор движения ракеты и вектор её направления (ориентации) составляют угол, у которого направление на цель - биссектриса.
Идея интересня, попробую.

Warstone :
Сначала ракета останавливается, потом маневровыми разворачивает тело и ускоряется в соотв. направлении.
В таком виде конечно неприемлимо. Как ты расписываешь дальше - так как раз в том и вся проблема, как расчитать на сколько именно поворачиваться. Если сам за штурвалом, то примерно как-то так и получается, но слишком нечётко, чтобы можно было записать в формулу. Писать приложение наверное сильно долго, скажи как ты планируешь рассчитывать эти веса?

Насчёт Homeplanet - если есть время, можно в двух словах как там сделано? Игру не застал, и даже на ютубе роликов, в которых можно было бы что-то рассмотреть, нету.

Crimson :
Вообще говоря, стоит иметь в виду, что ракеты это не уберваффе и 100% попадать по маневрирующей цели они совершенно не обязаны. Особенно когда их запускают на встречных курсах
Совершенно верно. Но, к сожалению, сейчас ракеты могут промахнуться даже по почти неподвижной цели, хотя в ролике это плохо видно. Когда, например, жёлтый корабль тормозит и сбрасывает скорость до нуля.

Guest :
Из соображений реализма: в ракету сложную логику ставить дорого, это всего лишь кусок железа с движками и боеголовкой, от которого ничего не остаётся!
Мне кажется, микроконтроллер + подвижное сопло навёрное всё-таки будет дешевле, чем маневровый двигатель? Но это в идеале, пока что не получилось даже с маневровым.

Guest :
Собственно, см. Фрил. Там ракеты мазали, но если уж догоняли... Но там было сопротивление киселя.
Случай с вязким трением не отличается от полёта в воздухе, а на эту тему уже давно всё просчитано и даже есть пара книг.

Minx :
Прогноз например для корабля, который летит без ускорения. Перерасчет делается постоянно при работе двигателя ракеты.
Думается мне, что без ускорения ничего летать не будет, т.к. почти всегда имеет смысл разгоняться или тормозить, а максимальной скорости нет.

Minx :
двигатель ракеты работает ограниченное время, после чего ракета идет без изменения вектора скорости.
Сейчас ракета в таком случае самоуничтожается, т.к. в подвижную цель без возможности маневрирования она всё равно не попадёт и только зря занимает вычислительные ресурсы.

Minx :
Очень похожие вопросы обсуждались в теме, которую можно просмотреть полностью или отсюда (со слов "рассмотрим ситуацию").
На первый взгляд кажется не совсем то, но всё равно почитаю.
    Добавлено: 16:34 15-03-2011   
HPilot
 62 EGP


Рейтинг канала: 1(5)
Репутация: -5
Сообщения: 68
Откуда: Ижевск
Зарегистрирован: 09.03.2011
К вопросу об излишествах:
Что мешает оставить вектор движения и вектор ускорения ракеты? То есть ракета только крутится и ускоряется маршевым двигателем. Для такого малого объекта как ракета можно принебречь временем развотота, т.к. это не повлияет на играбельность. И остается только расчитать вектор ускорения, а саму ракету "рисовать" носом по этому вектору ускорения. Ускоряться, пока вектор движения не "уткнется" в цель.
Кстати ракеты в атмосфере сигарообразные для того, чтобы было наименьшее сопротивление воздуху и бОльшая курсовая устойчивость. А в космосе это не критично, поэтому можно строить хоть шар (цилиндр с радиусом примерно равным длине) с пламенем двигателя. Таким образом принцип сферичного коня в вакууме здесь вполне применим Кручусь-верчусь
_________________
"Где граница атмосферы?... - Космос начинается тут, где ты стоишь" Orbitez

Последний раз редактировалось: HPilot (17:49 15-03-2011), всего редактировалось 5 раз(а)
    Добавлено: 17:11 15-03-2011   
Minx
 980 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 136
Сообщения: 10528
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Aerton :
Думается мне, что без ускорения ничего летать не будет, т.к. почти всегда имеет смысл разгоняться или тормозить, а максимальной скорости нет.

Чаще всего предсказать, будет разгоняться корабль или тормозить - возможности нет. Но при постоянном перерасчёте во время работы двигателя идет сближение.

Я не большой специалист в ракетной технике, но по моим понятиям ракета работает ограниченное и очень малое время (например "The AIM-9E and -9J Sidewinders both had a rocket motor impulse of 8,800 lb/s, burn time of 2.2 s, peak thrust of 4,200 lb, giving an acceleration of 28G.") и, набрав за это время большую скорость, сближается настолько быстро, что цель не успевает сделать маневр для ухода от атаки.

Aerton :
Сейчас ракета в таком случае самоуничтожается, т.к. в подвижную цель без возможности маневрирования она всё равно не попадёт и только зря занимает вычислительные ресурсы.

Попадание - это что? Попадание в цель с точностью до миллиметра? Или нужно пройти мимо цели на как можно более близком расстоянии, и повредить её взрывом/облаком осколков/.. ?
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 17:22 15-03-2011   
DIMOSUS.X
 997 EGP


Рейтинг канала: 4(67)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
ЗРК "Стрела-10", ее ракета попадает с растояния 5км в цель размером с яблоко - сам наблюдал.

Если используется ньютоновская физика, то какие у тебя размеры игроого пространства?
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 17:29 15-03-2011   
Aerton
 70 EGP


Рейтинг канала: 1(8)
Репутация: 4
Сообщения: 67
Откуда: Новосибирск
Зарегистрирован: 20.08.2004
HPilot :
То есть ракета только крутится и ускоряется маршевым двигателем. Для такого малого объекта как ракета можно принебречь временем развотота, т.к. это не повлияет на играбельность.
Ракета - это полноценный физический объект, так что у неё должны быть все параметры. В любом случае, разворачивается она шустро, так что время разворота на желаемый угол (который меняется не особо резко) и так достаточно близко к мнгновенному.

HPilot :
Кстати ракеты в атмосфере сигарообразные для того, чтобы было наименьшее сопротивление воздуху и бОльшая курсовая устойчивость. А в космосе это не критично, поэтому можно строить хоть шар
Совершенно верно, но для системы наведения это никакого значения не имеет.

Minx :
Чаще всего предсказать, будет разгоняться корабль или тормозить - возможности нет.
Я неудачно выразился - чаще всего движение будет не с постоянной скоростью, а с постоянным ускорением. При условии, что цель не выполняеет манёвры уклонения.

Minx :
Попадание - это что? Попадание в цель с точностью до миллиметра? Или нужно пройти мимо цели на как можно более близком расстоянии, и повредить её взрывом/облаком осколков/.. ?
Физический контакт. Но принципиальной роли это не играет, т.к. изменение задачи на "подойти к цели на расстояние N" это по сути то же самое, что увеличить габариты цели на это же N.

DIMOSUS.X :
Если используется ньютоновская физика, то какие у тебя размеры игроого пространства?
Из-за того, что используется 2D с видом сверху, то расстояния и скорости гораздо меньше реальных, чтобы действие не разлеталось на много экранов. Точно в метрах сказать на данном этапе нельзя - так как это во многом будет определяться тем, каким сейчас получится ведение боя - всё может поменяться с ног на голову. Точнее, чем "того же порядка, что в Star Control 2" сказать не представляется возможным. Но точно не будет миниатюрной планеты в центре Улыбка

добавлено спустя 6 минут:
С биссектрисой получилось только хуже - промахивается почти так же но потом даже не пытается вернуться, т.к. при тупых углах получаются безсмысленные величины.

С proportional navigation получилось совсем смешно. Ракеты как будто пытаются напугать корабль, подлетая поближе и отскакивая в последний момент Улыбка Но это явно присутствует ошибка в расчётах.

Последний раз редактировалось: Aerton (22:14 15-03-2011), всего редактировалось 1 раз
    Добавлено: 22:14 15-03-2011   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Aerton :
HPilot :
Кстати ракеты в атмосфере сигарообразные для того, чтобы было наименьшее сопротивление воздуху и бОльшая курсовая устойчивость. А в космосе это не критично, поэтому можно строить хоть шар
Совершенно верно

Совершенно неверно.
Чем больше расстояние, между центром масс и опорной точкой (двигателем), тем устойчивее в полёте ракета. К вакууму это относится в первую очередь. А хуже шара для ракеты вообще что-то трудно придумать Улыбка

(натурный эксперимент: Берёте длинную линейку, ставите её на кончик пальца и пытаетесь удержать в равновесии. Чем длинее линейка (со шваброй вообще красота), тем устойчиее "конструкция")
_________________
У меня бисера не доxеpа.
    Добавлено: 02:56 16-03-2011   
Канал Игры Мечты: «Самонаводящаяся ракета в космосе»
На страницу: 1, 2, 3, 4, 5  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Я вообще мудрый чувак! (автопортрет Salamon'a)

  » Самонаводящаяся ракета в космосе | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18