Skip to content

artias13/cyberimmune2023_mi6

Repository files navigation

MI-6 Hackathon solution

Отчет смотреть тут

Общая информация

Этот проект представляет собой заготовку для задачи "Дрон-инспектор" и предназначен для получения представления об интерфейсе взаимодействия компонентов, возможных способах реализации их минимального функционала, его объеме и т.д.

Оговорка разработчика и условия использования

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

Применять только в учебных целях. Данный код может содержать ошибки, авторы не несут никакой ответственности за любые последствия использования этого кода. Условия использования и распространения - MIT лицензия (см. файл LICENSE).

Настройка и запуск

Предполагается, что настройка и подготовка хостовой и гостевой машины были осуществлены в соответствии с инструкциями, приведенными в подготовительном курсе https://stepik.org/course/133991/promo.

Системные требования

Данный пример разработан и проверен на ОС Ubuntu 20.04.5, авторы предполагают, что без каких-либо изменений этот код может работать на любых Debian-подобных OS, для других Linux систем. Для MAC OS как минимум необходимо использовать другой менеджер пакетов. В Windows необходимо самостоятельно установить необходимое ПО или воспользоваться виртуальной машиной с Ubuntu (также можно использовать WSL версии не ниже 2).

Используемое ПО

Стандартный способ запуска демо-версии предполагает наличие установленного пакета docker, а также docker-compose. Для автоматизации типовых операций используется утилита make, хотя можно обойтись и без неё, вручную выполняя соответствующие команды из файла Makefile в командной строке.

Другое используемое ПО (в Ubuntu будет установлено автоматически, см. следующий раздел):

  • python (желательно версия не ниже 3.8)
  • pipenv (для виртуальных окружений python)

Для работы с кодом примера рекомендуется использовать VS Code или PyCharm.

В случае использования VS Code следует установить расширения

  • REST client
  • Docker
  • Python

Настройка окружения и запуск примера

Подразумевается наличие развернутой по предоставленному образцу машины с установленным и настроенным ПО, например, docker и docker-compose, с выбранным интерпретатором (детальные инструкции по настройке среды разработки представлены в подготовительном курсе, ссылка на который приведена выше).

Для запуска примера рекомендуется использовать следующую комбинацию команд в терминалах 1 и 2:

0.0 (пере)настройка окружения (один раз для проекта, перед первым запуском и выбором интерпретатора)

make prepare

1.1 (пере)сборка docker-образов

docker-compose build --force-rm или make rebuild

1.2 запуск примера: в контейнерах будут развернуты серверы, готовые к приему команд и начнут генерироваться и поступать необходимые сигналы

make run

1.3 просмотр логов: в консоли будет показан лог работы контейнеров

docker-compose logs -f --tail 100 или make logs

1.4 тестирование (будет запущен тестовый сценарий проверки работы основного функционала системы)

make test

Можно пользоваться запросами из файла request.rest

1.5 завершение работы:

docker stop $(docker ps -q) или make stop

Описание системы

Система архитектурно выглядит следующим образом:

Система

Компоненты

Название Назначение Комментарий
ATM (Air Traffic Manager, Система организации воздушного движения) Имитатор центральной (возможно, государственной) системы управления движением дронов в общем воздушном пространстве. Получает информацию о местоположении каждого дрона, подтверждает полетное задание. при желании можно настроить визуализации положения дронов, но в рамках хакатона это побочный функционал, на который не стоит тратить время
FPS (Flight Planning System, Система планирования полетов) Имитатор сервиса распределения задач по дронам. Позволяет согласовывать полетное задание с системой ATM, отправлять дронов на задание, задавать режимы полёта. Получает данные телеметрии от дрона. -
drone (Drone, Дрон) имитатор дрона-инспектора, получает команды от операторов через FPS, выполняет их, обрабатывает и передает данные от встроенных датчиков на пульт управления, а также информацию о местоположении в АТМ. -

Диаграмма последовательности этого примера выглядит следующим образом:

Диаграмма последовательности

ссылка на исходник диаграммы

About

My cyberimmune2023 hackathon solution

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published