Наш программно-аппаратный комплекс покрывает всю цепочку взаимодействий с любыми типами БПЛА, не теряя при этом обратной совместимости с такими мощными открытыми решениями как Mission Planner или QGroundControl. Однако сразу следует заметить, что это, очевидно, относится только к поддерживаемым этими программами типам полезной нагрузки. Наш же ПАК выходит за эти границы и позволяет с минимальными затратами внедрять практически любые типы датчиков.
Состоит ПАК из 3-х основных частей, каждая из которых разработана отечественными профессионалами на базе накопленного в отрасли опыта, соединенного с передовыми практиками в области веб-программирования, интернета вещей и искусственного интеллекта:
- Пользовательское приложение и мультиплатформенная библиотека для работы с REST API
Кроссплатформенность приложения с новым подходом к разработке виджетов позволяет гибко адаптировать интерфейс под различные устройства, при этом без необходимости в разработке отдельных приложений под разные платформы.
Благодаря подходу к взаимодействию его с наземной станцией, который ставит во главу угла распространенный архитектурный стиль, масштабирование функционала возможно производить с минимальными затратами труда и времени, при этом получив мощнейший инструмент, который можно применять и за пределами нашего приложения. Например, ту же библиотеку можно внедрить на вебсайт или передать для внедрения в уже готовые приложения от других производителей.
- Наземная станция и наш фреймворк для обработки команд пользователей
Пользовательские сообщения и команды идут на наземную станцию, которая, вопреки своему названию, не обязана находиться непосредственно перед пользователем, а может быть размещена на удаленном сервере. Разумеется, при условии наличия сети в месте работы дрона. В противном же случае можно воспользоваться локальной сетью. Этого удалось добиться благодаря разделению веб-интерфейса и фреймворка для управления роем дронов.
Наш подход позволяет объединить все подключенные машины в единую сеть с централизованным управлением с любого из пунктов связи, вне зависимости от платформы, одновременно. Таким образом можно легко разделить обязанности операторов между собой или наладить удаленный контроль, а также настроить поведение дронов друг относительно друга.
- Бортовой компьютер и произвольная полезная нагрузка для каждого из дронов
Вспомогательный компьютер на базе Raspberry Pi 4 или 5 модели работает по широко известному в среде разработчиков IoT (интернет вещей) принципу: данные разделяются между отдельными процессами, которые, в свою очередь, общаются между собой через централизованный канал связи. Это позволяет не только освободиться от зависимостей от конкретного языка программирования в общении с полезной нагрузкой, что позволяет смешивать различные подходы и библиотеки, ускоряя разработку, но и открывает дорогу к серверной обработке данных при подключении дрона к сети. При том сеть может быть как глобальной (связь с облаком и загрузка данных напрямую), так и локальной (связь, например, с другой Raspberry Pi, ответственной за обработку визуальных данных с использованием ИИ или составляющей 3д карты местности с помощью лидара).
Важно отметить, что перечень подходящей полезной нагрузки хоть и не является неограниченным, однако открывает широкий простор для тестирования и, главное, дает возможность выбора лучшего решения под конкретную задачу пользователя.