kOS - програмируемый автопилот

  1. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    Jenyaza01 писал:
    SHIP:FACING:FOREVECTOR R(90,0,0) - это "вверх" у крафта?
    Нед! Это сумма векторов направления крафта и вертикального вектора торчащего из поверхности, потому что SHIP:FACING привязан к фрейму планеты, а не фрейму самого шипа (Это очевидно ). Попробуй SHIP:FACING:FOREVECTOR - R(90,0,0), это даст вектор разницы между направлением шипа и вертикалью, тебе же вроде это надо?
    Ну или я знатно гоню ))

    SHIP:FACING:PITCH и SHIP:FACING:YAW дадут тебе отклонение вектора впереда крафта в градусах
    Никогда так не пробовал :)

    Freze писал:
    Ну да, я в свое время так и делал. Строил вектора "вверх" и "влево" от SHIP:FACING:FOREVECTOR.
    Есть же стандартные SHIP:FACING:TOPVECTOR и SHIP:FACING:STARVECTOR (это вправо)
    Сообщение отредактировал Lynx 25 августа 2016 - 01:44
    25 августа 2016 - 01:48 / #461
  2. Оффлайн

    Freze

    Хорошие люди

    Сообщений: 79

    Lynx,
    Там ошибка небольшая, нельзя складывать вектор и направление. Надо взять направление крафта, повернуть его вверх на 90 и от этого взять вектор.
    set vec to (SHIP:FACING R(90,0,0)):forevector.
    Сообщение отредактировал Freze 25 августа 2016 - 01:51

    pikabu

    25 августа 2016 - 01:50 / #462
  3. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    И вообще:
    Direction Added to Direction Dir1 Dir2 - This operator is less reliable because its exact behavior depends on
    the order of operations of the UnityEngine’s X Y and Z axis rotations,
    and it can result in gimbal lock. It’s supposed to perform a Euler
    rotation of one direction by another, but it’s preferred to use Dir*Dir
    instead, as that doesn’t experience gimbal lock, and does not require
    that you know the exact transformation order of Unity.


    Freze,
    а SHIP:FACING же тоже направление, а не вектор
    25 августа 2016 - 01:56 / #463
  4. Оффлайн

    Jenyaza01

    Хорошие люди

    Сообщений: 363

    [/url][url=/user/Lynx/]Lynx, можно гнать, я должен понять.
    Сейчас попробую 
    (SHIP:FACING R(90,0,0)):forevector.  (никакая часть не реагирует на roll, не походит)
    SHIP:FACING:TOPVECTOR (ролл замечает, правда не в формате влево/вправо, а в какую сторону мира => надо всегда знать куда смотрю)
    SHIP:FACING:STARVECTOR  (примерно то же, но Y, похоже, позволяет определить направление взгляда)
    Freze, не совсем для приземления. Для зависания внешний вид содран с "Аватара", функционал тоже (2х2 винты независимо наклоняемые, независимая тяга каждого), теперь нужен автопилот выравнивания, а то, как оказалось, там не всё так просто, как в фильме, стабилизация уходит улетает на раз-два. 
    Для приземления можно использовать его же, с целевой вертикалкой -2 м/с, например, для взлёта 2м/с. Когда оно будет стабильно выравниваться, будет формула аккуратной посадки. Но формула - аналитическая, не вектор, с ней проблем не будет.

    А вот и ответ. Почему я ещё неделю назад не написал в посиковике так...

    set currentPitch to 90 - vectorangle(up:vector,ship:facing:forevector).
    set currentRoll to 90 - vectorangle(up:vector,ship:facing:starvector).


    Всем, кто пытался помочь помогал - это бессмысленно спасибо большое
    Сообщение отредактировал Jenyaza01 25 августа 2016 - 15:13

    [ SmallTweaks ] [ WaterTanks ] [ 3D Primitives ] [ Kerbin 2.5x (тесты) ] [ KSP Rebalance (в разработке) ]

    25 августа 2016 - 12:10 / #464
  5. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    Jenyaza01 писал:
    (SHIP:FACING R(90,0,0)):forevector. (никакая часть не реагирует на roll, не походит)SHIP:FACING:TOPVECTOR (ролл замечает, правда не в формате влево/вправо, а в какую сторону мира => надо всегда знать куда смотрю)
    SHIP:FACING:STARVECTOR (примерно то же, но Y, похоже, позволяет определить направление взгляда)
    Они втроем образуют тройку векторов, они смотрят вперед, вверх и вправо соответственно.
    25 августа 2016 - 19:21 / #465
  6. Оффлайн

    Jenyaza01

    Хорошие люди

    Сообщений: 363

    Lynx, хм, а ведь реально, "симптомы" у каждого соответствующие...
    теперь мой кусок хлама аппарат шатает, крутит (из-за меня, лопасти поворачиваю), но он всё равно не падает и пытается выровняться... ну, на критических углах высоту он теряет, но как он кружится вокруг стоек шасси...

    [ SmallTweaks ] [ WaterTanks ] [ 3D Primitives ] [ Kerbin 2.5x (тесты) ] [ KSP Rebalance (в разработке) ]

    25 августа 2016 - 22:44 / #466
  7. Оффлайн

    Freze

    Хорошие люди

    Сообщений: 79

    Jenyaza01, а если на спину перевернуться, что происходит?

    pikabu

    25 августа 2016 - 22:55 / #467
  8. Оффлайн

    Jenyaza01

    Хорошие люди

    Сообщений: 363

    Freze, снова околонулевой будет. У него предел - - 90*, и он дальше уменьшается обратно.

    [ SmallTweaks ] [ WaterTanks ] [ 3D Primitives ] [ Kerbin 2.5x (тесты) ] [ KSP Rebalance (в разработке) ]

    26 августа 2016 - 09:06 / #468
  9. Оффлайн

    Iavasdemsul

    Посетители

    Сообщений: 1

    "Универсализировал" скрипт посадки. Теперь можно пробовать садиться на любых телах=) В принципе, для разных планет никаких значений менять в скрипте не надо, но если очень хочется, то можно.
    Пробуем, проверяем, делимся мудростью и впечатлениями. Спасибо.

    скачать xxx.ks
    Сообщение отредактировал Iavasdemsul 25 сентября 2016 - 12:57
    25 сентября 2016 - 12:56 / #469
  10. Оффлайн

    JlObCTEP

    Посетители

    Сообщений: 407

    А можно ли в kos е сделать управление ротатронами из IR и управляющими поверхностями?(элероны всякие)
    10 октября 2016 - 20:29 / #470
  11. Оффлайн

    angelbezdny

    Посетители

    Сообщений: 39

    JlObCTEP,
    Вроде бы давно собирались прикрутить роботов к КОСу, но сделали ли незнаю-самому очень интересно
    10 октября 2016 - 21:29 / #471
  12. Оффлайн

    JlObCTEP

    Посетители

    Сообщений: 407

    А как быть с поверхностями ? Я хотеть такое запилить - мы проверяем, совпадает ли направление носа моего аппарата с вертикалью, типа pitch и yaw по 90 градусов, и если нет то дергаем соответствующий элерон до тех пор, пока не совпадет. Это мне для винтового взлетного модуля, сделать что то типа автомата перекоса винта, только на элеронах (в принципе - отклонился в одну сторону, дергаем элерон раз в 1/T секунд, где Т - период вращения, он же speed в ротатроне, и тогда он будет создавать момент только в 1 сторону)
    10 октября 2016 - 22:00 / #472
  13. Оффлайн

    barulin.ya

    Посетители

    Сообщений: 3

    Приветствую всех! Не поможете новичку? Как мне активировать экшн групп на кОС?
    3 ноября 2016 - 19:12 / #473
  14. Оффлайн

    Rsa

    Посетители

    Сообщений: 649

    4 ноября 2016 - 09:41 / #474
  15. Оффлайн

    barulin.ya

    Посетители

    Сообщений: 3

    Такая фигня:
    Пишу в блокнотике программу:
    Wait 3.
    lock steering to retrograde.
    на ретроград не ориентируется, а если на прямую в терминале пишу этот lock steering to retrograde, то ориентируется. Почему?
    4 ноября 2016 - 22:30 / #475
  16. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    barulin.ya,
    а ты запускаешь программу которую пишешь в блокноте?
    Начинай с простого - писать, считывать, считывать и выводить инфу.
    4 ноября 2016 - 22:49 / #476
  17. Оффлайн

    barulin.ya

    Посетители

    Сообщений: 3

    TomAnderson,это я уже умею, и разобрался в чем проблема: косу тупо не нравилось то что команда сориентироваться была самой последней командой в программе (хз почему). Пишу в блокноте через Notepade .
    5 ноября 2016 - 00:33 / #477
  18. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    barulin.ya,
    После конца программы кос сбрасывает все значения.
    Там есть отдельные команды для сохранения закрепления после конца программы.
    https://ksp-kos.github.io/KOS/commands/flight/pilot.html?highlight=pilot
    тут смотри
    5 ноября 2016 - 15:47 / #478
  19. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    Ситуация -  у кокпитов есть 2 модуля науки с одинаковыми названиями "ModuleScienceExperiment" (доклад экипажа и анализ телеметрии).
    Вопрос как получить доступ ко второму модулю?
    Если сделать:
    SET M TO P:GETMODULE("ModuleScienceExperiment").
    То он примет соответственно первый попавшийся ModuleScienceExperiment.
    Как можно получить доступ ко второму модулю с таким же именем?
    15 ноября 2016 - 14:11 / #479
  20. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    TomAnderson,
    там как-то можно псевдонимы назначать, посмотри в вики это было.
    15 ноября 2016 - 19:23 / #480

Статистика форума, пользователей онлайн: 1 (за последние 10 минут)

Басила

Администраторы | Модераторы | Хорошие люди | Посетители | Новичок

Создано тем1933 Всего сообщений158043 Пользователей19229 Новый участникgecko
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите Ctrl+Alt