KerbalSpace.ru моды, гайды, детали, ракеты, самолеты для Kerbal Space Program

Добро пожаловать, войдите или зарегистрируйтесь
Забыли?
Закрыть
    1. »
    2. »
    3. »
    4. kOS - програмируемый автопилот - 36 страница

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

2013-10-18T10:14:03+02:00 2017-08-14T22:48:23+02:00
Стажер
  1. Офлайн
  2. Стримеры
  3. 1349 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 1 | сообщение № 1 отправлено 10:14, 18.10.2013
Добро пожаловать в отдел программирования и автоматизации исследовательского центра Кербала!! Мы всегда рады новым огурлицам!! Здесь вы найдете инструкции по инициализации и пользованию средой kOS - scriptable autopilot system! Кербал нуждается в новых программистах! Все свои идеи которые мы присвоим себе можешь оставлять здесь. Мы же в свою очередь ответим на все твои вопросы, и поможем разобраться в столь ответственном ремесле, как написание программ для покорения космоса нашими бравыми кербанафтами! Кракен фхтагн Кракен р'лайх фхтагн.
С уважением, диспетчер центра - Finn.

В ближайшем времени появится несколько частей русских гайдов по онному во избежанию лишних и совсем глупых вопросов.
Ссылки на гайды:
Введения в kOS [Гайд по kOS часть 1]
Изучаем kOS - Циклы [Гайд по kOS часть 2]
Изучаем kOS - Условия Мат.Логика и AG [Гайд по kOS часть 3]

Ознакомиться с оригинальной переведенной инструкцией(Инструкция по старой версии, все еще актуальна большей частью) вы можете по ссылке ниже
Переведенный английский гайд

Оригинальная инструкция на английском языке
Оригинальная инструкция последней версии(ENG)



Последняя версия мода - [1.0.5] kOS Scriptable Autopilot System v0.18.2 2015/11/26
скачать можно тут
Скачать kOS последней версии



Внимание! Для работоспособности мода нужен ModulManager, однако обычно разработчик kOS вставляет его в архив со своим модом. В любом случае убедитесь что у вас в GameData папке файл ModulManager в наличии.

Дополнительные моды:
- Большое кол-во Action Groups-ов для тех кому мало десяти стандартных! Совместим с kOS версией выше 15.
За предоставление мода спасибо -> Lynx
Action Groups Extended: 250 Action Groups

- Проп монитор(кОС встроенный в интерфейс кабины) для кОС. Работоспособность - не проверена. Писался для 15 версии. (Сейчас 18). Если кто проверит, отпишитесь.
kOS Prop Monitor

Последний раз редактировал Finn 16:07, 20.12.2015

------------------------------------------
Летать и строить. Строить и летать.
Алчная гномка
  1. Офлайн
  2. Хорошие люди
  3. 294 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 526 отправлено 22:29, 18.06.2017
Я пока отложил поиск темной силы и решил по изучать газодинамику. 

График зависимости Cd*S от M
Спойлер [+]


А это найдено в интернете
Спойлер [+]


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

Но чтоб дальше более подробно изучать сопротивление. Нужны точные и большое количество замеров, чему препятствует "темная сила".
Скорее всего буду играться с версиями КСП. Ведь до сих пор не подтвердилось, что данная багуля не только у меня.


------------------------------------------
Основы космического полета
Формула Циолковского
Перелет между компланарными круговыми орбитами
Трех-импульсный перелет между круговыми орбитами
Местный Джебедай
  1. Офлайн
  2. Гуру по KOS'у
  3. 57 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 527 отправлено 23:31, 18.06.2017
Блочок из моего лога.
Круговая орбита 86,75 км:
Цитата:?
            Time             |dSPV/dt|                          |dV|                   |dV/dt|                   g = body:mu/body:position:sqrmagnitude
69032.0658094217  0.000291570900572435  0.13654930868926  6.82746543307205  7.48867706842426
69032.0858094217  0.000291570900615457  0.136549302238889  6.8274651105535  7.48867706669843
69032.1058094217  0.000291570900589577  0.136549291920482  6.82746459463316  7.48867706497171
69032.1258094217  0.000291570900385054  0.136549290468229  6.82746452202052  7.48867706324411


