kerbal.ruвики сборки «Оператор»
Оператор / Вики / Автоматика

kOS: основы

Бортовой компьютер kOS: как поставить процессор, открыть терминал, где лежат скрипты и из чего состоит первая программа.

kOS (Kerbal Operating System) — это настоящий бортовой компьютер на борту аппарата. Ты пишешь скрипт на собственном языке kOS, кладёшь его в архив, запускаешь на процессоре — и дальше аппарат летит сам, без твоих рук на клавиатуре. Для сборки «Оператор» это ключевой мод: сеть спутников и станции проще разворачивать одинаковыми повторяемыми запусками, чем каждый раз рулить вручную.

Ставим процессор

В сборке доступны четыре процессора:

  • CX-4181 Программируемая система управления — обычный «в линию», 1,25 м;
  • КомпоМакс Радиальный бескамерный — радиальный, со своей солнечной панелью, самый удобный для спутников;
  • KR-2042 b Программируемая система управления — плоский, с подсветкой;
  • KAL9000 Программируемая система управления — большой, с запасом памяти.

Процессор ест электричество, так что на спутник ставь его вместе с батареей и панелями — см. Энергетика и тепло. В меню детали (правый клик) есть пункты Активировать этот процессор, Питание вкл/выкл, Открыть окно (по событию) и Аварийное подавление — последний мгновенно возвращает ручное управление, если скрипт повёл себя не так.

Терминал и тома

Кнопка kOS на панели инструментов открывает окно терминала. У тебя два вида хранилищ (томов):

  • Архив (том 0) — общий на всю программу, физически это папка Ships/Script/ в каталоге игры. Файлы — обычный текст с расширением .ks, их удобно править внешним редактором.
  • Локальный том процессора (1) — память самой детали, ограниченного объёма. Архив доступен только пока есть связь с КЦ, локальный том — всегда. Поэтому боевые скрипты для дальних аппаратов копируют на борт заранее.

Полезные команды терминала:

SWITCH TO 0.            // перейти в архив
LIST FILES.             // что там лежит
COPYPATH("0:/ascent.ks", "1:/").   // скопировать скрипт на борт
RUNPATH("0:/ascent.ks").           // запустить

Из чего состоит скрипт

Базовый набор, которого хватает на 90% задач:

CLEARSCREEN.                       // очистить экран
PRINT "Поехали".                   // вывод в терминал
LOCK THROTTLE TO 1.                // тяга: 0..1
LOCK STEERING TO HEADING(90, 90).  // курс 90°, тангаж 90° (вертикально)
STAGE.                             // отделить ступень
WAIT 3.                            // пауза, секунды
WAIT UNTIL SHIP:ALTITUDE > 1000.   // пауза до условия
UNTIL SHIP:APOAPSIS > 80000 {      // цикл, пока условие ложно
  WAIT 0.1.
}

Разница между SET и LOCK принципиальна: SET x TO 5. присваивает значение один раз, а LOCK x TO ... создаёт выражение, которое пересчитывается каждый раз при обращении. Поэтому руль и тяга всегда идут через LOCK — иначе аппарат зафиксирует один старый угол.

Суффиксы

Данные о полёте берутся через двоеточие — это суффикс структуры: SHIP:ALTITUDE, SHIP:APOAPSIS, SHIP:VERTICALSPEED, SHIP:MASS, SHIP:AVAILABLETHRUST, SHIP:BODY:MU, SHIP:BODY:RADIUS, ETA:APOAPSIS, ALT:RADAR. Суффиксы можно сцеплять: SHIP:ORBIT:SEMIMAJORAXIS.

HEADING(азимут, тангаж) — направление: первый аргумент компасный курс (90 — на восток, по вращению Кербина), второй — угол над горизонтом (90 — вверх, 0 — по горизонту).

Отладка

Смотри на терминал: ошибки парсера показывают номер строки. Печатай состояние в фиксированную позицию, чтобы не засорять экран:

PRINT "Ap: " + ROUND(SHIP:APOAPSIS / 1000, 1) + " км   " AT (0, 3).

Правило одно: перед первым запуском нового скрипта делай быстрое сохранение. И проверяй скрипт на дешёвой ракете, а не на дорогом ретрансляторе для созвездия.

Почему скрипт «висит», ест кадры или не слушается руля, что означают сообщения парсера и как работать из внешнего редактора — отдельная статья: kOS: отладка и лимиты.

Про язык и перевод

Язык kOS у нас не переведён и переведён не будет — это код. Команды, ключевые слова, суффиксы, имена переменных, сообщения парсера остаются английскими: перевести их означало бы сломать совместимость со всеми существующими скриптами и документацией. А вот обёртка вокруг языка русская: меню деталей процессора, тултипы кнопки на панели, панель управления kOS, окно выбора шрифта и раздел kOS в настройках сложности.

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

Что можно спросить у корабля из скрипта — kOS: справочник по данным корабля. Готовые модули, где всё это уже собрано, — kOS: справочник библиотеки kerbal.ru.

Связанные статьи
kOS: готовые рецептыЧетыре рабочих скрипта kOS с разбором построчно: взлёт, циркуляризация, вывод спутника с заданным наклонением, посадка на Муну.kOS: отладка и лимитыПочему скрипт «висит», ест кадры и не слушается руля: лимит инструкций, WAIT в циклах, блокировки управления, ошибки парсера и рабочий процесс с внешним редактором.Автоматика полётов и рутинаMechJeb, будильники, Haystack, повторяющиеся рейсы и фоновый расчёт ресурсов — четыре слоя автоматизации сборки «Оператор».Что такое «Оператор»Философия сборки: «ванила+» на стоковой системе, долгая программа вместо разовых полётов, без хардкора RP-1.kOS: справочник по данным корабляЧто можно спросить у корабля из скрипта — высота, скорость, орбита, детали, ресурсы, наука, время. Сгруппировано по задачам, с рабочими примерами и граблями, на которые мы наступали.kOS: справочник библиотеки kerbal.ruКаждая функция из lib/*.ks — что принимает, что возвращает, что делает с кораблём. Плюс порядок загрузки, соглашения об именах и настройки, которые задаются перед вызовом.