Задания к конкурсу «Космическая автоматическая идентификация объектов и искусственный интеллект»

Результирующими файлами являются файл сценария и файл автопилота, их требуется отправить для оценки.

А.1 Интерфейс симулятора

Рисунок А.1 – Элементы интерфейса

Рисунок А.1 – Элементы интерфейса

На Рисунке А.1 представлены элементы управления в интерфейсе симулятора.

  1. Поле «ε» позволяет задать максимальное допустимое значение ошибки прохождения маршрутной точки.
    Поле «Xi» предназначено для задания начального истинного курса беспилотного аппарата. Необходимо вводить значение в градусах (0o…360o).
    В поле «Pos» можно вводить название географического объекта для быстрого перемещения в соответствующую область, например Sochi, SaintPetersburg.
    Слайдер «Zoom» используется для приближения/отдаления земной поверхности.
    При установлении галочки в чекбокс «Coordinates» появляется возможность вводить данные широты и долготы в соответствующие поля «Lat» и «Long». Кроме того, в данных полях отображаются значения координаты точки, которую можно указать курсом по щелчку правой клавиши.
  2. Поле «α» отображает значение угла поворота мотора беспилотного аппарата относительно ДП.
    Поле «Xi» соответствует текущему значению истинного курса беспилотного аппарата.
    Поле «km/h» отображает текущую скорость аппарата в км/ч. С помощью слайдера можно устанавливать предельные значения скорости движения беспилотного аппарата.
    Поля «Lat» и «Long» отображают текущие значения широты и долготы координат аппарата.
  3. Установка погодных параметров. 
  4. Установка параметров движения аппарата.
  5. Просмотр и задание параметров маршрутных точек, по которым будет двигаться аппарат.
  6. Установка маршрутных точек с помощью курсора щелчком правой клавиши.
  7. Выбор начального положения беспилотного аппарата. Установка производится с помощью курсора щелчком правой клавиши по желаемому месту.
  8. Настройки интерфейса.
  9. Установка препятствий с помощью курсора щелчком правой клавиши.
  10. Перемещение аппарата с помощью курсора. Для перемещения необходимо щелкнуть по данному элементу, выбрать аппарат с помощью щелчка левой клавиши и выбрать желаемое местоположение щелчком правой клавиши.
  11. В данном поле указано состояние работы симулятора (статус).
  12. При нажатии на элемент управления номер 3 (погодные параметры) появляется окно (Рисунок А.2), в котором можно задать скорость и угол истинного ветра (0o…360o), а также скорость и угол водного течения (0o…360o).
Рисунок А.2 – Установка погодных параметров

Рисунок А.2 – Установка погодных параметров