Круговая орбита 115 км:
Цитата:
            Time         |dSPV/dt|        |dV|          |dV/dt|         g = body:mu/body:position:sqrmagnitude
69064.9458094284  0  0.13816226078682  6.90811303793364  6.90811299989546
69064.9658094284  0  0.138162248426372  6.90811241991125  6.90811299989539
69064.9858094284  0  0.138162251831491  6.90811259016718  6.90811299989513
69065.0058094284  0  0.138162253048833  6.90811265103429  6.90811299989509
?


dSPV/dt - это производная по времени от вектора нулевого небесного меридиана (SolarPrimeVector). Он закреплён на скайбоксе, т.е. неподвижен в пространстве.
В первой таблице видим, что dSPV/dt имеет ненулевое значение, значит, вращается сама система координат. Т.к. SPV имеет единичную длину, число равно угловой скорости вращения omega в рад/с, период равен 2*pi/omega = 21549.49 с, что соответствует звёздным суткам Кербина.

Вероятно, на высоте 100 км игра переключается с планетарной вращающейся СО на космическую инерциальную.
Продолжив рассуждения, выводим, что лишние 0,66 м/с - это кориолисово ускорение, равное векторному произведению [omega x V].
Если поменять наклонение орбиты с 0 на 180 градусов, как раз-таки ускорение получается в противоположную сторону.
Двойки в силе Кориолиса не хватает, т.к. орбитальные скорости даны в локально-инерциальной системе отсчёта. Для скорости относительно поверхности будет полноценное кориолисово ускорение 2[omega x V].


------------------------------------------
Мои kOS скрипты: https://github.com/pand5461/kOS
Местный Джебедай
  1. Офлайн
  2. Гуру по KOS'у
  3. 57 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 528 отправлено 10:18, 19.06.2017
На викии хорошо объяснено про вращение системы отсчёта, как мне кажется.


------------------------------------------
Мои kOS скрипты: https://github.com/pand5461/kOS
Начинающий
  1. Офлайн
  2. Посетители
  3. 3 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 529 отправлено 22:48, 08.08.2017
Возник вопрос: как в kOS регулировать ширину раскрытия А.Э.Р.О.Т.О.Р.М.О.За? или (подозреваю, что из той-же оперы) - величину раскрытия элеронов.
Спасибо.
Местный Джебедай
  1. Офлайн
  2. Гуру по KOS'у
  3. 57 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 530 отправлено 23:12, 08.08.2017
Soul,
делается через прямой доступ к модулям.
У аэротормоза за степень раскрытия отвечает ModuleAeroSurface, у винглетов SyncModuleControlSurface, у элеронов может быть что-то ещё.
Посмотреть это можно в файле .craft, найти нужно примерно такой блок (пример для аэротормоза):
Цитата:?
    MODULE
    {
        name = ModuleAeroSurface
        isEnabled = True
        aeroAuthorityLimiter = 100
        mirrorDeploy = False
        usesMirrorDeploy = False
        ignorePitch = True
        ignoreYaw = True
        ignoreRoll = True
        deploy = False
        deployInvert = False
        partDeployInvert = False
        authorityLimiter = 100
        stagingEnabled = True
        EVENTS
        {
        }
        ACTIONS
        {
            ActionToggleBrakes
            {
                actionGroup = Brakes
            }
            ActionToggle
            {
                actionGroup = None
                active = False
            }
            ActionExtend
            {
                actionGroup = None
            }
            ActionRetract
            {
                actionGroup = None
            }
        }
        UPGRADESAPPLIED
        {
        }
    }



Тут видим, что есть поля aeroAuthorityLimiter и authorityLimiter. По-видимому, первое отвечает за отклонение в режиме тормоза, второе - в режиме управляющей поверхности.
Число в этом поле изменяется стандартным образом через part:getmodule(modulename):setfield("field",value). В примере с аэротормозом:
Цитата:
set airbrakes to ship:partsnamed["airbrake1"]. // теперь в airbrakes хранится список всех аэротормозов на корабле
for abrake in airbrakes {
  abrake:getmodule["ModuleAeroSurface"]:setfield("aeroAuthorityLimiter", 30). // степень открытия тормоза установлена на 30 процентов
}
?

