AUTOMATIC_SCORER.md


План перехода на автоматизированную оценку соревнований по кибериммунной автономности

  • Последнее обновление: 12/09/2024
  • Владелец документа: Безнос Юрий
  • Статус: на рассмотрении

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

Первый этап: получать события от автопилота и модуля безопасности

Включая, но не ограничиваясь, следующими данными:

  • Версия прошивки автопилота
  • Версия модуля безопасности
  • Срабатывание киберпрепятствий
  • Преодоление киберпрепятствий

Логика обработки событий на стороне ОРВД

  1. Отдельный API запрос для получения событий на стороне ОРВД
  2. Сохранение журнала событий в отдельный файл (имя mac_events_год-месяц-день.txt)
  3. Отдельная страница (или на странице с журналами второе окно) для отображения событий.

Логика обработки событий на стороне Модуля Безопасности

  1. Сохранение событий в файл на карточку (каждый запуск новый файл).
  2. Отправление событий на сервер по мере получения (одно событие – одна отправка).
    1. (если потребуется, то добавить логику отправки агрегированных событий, скажем раз в 10 секунд).

Дополнительные события автопилота

  1. Событие. Версия прошивки.
  2. События. По киберпрепятствиям: a. Какие КП присутствуют b. Какие КП активированы c. Какие КП не отменяемы
  3. Событие. ARM произошёл.
  4. Событие. DISARM произошёл.
  5. Событие. Takeoff произошло.
  6. Событие. Land произошло.
  7. Событие. Ground hit (с данными, скорость посадки)
  8. Событие. Заряд батареи.

Киберпрепятствия и задания (события)

  1. В задании вторая точка в которой нужно зависнуть (Delay и Waypoint delay) ожидая команду из ОРВД.
    1. Вопрос. Какую задержку использовать (Delay или Waypoint delay)?
    2. Вопрос. Waypoint delay не учитывается в структуре API, нужен ли он там?
    3. Решение. Использовать команду Delay с n-секунд (время дня не берём).
    4. Добавить команду Delay в МБ.
    5. Добавить команду Delay в ОРВД.
    6. Добавить проверку Waypoint delay в ОРВД, если она содержит waypoint delay, то отклонять. 1.Добавить проверку в ОРВД, что команда Delay использует n-секунд формат (время дня не подходит).
    7. Использование Wayoint delay запрещаем.
    8. Исходя из а. Если Delay нужен, то добавить его.
    9. (отдельный канал) Добавить. Отправление сообщение о достижении точки задания из автопилота в модуль безопасности. + время
  2. По команде из ОРВД нужно сесть.
    1. Приходит из ОРВД запрет полёта – участники отправляют pause и потом resume если получили разрешение.
    2. Событие о pause.
    3. Событие о посадке.
    4. Событие о resume.
  3. КП Высота
    1. Событие. Изменение высоты как КП.
    2. Событие. Пришла команда от участника изменить высоту.
  4. КП Ускорение (изменение скорости)
    1. Событие. Изменение максимальной скорости как КП.
    2. Событие. Изменение максимальной скорости от участника.
  5. КП Попытка сброса груза
    1. Событие. Сброс груза по мнению автопилота.
    2. Событие от МБ. Запрет на сброс груза.
    3. Событие от МБ. Разрешение на сброс груза.
  6. Доставка груза
    1. События из п. 5
  7. КП Полёт в случайную сторону
    1. Событие. Изменение waypoint как КП.
    2. Событие. Пришла команда от участника изменить waypoint.
  8. Срабатывание killswitch
    1. Событие МБ. Открыт KillSwitch
    2. Событие МБ. Закрыт KillSwitch
  9. Срабатывание пищалки
    1. Событие МБ. Сигнал подан.

Заметки

  • Модуль безопасности проставляет время в журнал событий (включая полученные от автопилота).
  • События от автопилота
  • События МБ – от модуля безопасности

Второй этап: оформление журнала событий для быстрого анализа событий

Третий этап: онлайн результаты с агрегированием журналов событий

Словарь терминов и сокращений

  • API – Application Programming Interface (интерфейс взаимодействия с программой/системой)
  • КП - Киберпрепятствия
  • МБ – Модуль безопасности