Система поддержки посадки
По видеоканалу необходимо обеспечить обнаружение, захват и сопровождение самолёта, идущего на посадку. При этом камера размещена на подвижно платформе, для которой требовалось управление. В мои задачи входило:
- Разработка архитектуры ПО Станции
- Выбор механизма обмена между низкоуровневой частью и GUI оператора (MQTT+Flatbuffers), разработка протокола
- Внедрение модели определения и сопровождения БПЛА по видеоканалу средствами OpenCV
- Web-документация, Python утилиты для экспериментов
Связь компонентов можно представить диаграммой:
graph LR;
subgraph ПК
pc1[Станция]
pc2[Имитатор контроллера]
pc3[Логгер]
pc4[Брокер MQTT]
end
subgraph Ethernet
e1[Топики брокера]
e2[GigE]
end
subgraph Платформа
l1[Камера]
l2[Управляющий контроллер]
l3[Другие контроллеры]
end
l2---e1
pc1---e1
l1-->e2
e2-->pc1
pc2-.->e1
e1-.->pc3
Размещение компонентов:
- ПК - ноутбук с установленным ПО станции, брокером и соответствующими утилитами.
- Платформа - тренога с контроллерами, поворотной системой и камерами. Обмениваются по Ethernet.
В платформу входят следующие физические компоненты:
- Управляющий контроллер - интерфейсная плата, через которую идёт взаимодействие по Ethernet со станцией.
- Другие контроллеры - платы управления двигателями, к которым имеет доступ только управляющий контроллер по низкоуровневым интерфейсам.
- Камеры - сверхконтрастная для поиска и сопровождения цели, видимая для анализа оператором.
Программные компоненты ПК:
- Станция - ПО для работы пользователя, управляет остальным оборудованием.
- Брокер - сервер mosquitto для организации сетевого обмена.
- Имитатор контроллера - консольное приложение, которое взаимодействует с сервером вместо реального управляющего контроллера. Используется для локальной отладки.
- Логгер - консольное приложение, осуществляет запись всех сообщений по топикам брокера.