Логотип компании Goodbit
Степан

Степан

Руководитель Отдела по работе с Партнерами

Советы и прогнозы по разработке программного обеспечения для беспилотных летательных аппаратов

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

Отрасли, в которых используются дроны

Современные дроны предназначены не только для захватывающих воздушных съемок. Дроны набирают популярность на всех рынках. Ожидается, что к 2023 году рынок коммерческих дронов достигнет 10 738 миллионов долларов. По данным Goldman Sachs , наиболее быстрыми пользователями технологий беспилотных летательных аппаратов станут такие отрасли, как:

Строительство

Съемка зданий; создание контурных карт; строительство автомобильных и железных дорог; подсчет строительных материалов.

Сельское хозяйство

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

Страхование

Проверка ущерба; оценка рисков; мониторинг мошенничества.

Дроны также активно завоевывают такие сферы, как:

Нефть и газ

Прокладка и мониторинг нефте- и газопроводов.

Научное наблюдение

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

Борьба со стихийными бедствиями

мониторинг районов, пострадавших от стихийных бедствий. Информирование поисково-спасательных команд об ущербе; поставка крови, средств экстренной помощи и оборудования; тушение пожара.

Логистика

проверка запасов; доставка посылок (работает в сочетании со сканированием штрих-кода).

Электросети

Проверка энергии солнечных ферм и линий электропередач.

Безопасность

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

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

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

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

  • Встроенное программное обеспечение работает как процессор – управляет оборудованием, отслеживает телеметрию дронов и частично анализирует данные, полученные от датчиков дронов (GPS, тепловые датчики, инфракрасные и лидарные камеры, ультразвуковые и визуальные датчики и многое другое)
  • ОС позволяет пользователям управлять частью прошивки
  • Веб- и облачные интерфейсы позволяют получать доступ к операционной системе из удаленных систем управления дронами (пользовательских приложений и облачных станций управления) и передавать собранные данные из встроенного программного обеспечения в облако или на мобильные устройства.

Облачная платформа управления дронами.

Это также позволяет беспилотнику выполнять автономные ответные действия. Облачная часть необходима, когда речь идет о сложных процессах, таких как, скажем, создание 3D-карт, компьютерное зрение, распознавание образов.

Облачная платформа управления содержит:

  • Процессор потоковой передачи данных.
  • База данных и хранилище больших данных.
  • Анализ данных и машинное обучение.
  • Модуль управления дроном.
  • Интерфейсы для связи с дроном.

Пользовательское программное обеспечение

охватывает интерфейсную и серверную части веб- и мобильных пользовательских приложений. Они помогают пользователям планировать и проводить полеты, а также отображать данные с дрона для пользователей. Пользовательское программное обеспечение также включает интерфейсы для связи с облаком и дроном.

Для связи друг с другом три части используют специальные протоколы, например, MAVLink и ROSlink.

Основные моменты в современной разработке приложений для беспилотных летательных аппаратов

Чтобы создать успешное и долговечное приложение для дронов, мы предлагаем обратить внимание на следующие аспекты разработки:

Функции для безопасной и удобной работы

Базовый набор функций приложений для беспилотных летательных аппаратов должен включать:

  • Имитация тренировочных полетов и управление реальными полетами.
  • Проверка погодных условий и прогноз погоды в регионе полета.
  • Планирование маршрутов (с учетом ‘бесполетных’ карт и информации о критической инфраструктуре, транспортных и пешеходных путях, зонах конфиденциальности).
  • Передача на смартфон того, что видит дрон, или уже обработанных данных из облака (потоковое аудио / видео).

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

  • Профессиональная фотография и монтаж фильмов.
  • Совместное использование видео и изображений.
  • Возможности чата.
  • Оповещения о состоянии дрона, изменениях маршрута, препятствиях на пути.
  • 3D-моделирование и экспорт в необходимый формат.

Другие важные соображения

Сертификация программного обеспечения

Программное обеспечение для дронов подчиняется таким стандартам, как DO-178C и ISO 14508, поэтому архитектура программного обеспечения, сбор требований, процессы кодирования и интеграции, обзоры и тестирование, управление конфигурацией должны быть организованы соответствующим образом.

Исключительная безопасность данных

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

Непрерывные улучшения

Если вы хотите идти в ногу с быстро развивающимися инновациями в индустрии беспилотных летательных аппаратов, усовершенствования должны происходить часто и не снижать стабильность системы. Одним из новейших и наиболее популярных подходов к обеспечению качества программного обеспечения в контексте быстрой разработки является использование подхода непрерывной разработки, доставки и развертывания. Подход подразумевает использование контейнеров, общего хранилища кода, подхода "инфраструктура как код" (IaC) и других методов DevOps, автоматизацию подготовки и выполнения тестов (модуль, API, пользовательский интерфейс), надежное управление версиями и многое другое.Показать полностью

Дизайн, обеспечивающий масштабируемость

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

Интеграция с другими системами

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

Простой пользовательский интерфейс в пользовательских приложениях

Пользовательский интерфейс должен упростить управление дроном для людей из разных сфер и разных ролей. Это означает, что пользовательское приложение должно интуитивно направлять оператора дрона в процессе полета и точно передавать результаты аналитики.

Чего рынок ожидает от дронов в ближайшем будущем

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

  • Возможность осуществлять планирование маршрута с помощью искусственного интеллекта и корректировать промежуточный курс (в случае изменения погоды или ветра). Это потребует доработки алгоритмов искусственного интеллекта для лучшего создания автономной траектории. Для безопасного обхода препятствий и предотвращения столкновений уже разработаны алгоритмы как для совместного пилотирования, так и для полностью автономных полетов дронов. Но они все еще требуют дальнейшего совершенствования.
  • Мониторинг и координация в режиме реального времени. Использование операционных систем реального времени (RTOS) набирает популярность как способ создания дронов, способных быстрее обрабатывать данные и точно реагировать. Многопоточность RTOS позволяет дрону быстро объединять и обрабатывать данные в реальном времени о людях, зданиях, других дронах, пилотируемых самолетах, которые находятся в непосредственной близости. Кроме того, это позволяет ОСРВ точно запускать последующие действия, быстро оценивать приоритет задач и соответствующим образом планировать действия.

Кроме того, приоритет будет отдаваться улучшение сбора и анализа данных. Пользователям требуется все более сложное распознавание образов для улучшения 3D-моделирования, обработки и анализа изображений, глубокого обучения и других интеллектуальных возможностей, которые находятся в прямой зависимости от современного использования дронов на предприятии.