Чтобы не запоминать имя модуля, можно сделать поиск по имени поля:
Цитата:
// находит все управляющие поверхности и устанавливает отклонение в 30%
for p in ship:parts {
  for m in p:modules {
    if m:hasfield("authorityLimiter") {
      m:setfield("authorityLimiter", 30).
    }
  }
}
?


------------------------------------------
Мои kOS скрипты: https://github.com/pand5461/kOS
Начинающий
  1. Офлайн
  2. Посетители
  3. 3 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 531 отправлено 00:15, 09.08.2017
Pand5461 Спасибо ещё раз! :-)

Ещё на редите прочел:
Задача: необходимо описать функционирование аэротормозов в трёх режимах - 1) режим старта, поверхности втянуты, зафиксированы; 2) режим входа в атмосферу, поверхности активированы, регулируют тангаж и рысканье; 3) режим падения, поверхности зафиксированы в выдвинутом положении.

[code]function setAirbrakeControlSurfaces {  parameter value is false. // default is off
local ab is ship:partsnamed("airbrake1").
for p in ab {
local m is p:getmodule("moduleaerosurface").
m:setfield("pitch", value).
m:setfield("yaw", value).
}
}
// Режим 1:
brakes off.
setAirbrakeControlSurfaces(false).
// Режим 2:
brakes off.
setAirbrakeControlSurfaces(true).
// Режим 3:
brakes on.
setAirbrakeControlSurfaces(false).
[/code]
Источник

Последний раз редактировал Soul 23:59, 08.08.2017
Начинающий
  1. Офлайн
  2. Посетители
  3. 3 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 532 отправлено 16:35, 09.08.2017
Стоит отметить, что локализованных версиях (проверялось на 1.3.0) элементы структуры управления тоже локализованы.
Прикрепленная картинка
Из-за этого при обращении к таким элементам возможны ошибки, т.к. юникодные символы в скрипте обгрызаются до первого байта, и локализованые имена полей необратимо искажаются.

Последний раз редактировал Soul 16:40, 09.08.2017
Начинающий
  1. Офлайн
  2. Посетители
  3. 6 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 533 отправлено 08:09, 11.08.2017
нужна помощь
в терминале КОС не могу вставить код. В самой игре вставить текст без проблем получается. Например переименовать деталь.
Но в терминале нет реакции на комбинацию Ctrl+C(копировать) Ctrl+X(вырезать) Ctrl + V (вставить)
Как это лечится?
Местный Джебедай
  1. Офлайн
  2. Гуру по KOS'у
  3. 57 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 534 отправлено 18:01, 11.08.2017
ufaboy,
возможно, переключением раскладки клавиатуры на английскую.
В терминале я, кажется, даже и не пробовал копировать/вставлять. В редакторе точно Ctrl+C и Ctrl+V на английской раскладке работают (в KSP 1.2.2 и Linux Mint).
В крайнем случае, можно создать файл с программой (edit "program.ks".), вставить нужный текст во встроенный редактор и запустить файл после сохранения (run program.).


------------------------------------------
Мои kOS скрипты: https://github.com/pand5461/kOS
Экспериментатор
  1. Офлайн
  2. Посетители
  3. 2028 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 535 отправлено 14:36, 14.08.2017
ufaboy! Я в Windows всегда использую для копирования Ctrl+Ins а для вставки Shift+Ins, и никакими Ctrl+C и Ctrl+V сроду никогда не пользовался. Насколько я знаю, Ctrl+C и Ctrl+V ввел мелкософт в своём "Microsoft Office", а до этого было именно Ctrl+Ins и Shift+Ins. Хотя, могу и ошибаться, давно это было.
Экспериментатор
  1. Офлайн
  2. Хорошие котейки
  3. 2718 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 536 отправлено 19:01, 14.08.2017
Наблюдатель,
Ctrl+C и Ctrl+V удобнее, потому что нажимаются одной рукой (причем не той в которой мышка ;)
Экспериментатор
  1. Офлайн
  2. Посетители
  3. 2028 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 537 отправлено 22:48, 14.08.2017
Lynx! Ну, это кому как. Кто как привык. Я например, привык ещё в ДОС-е к Norton Commander-у и терпеть не могу "Проводник", мне он неудобен, поэтому, использую "Unreal Commander" или любой другой подобный. ;)
 
Перейти
Найти

Доступ закрыт.

  1. Вам запрещено отвечать в темах данного форума.
Наверх