Несколько вопросов по kOS (программируемый автопилот).

  1. Оффлайн

    uranus

    Посетители

    Сообщений: 71

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

    К примеру, при достижении определенной высоты ракета должна начать изменение курса по тангажу. Я пробовал писать на этот счет так:
    wait until altitude > 5000.
    lock steering to up R(0,-60,0).


    Беда в том, что при достижении указанной высоты выдается ошибка и программа завершается. Значит, условие он все же считывает, а вот действие - увы. Кто-нибудь может подсказать, в чем моя ошибка? Как правильно задавать изменение курса корабля?
    17 января 2014 - 18:08 / #1
  2. Оффлайн

    Alo

    Посетители

    Сообщений: 83

    Для того, чтобы lock steering вращал корабль, нужно выключить SAS.
    Если lock steering - это последняя строка в программе, то она сразу завершиться. Нужно добавить wait until altitude > 10000. например.
    Если при завершении программы kOS пишет только Program ended. то ошибки тут нет.

    Вот ссылки на документацию: 1, 2
    17 января 2014 - 23:00 / #2
  3. Оффлайн

    uranus

    Посетители

    Сообщений: 71

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

    И, да, у меня при формировании орбиты двигатель по программе выключается после подъема перигея на определенную высоту. Но, чаще всего, бывает, что апогей и перигей меняются местами, и орбита получается больно большой, так как на апогей ограничения по высоте я не ставил, ибо не хочет он воспринимать последовательно два условия. Может, тогда с помощью планировщика посчитать время импульса и заставить работать движок только это время, а не по достижению определенной высоты?
    Сообщение отредактировал uranus 17 января 2014 - 23:40
    17 января 2014 - 23:39 / #3
  4. Оффлайн

    Alo

    Посетители

    Сообщений: 83

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


    Попробуй ввести строку просто в терминал, если будет ошибка, напиши какая. У меня этот код сработал на 0.92 с фиксом.

    uranus писал:

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


    Для аналогичной задачи после выхода из атмосферы считал скорость, которая будет в апогее, потом отнимал от первой космической на данной высоте и делал маневр.
    17 января 2014 - 23:55 / #4
  5. Оффлайн

    uranus

    Посетители

    Сообщений: 71

    Alo, в kOS есть такое условие, как скорость? Если да, то как оно выглядит?
    18 января 2014 - 00:14 / #5
  6. Оффлайн

    SlaDmiMar

    Посетители

    Сообщений: 2145

    Так какой язык в КОСе? Как начинать и заканчивать программу?
    18 января 2014 - 00:16 / #6
  7. Оффлайн

    uranus

    Посетители

    Сообщений: 71

    SlaDmiMar, язык там - KerboScript, напоминающий Паскаль. Заканчивать и начинать программу какими-то особыми словами не нужно, можно просто поставить в конце end и все. Чтобы создать программу и перейти к её написанию, нужно ввести "edit имя программы".
    18 января 2014 - 00:37 / #7
  8. Оффлайн

    Alo

    Посетители

    Сообщений: 83

    uranus, velocity:orbit:mag - орбитальная скорость, velocity:surface:mag - относительно поверхности, verticalspeed - вертикальная скорость, surfacespeed - горизонтальная. Без :mag - получатся векторы.

    SlaDmiMar, end в конце не нужен. edit "имя программы". Редактируешь, сохраняешь f5. Выходишь f10. Run "имя программы".
    18 января 2014 - 02:26 / #8
  9. Оффлайн

    ZobrAA

    Хорошие люди

    Сообщений: 882

    uranus, Если ты скачал kOS, то почему не ознакомился с мануалами по ссылке в первом посте на оффоруме? :)

    en.twitch.tv/zobraz
    kerbalx.com/ZobrAz/craft

    18 января 2014 - 02:34 / #9
  10. Оффлайн

    uranus

    Посетители

    Сообщений: 71

    И, кстати, есть IDE под последнюю версию kOS? Больно уж он работу упрощает, но мне только старенький попадался.
    19 января 2014 - 00:25 / #10
  11. Оффлайн

    _nic

    Посетители

    Сообщений: 165

    А куда файлы с программами ложить?
    13 февраля 2014 - 08:54 / #11
  12. Оффлайн

    Finn

    Хорошие люди

    Сообщений: 1291

    на форуме мода подробно расписан весь язык, что может быть непонятного?

    Летать и строить. Строить и летать.

    13 февраля 2014 - 12:36 / #12
  13. Оффлайн

    Finn

    Хорошие люди

    Сообщений: 1291

    Таки смог реализовать шагоход на kOS. Он даже без пилота может ходить! Видео на подходе. Выложу в тему робототехника видос.

    Летать и строить. Строить и летать.

    28 февраля 2014 - 15:48 / #13
  14. Оффлайн

    tony_9_

    Посетители

    Сообщений: 17

    Finn, о... а вот это очень даже хорошо!, давно сделать хотел, но лень было помимо уроков и дз программировать, да ещё и синтаксис новый усваивать(пока что)
    28 февраля 2014 - 15:57 / #14
  15. Оффлайн

    Finn

    Хорошие люди

    Сообщений: 1291

    Перевожу официальный справочник по kOS. Он оказался больше чем я думал, там еще и ссылки есть. За полтора часа процентов 25-35 сделал возможно к вечеру или к завтрашнему вечеру, будет готов полный перевод. Планирую создать отдельную тему, где попрошу администрацию гайд - первое сообщение закрепить, что бы он всегда был первым сообщением, сколько страниц бы комментов небыло.

    Так же наверное выброшу на главную.

    Гайд по объему получается как оф инструкция. Собственно это она и есть только с моими разъяснительными пометками. Так что ждите.

    Летать и строить. Строить и летать.

    1 марта 2014 - 15:16 / #15
  16. Оффлайн

    Finn

    Хорошие люди

    Сообщений: 1291

    Гайд отправил на модерацию на главную. Побыстрее бы разместили.

    Перевел почти полностью процентов на 95-98. Так что читайте, изучайте:)

    Летать и строить. Строить и летать.

    2 марта 2014 - 01:06 / #16
  17. Оффлайн

    SlaDmiMar

    Посетители

    Сообщений: 2145

    Finn писал:
    Гайд отправил на модерацию на главную.

    Так выложил бы его в категорию "Стримы". Он автоматом попал бы на главную. В посте этот пост попросил бы редакторов перенести в нужное место.
    Finn писал:
    Перевел почти полностью процентов на 95-98.

    А почему не 100%?
    2 марта 2014 - 01:17 / #17
  18. Оффлайн

    Finn

    Хорошие люди

    Сообщений: 1291

    SlaDmiMar, Structure

    Getters

    CLEAR
    LENGTH
    COPY
    ITERATOR
    Setters

    ADD
    CONTAINS
    REMOVE - Number (index)
    Example:


    SET FOO TO LIST(). // Creates a new list in FOO variable
    SET FOO:ADD TO 5. // Adds a new element to the end of the list
    SET FOO:ADD TO ALTITUDE.
    SET FOO:ADD TO ETA:APOAPSIS.
    PRINT FOO:LENGTH. // Prints 3
    SET FOO:REMOVE TO 1. // Removes the second element from the list
    SET BAR TO FOO:COPY. // Makes a copy of the FOO list
    FOO:CLEAR. // Removes all elements from the FOO list.
    FOR

    Lists need to be iterated over sometimes, to help with this we have FOR.


    SET FOO TO LIST(). // Creates a new list in FOO variable
    SET FOO:ADD TO 5. // Adds a new element to the end of the list
    SET FOO:ADD TO ALTITUDE. // eg 10000
    SET FOO:ADD TO ETA:APOAPSIS. // eg 30

    FOR BAR IN FOO { PRINT BAR. }. // Prints 5, then 10000, then 30
    PRINT BAR. // ERROR, BAR doesn`t exist outside the for statement
    Built-in Lists

    Builds a list of various resources and saves them to a variable.

    Bodies - List of Bodies
    Targets - List of Vessels
    Resources
    Parts
    Engines - List of Engines
    Sensors
    Elements

    EXAMPLE USAGE: LIST ENGINES IN FOO // Creats a list of the currently active engines and puts it in the FOO variable

    FOR BAR IN FOO { PRINT BAR:THRUST. }.

    Resources

    Aggregate Resources of all parts

    NAME
    AMOUNT
    CAPACITY
    Parts

    This list can be long, use carefully

    NAME
    STAGE
    UID
    RESOURCES - List
    Sensors

    All Sensors on the craft (eg Pressure, Gravity, ect)

    TYPE
    ACTIVE - bool, can be set to activate/deactivate
    READOUT
    Elements

    All docked flights for the current vessel.

    NAME
    ID
    PARTCOUNT
    RESOURCES - List

    Переведи будет 100%

    Летать и строить. Строить и летать.

    2 марта 2014 - 01:33 / #18
  19. Оффлайн

    Idos

    Посетители

    Сообщений: 50

    Ой, ребятки, а где взять ? Давно он существует ? Какую я интересную штуку пропустил
    2 марта 2014 - 02:14 / #19
  20. Оффлайн

    Idos

    Посетители

    Сообщений: 50

    нашел. не работает, зараза
    2 марта 2014 - 04:23 / #20

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

M. Gordon, alexoff

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

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

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