Автор: Iavasdemsul Категория: Kerbal Space Program » Гайды

kOS-скрипт посадочного автопилота

Добрых шестичасовых суток!

Хочу представить вам свои наработки по созданию автоматического пилотирования на основе скриптов kOS. Сегодня речь пойдет об автоматической посадке на Кербин …постойте! – скажут некоторые – во-первых, в чем сложности посадки на Кербин?! – есть же парашюты; а во-вторых, есть MechJeb. Правильно, ни то и ни другое не мешает нам расслабиться и наслаждаться жизнью, т.е. полетом. Но мы были бы не мы, если бы не ставили перед собой дополнительных задач, которые помогают нам смотреть шире на обыденные для нас вещи.
Итак, автоматическая посадка на Кербин без парашютов и MechJeb’а, имея в наличии всего лишь kOS-процессор на борту и скрипт посадки “landing.ks”.




Теперь от теории к практике.



P. S. Подводные камни.
Как всегда, не все так прекрасно, как очень хочется. Нельзя просто так запустить скрипт на любом аппарате, удобном для посадки на Кербине, или еще где. Необходимо учесть два параметра, разных для каждого аппарата.
1. Измерение высоты полета над поверхностью не учитывают высоту самого крафта, в следствии чего расчетная финальная высота в реальности оказывается ниже уровня земли, и мы получаем не очень мягкую посадку.
2. Инертность работы скрипта ведет к зависанию аппаратов с двигателями с большим TWR над поверхностью земли, т.к. импульсы тяги больше, чем нужно, и скрипт вылетает из-за потери ретрогрейда.
Если в решении второй проблемы я ввел в скрипт программный лимит тяги (эмпирически выведен лимит в TWR=2), то для решения первой приходится вводить данные о высоте крафта в скрипт, а точнее высоту расположения командного модуля относительно самой нижней точки крафта.

Пока все. Спасибо за внимание.

Скрипт landing.ks

landing.zip [1,93 Kb] (cкачиваний: 315)