При нажатии на элемент управления номер 4 (параметры движения) появляется окно (Рисунок А.3) установки параметров. С помощью кнопки «+» можно добавлять новый набор параметров, с помощью кнопки «Х» можно удалять соответствующий набор. С помощь «кнопок-стрелок» можно менять очередность выполнения набора параметров. При запуске симуляции параметры будут устанавливаться в соответствии с очередностью набора сверху вниз (сначала устанавливаются значения из самого верхнего набора). Рассмотрим параметры, которые можно задавать:

  1. Параметр «k» управляет мощностью мотора аппарата и может принимать значения [–1:+1], где отрицательные значения соответствуют обратному ходу, а положительные значения – прямому ходу (движение вперед).
  2. Параметр «t(c соответствует временному интервалу в секундах, в течение которого будут активны текущие параметры движения.
  3. Параметр «α(o соответствует углу поворота мотора. Угол поворота руля может принимать значения от -45.0o (влево) до +45.0o (право). При 0.0o руль находится в центральном положении.
Рисунок А.3 – Установка параметров движения

Рисунок А.3 – Установка параметров движения

При нажатии на элемент управления номер 5 (маршрутные точки) появляется окно (Рисунок А.4) установки точек. С помощью кнопки «+» можно добавлять новый набор параметров, с помощью кнопки «Х» можно удалять соответствующий набор. Добавление очередной точки производится путем установки ширины и долготы соответствующей координаты. Другой способ – добавление маршрутных точек с помощью курсора на карте (элемент управления номер 6). В таком случае параметры координат автоматически будут внесены в последовательность маршрутных точек на Рисунке А.5.

Рисунок А.4 – Установка маршрутных точек

Рисунок А.4 – Установка маршрутных точек

При нажатии на элемент управления номер 8 (настройки) выпадает список команд (Рисунок А.5). Рассмотрим возможные команды:

  1. Run – запуск симулятора.
  2. Save mission – сохранение текущих установок симулятора.
    Данная команда используется для сохранения стартового положения беспилотной платформы, положения препятствий, маршрутных точек и/или таблицы параметров движения. Сохранение выполняется в файл формата xml.
  3. Save trajectory – сохранение текущей траектории движения.
  4. Данная команда используется для сохранения полученной траектории. Сохранение выполняется в файл формата xml.
  5. Load mission – загрузка ранее сохраненных установок симулятора.
  6. Данная команда используется для загрузки ранее сохраненного сценария и установок симулятора.
  7. Reset – сброс настроек в состояние по умолчанию.
  8. Exit – выход из программы.
Рисунок А.5 – Настройки

Рисунок А.5 – Настройки

Окна элементов управления 3, 4, 5 и 8 можно свернуть, повторно нажав на соответствующий элемент (его пиктограмму).

На Рисунке А.6 представлен пример запуска симулятора. Штриховой жирной линией представлена траектория, по которой двигался беспилотный аппарат. В данном примере маршрут задавался с помощью элемента управления номер 4 (параметры движения).

Рисунок А.6 – Пример запуска симулятора

Рисунок А.6 – Пример запуска симулятора

Во время работы симулятора возможны ситуации, когда беспилотный аппарат столкнется с участком суши либо каким-то надводным объектом. В таком случае симулятор будет остановлен, а на экране появится уведомление, объясняющее причину остановки. На Рисунке А.7 приведен пример столкновения с сушей.

Рисунок А.7 – Остановка работы симулятора по причине столкновения с сушей

Рисунок А.7 – Остановка работы симулятора по причине столкновения с сушей

Если параметры погоды заданы (скорости ветра и/или водного течения), это оказывает влияние на движение беспилотного аппарата. На Рисунке А.8 приведен пример движения аппарата при следующих заданных параметрах: скорость течения 5 км/ч, угол течения 90о, мощность мотора k=1, интервал времени движения 20, угол мотора 0о. В результате видно, что траектория движения отличается от желаемой (прямо на север).

Рисунок А.8 – Пример работы симулятора с заданными внешними воздействиями

Рисунок А.8 – Пример работы симулятора с заданными внешними воздействиями

Еще один опциональный параметр, которым можно управлять в симуляторе, это ошибка прохождения маршрутной точки ε – максимальное допустимое расстояние R в метрах (Рисунок А.9) между маршрутной точкой и фактической точкой прохождения беспилотного аппарата, и соответствующая этому расстоянию область, в пределах которой засчитывается прохождение точки.

Рисунок А.9 – Максимальная допустимая ошибка прохождения маршрутной точки

Рисунок А.9 – Максимальная допустимая ошибка прохождения маршрутной точки

 

А.2 Автопилот

В симуляторе реализован функционал автопилота. Под автопилотом подразумевается автоматическое построение маршрута и корректирование движения с учетом влияния внешних воздействий (например, погодных факторов). Алгоритмом работы автопилота можно управлять путем внесения изменений в файл “Autopilot.lua”. Синтаксис инструкций в файле соответствует скриптовому языку Lua (Рисунок А.10). Полное руководство по использованию языка Lua можно найти по адресу https://lua.org.ru/contents_ru.html.

Ниже приведены некоторые функции, которые можно вызвать, подключив модуль инструкцией import ‘Math’:

  • cos(x) – возвращает значение косинуса от х;
  • sin(x) – возвращает значение синуса от х;
  • sqrt(x) – возвращает значение корня квадратного из х;
  • atan2(y, x) – возвращает значение арктангенса отношения аргументов;
  • floor(x) – округление до ближайшего меньшего целого значения;
  • pi – значение числа π.
Рисунок А.10 – Скрипт-заготовка для инструкций автопилота

Рисунок А.10 – Скрипт-заготовка для инструкций автопилота

Для модификации автопилота требуется изменять функцию Step в файле “Autopilot.lua”.

Входные данные:

  • y, boatLocation.x – положение беспилотной платформы (долгота и широта в градусах);
  • y, targetLocation.x – положение текущей целевой точки (долгота и широта в градусах);
  • Xi – истинный курс (угол в радианах);
  • alpha – угол отклонения направления тяги от диаметральной плоскости судна;
  • kr – коэффициент мощности мотора.

На выходе автопилот может менять только следующие параметры:

  • kr – коэффициент мощности мотора;
  • alpha – угол отклонения направления тяги от диаметральной плоскости судна.

Шаг по времени в симуляторе Δt = 0.01 секунды.

При необходимости хранения некоторых значений для последующих итераций автопилота требуется использовать механизм глобальных переменных в скриптах Lua.

Для решения задачи требуется:

  1. Загрузить файл сценария в симулятор.
  2. Оценить стартовое положение беспилотной платформы и промежуточных маршрутных точек.
  3. При необходимости скорректировать последовательность прохождения промежуточных маршрутных точек (в файле xml или в симуляторе меняя последовательность точек в таблице) и максимальное допустимое значение ошибки прохождения маршрутной точки «ε»
  4. Сохранить модифицированный файл сценария.
  5. Модифицировать скрипт автопилота «Autopilot.lua».
  6. Запустить симулятор и оценить качество прохождения маршрута.
  7. При необходимости повторить пункты 3-6.
  8. Результирующими файлами являются файл сценария и файл автопилота, их требуется отправить для оценки.