- + +98
У Вас НЕТ прав на выставление оценки для этой новости.
Для выставлени оценки необходимо пройти регистрацию на сайте.
Если Вы уже зарегистрировались, то войдите на сайт.
  1. 74
    Это Басила Басила - #10 0
    +8
    Плюсую нечитая яростно)
    зы: еще больше плюсую, за теорию, и за практику и вообще за приятную и понятную подачу. Исполать тебе) Лис, твой выход)
    »
    Написано:
    Группа: Модераторы, Публ/Комм: 3/1 047 [Онлайн]
    Даннинг с Крюгером погубят человечество.
    игривые картинки
    "Сложные проблемы всегда имеют простые, легкие для понимания неправильные решения."
     
  2. Выкл.
    Это valkerman valkerman - #20 0
    +8
    Товарищ, ты офигенен. Я из-за лени и недостатка времени эту затею бросил. Теперь допилю - ты всю основную работу проделал.
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/24
     
  3. 0
    Это Tesla254 Tesla254 - #30 0
    +7
    Вот решение первой проблемы. Модуль покажет реальную высоту до поверхности.
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/45
     
    1. 3
      Это Iavasdemsul Iavasdemsul - #40 0
      0
      Отличная идея. Спасибо.
      »
      Написано:
      Группа: Посетители, Публ/Комм: 2/23
       
  4. Выкл.
    Это Reistlyn Reistlyn - #50 0
    +2
    Перенес в "Гайды" (тут это более к месту)
    »
    Написано:
    Группа: Модераторы, Публ/Комм: 41/330
     
  5. 0
    Это DimasusFX DimasusFX - #60 0
    0
    Спасибо за очень полезный скрипт, плюсую!
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/3
    Совы не то, чем кажутся...
     
  6. 3
    Это Пряморукий пилот Пряморукий пилот - #70 0
    0
    Никаких скриптов; только вручную - только хардкор!
    »
    Написано:
    Группа: Посетители, Публ/Комм: 5/58
    Art is distillation of experience. - Daniel Wallace
     
    1. 53
      Это Lynx Lynx - #80 0
      +4
      Этот скрипт написан вручную. Вот это - хардкор.
      »
      Написано:
      Группа: Хорошие котейки, Публ/Комм: 0/511
       
      1. 3
        Это Пряморукий пилот Пряморукий пилот - #90 0
        0
        Хардкорно было, когда программы двоичным кодом для ламповых и транзисторных компьютеров писали. А этот скрипт был бы гораздо полезнее для посадки на безатмосферные планеты и луны.
        UPD: Ладно, все равно поставил плюс за труды; применение этому скрипту , при желании, можно найти. (Хотя лично я предпочитаю геморройный путь размещать ретрансляторы везде, где только можно, для предотвращения казуса потери связи.)
        »
        Написано:
        Группа: Посетители, Публ/Комм: 5/58
        Art is distillation of experience. - Daniel Wallace
         
  7. 2
    Это sahsa_sahencie sahsa_sahencie - #100 0
    0
    Цитата: Пряморукий пилот
    Никаких скриптов; только вручную - только хардкор!

    Вручную нельзя посадить беспилотный аппарат в RT при потере связи.
    А скрипт и вправду полезен.
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/34
    Радуга достраивает орбиту!
     
  8. 7
    Это lis_vamp lis_vamp - #110 0
    +3
    несколько подсказок.. высоту можно считать не только alt:radar.
    а вот такой конструкцией ship:geoposition:TERRAINHEIGHT. собственно получает ship:Altitude - ship:geoposition:TERRAINHEIGHT.
    по тяге можно тоже написать ограничитель ТВР..
    остаётся один вопрос, в горах сядет?
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/28
     
    1. 3
      Это Iavasdemsul Iavasdemsul - #120 0
      0
      Только ship:geoposition:terrainheight выдает странные значения, и не всегда

      ship:altitude - ship:geoposition:terrainheight = alt:radar

      особенно при наклонном падении. Работает лишь при отвесном спуске.
      Про ТВР я написал, что ограничил программно.
      А проблему с измерением высоты решили модом LaserDist.
      Прицепил лазер на "пятую точку" и добавил:

      set laser_module to ship:modulesnamed("laserdistmodule")[0].
      if not laser_module:getfield("enabled") {
      laser_module:setfield("enabled",true).
      }
      lock curr_h to laser_module:GETFIELD("Distance") * sin(vang(up:vector,ship:facing:topvector)).
      //
      set h to 0.1. //!!!!!!!Высота LaserDist модуля корабля.
      //


      Теперь вычисляется не alt:radar, а curr_h:



      Остается разобраться со спуском вдоль склона, когда alt:radar < curr_h.
      »
      Написано:
      Группа: Посетители, Публ/Комм: 2/23
       
  9. 0
    Это MegaLoogin MegaLoogin - #130 0
    0
    Что за язык программирования в скрипте, и можно по подробнее об этом моде ?
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/4
     
    1. 0
      Это Tesla254 Tesla254 - #140 0
      +4
      »
      Написано:
      Группа: Посетители, Публ/Комм: 0/45
       
      1. 0
        Это MegaLoogin MegaLoogin - #150 0
        0
        Огромное спасибо !
        »
        Написано:
        Группа: Посетители, Публ/Комм: 0/4
         
  10. 1
    Это Gonzales_Gonzo Gonzales_Gonzo - #160 0
    +2
    Крутотень, почти как здесь
    https://www.youtube.com/watch?v=q1xSKBVOU6w

    И исходники там же есть, можно сравнить подходы авторов - https://github.com/jb10181/KOS_Suicide_Burn
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/99
     
    1. 3
      Это Iavasdemsul Iavasdemsul - #170 0
      0
      Спасибо, интересный алгоритм у JB.
      В теории различий нет, та же формула, только значения конечной скорости и высоты у него заданы нулевыми.
      Сам же скрипт разбивает полет на три части, где дает максимальную тягу при снижении ниже "критической" высоты, а потом при достижении нужной скорости в -6 м/с, просто регулирует тягу +/- 10% в зависимости от девиации вертикальной скорости.
      »
      Написано:
      Группа: Посетители, Публ/Комм: 2/23
       
  11. 7
    Это lis_vamp lis_vamp - #180 0
    +1
    Направление/наклон корабля доверим встроенному SAS

    если тебе нужен просто ретрогрэйд, то так и фиксить его "lock steering to srfretrograde."
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/28
     
    1. 3
      Это Iavasdemsul Iavasdemsul - #190 0
      +1
      Ага, уже разобрался с векторами и направлениями, последняя редакция скрипта здесь в теме на форуме:
      kOS - програмируемый автопилот
      »
      Написано:
      Группа: Посетители, Публ/Комм: 2/23
       
  12. 1
    Это ux3sty ux3sty - #200 0
    +3
    Я лишь посоветую использовать вместо/вместе сырой математики ПИД регуляторы, можно будет исправить некоторые проблемы, если правильно подобрать коэффициенты.
    »
    Написано:
    Группа: Посетители, Публ/Комм: 5/114
     
  13. 0
    Это beglum beglum - #210 0
    0
    Господы, помогите пожалуйста.
    Скачал расширение с оф. сайта модов для KSP (на курсе, как я понял).
    И само окно, после установки модуля корабля, не открывается. И способа открыть его я не нашел.
    »
    Написано:
    Группа: Посетители, Публ/Комм: 0/1
     
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Чат
  • Опрос
  • Стримы
    Хотите ли Вы сотрудничества между проектами SpaceDock.ru и Ангар Джеба?
Последние комментарии
  • Kuzminattor Kuzminattor написал в
    Проект "Покорение" (всего 8 комм.)
    1) Я вроде как никогда не говорил, что я умный
    2) Атмосферное торможение я применял и 4 года назад. А для расчета экономии после этого маневра (в реальной жизни) нужно обратиться к гидрогазоаэродинамике, а это целый курсач получиться. И что-то мне подсказывает что в КСП атмосфера упрощена, но у меня нет времени в этом разбираться, я же не только в игрушки дома играю....
    3) Дураки есть везде, с этим особо ничего не поделаешь. Вот и получаем, что вешают вверх ногами, ломают или гнуть другие элементы.
    4) Модель вроде как освоена, но тебе, конечно, виднее. И если что ракетостроение и космические перелеты это немного разные специальности, как собственно и спутники и тепловые щиты и т.д.
    5) Я бы предложил закончить этот бесполезный разговор, он нас ни к чему не приведет
  • Marschig Marschig написал в
    Rocket Science! RS-125, -250, ... (всего 13 комм.)
    Маленькая деталь: оно взлетает с уровня моря, а не с высочайшей точки Ив :)
    Не говоря уже о количестве мест и прочего оборудования.
  • Slv Slv написал в
    Проект "Покорение" (всего 8 комм.)
    Сорри, но ты разбудил мою зверушку -- тролля. :-))) Давай в таком случае пройдемся по пунктам?

    Цитата: Kuzminattor
    Боюсь тебя удивить, но и про карту я знаю.(хотя свою первую ракету на Дюну и обратно я построил "на глаз")
    Если ты внимательно читал букавы (а хотя кому это надо?), то, возможно, обратил внимание, что я дважды применил атмосферное торможение, а это немного не расчетный вариант экономии топлива, я просто взял немного меньше необходимого.И Если ты умеешь считать сколько дельты будет сэкономлено после такого маневра, то буду рад узнать.

    Короче, если для того чтоб начать применять торможение об атмосферу тебе надо 4 года и "инженеру ракетостроителю" после института? все еще нужна помощь в подсчете сэкономленной дельты, ты не такой умный как думаешь, это раз.


    Цитата: Kuzminattor
    Что касается ракетостроения и "продвинутых" инженеров, вот тут, конечно, извини, но я это воспринимаю как личное оскорбление. Ты очевидно не разбираешься как и что делается в ракетно-космической технике, никто никогда не будет строить ракету в одно лицо, этим занимается очень большая команда на разных производственных площадках, а на космодроме/ военной части уже собирают как пазл по готовым чертежам, так что то что мы видим в КСП можно назвать сказкой.

    Да, но кое какие товарищи (и не уверяй меня что это был простой мимокрокодил) умудряются забить деталь вверх ногами с помощью молотка или погнуть какой-нибудь штифт... Я не говорю что это сделал ИМЕННО ТЫ, но кто то все же сделал?


    Цитата: Kuzminattor
    Так же КСП довольно поверхностно отражает все процессы протекающие во время полета РН, но для людей не посвященных этого достаточно.
    Если даже настолько упрощенная модель полета ракеты не освоена "инженером ракетостроителем" за 4 года в достаточном объеме, то какие реальные ракеты он сможет построить?

    PS и все же минус я тебе за это творение не вкатил -- сгонять на Дюну это все же достаточно не простая задача, хотя и плюс тоже не стал ставить.
  • Kuzminattor Kuzminattor написал в
    Проект "Покорение" (всего 8 комм.)
    Боюсь тебя удивить, но и про карту я знаю.(хотя свою первую ракету на Дюну и обратно я построил "на глаз")
    Если ты внимательно читал букавы (а хотя кому это надо?), то, возможно, обратил внимание, что я дважды применил атмосферное торможение, а это немного не расчетный вариант экономии топлива, я просто взял немного меньше необходимого.И Если ты умеешь считать сколько дельты будет сэкономлено после такого маневра, то буду рад узнать.

    Что касается ракетостроения и "продвинутых" инженеров, вот тут, конечно, извини, но я это воспринимаю как личное оскорбление. Ты очевидно не разбираешься как и что делается в ракетно-космической технике, никто никогда не будет строить ракету в одно лицо, этим занимается очень большая команда на разных производственных площадках, а на космодроме/ военной части уже собирают как пазл по готовым чертежам, так что то что мы видим в КСП можно назвать сказкой.
    Так же КСП довольно поверхностно отражает все процессы протекающие во время полета РН, но для людей не посвященных этого достаточно.
  • Elektrichker Elektrichker написал в
    ЖД "Мексиканский тушкан" (всего 1 комм.)
    Попробуй рельсотрон теперь собрать.) А вообще можно такое же, но с практическим применением? Можно на космической базе систему перемещения всякой дичи сделать вроде стыкуемых модулей, но оно же не долетит даже до ноо.
  • Freze Freze написал в
    Космолет + Kerbal Operating Sy ... (всего 17 комм.)
    Тут немножко по-другому делается.
    1 Четко осознать возможности крафта.
    2 Наметить условия, попав в которые мы благополучно приземлимся на ровную поверхность вокруг КСЦ. Например: мы на высоте 100м и скорости 120м\\с+-10м\\с в 3.5км от центра ксц. С такими вводными мы запускаем скрипт посадки.
    3 Прикинуть участки снижения для достижения благоприятных условий посадки. Например если мы снизились до 20км в 100км от КСЦ прикатить снижение и лететь на скорости 1500. На дистанции 50км снизится до какой-то высоты и какрй-то скорости... итп
    Под это дело, скорее всего придется конструкцию доработать(Рассчитать запас топлива для полета в атмосфере, установить аэротормоз, тормозной парашют итп ).
Все комментарии
Обновления на форуме
200 Всего
2 Польз.
198 Гостей
Яндекс, Google, Коловратка, Marschig
Онлайн список
Новостей на страницу:
Наверх