Вступление
Автоматизация дает нам возможность повторяемо выполнять сложные для человека действия с высокой степенью точности. Для фотограмметрии это особенно важно, так как изображения должны быть схожи. Добиться одинакового интервала съемки и полного покрытия сложных объектов крайне затруднительно вручную.
В данной статье мы рассмотрим выбор дрона (из линейки DJI), а также планирование автономных сценариев полета для создания ортопланов и 3D моделей.
Требования к оборудованию
Для начала нам потребуется дрон. В данном случае, мы рассматриваем некоммерческие дроны без нативной поддержки автономного полета (исключая mavic 1-2). Для реализации данной задачи используется функция virtual flight sticks в DJI SDK. Стоит сразу заметить, что как правило DJI выпускает SDK спустя 1 год после релиза. Например, на момент написания статьи, у одного из самых лучших любительских дронов - mavic 3 полностью отсутствует SDK, что исключает возможность управления им сторонним программным обеспечением.
Поэтому наш выбор ограничивается сериями DJI Mavic 1/2 pro, mini 1,se,2, air 1/2/2s, spark. Стоит учитывать особенность серии Mavic mini - из-за легкого веса, дрон может часто сносить ветром, что может помешать точному следованию по маршруту. Однако в спокойную погоду данные модели обладают потрясающей автономностью, позволяя быстро и тихо сканировать выбранные объекты.
Знакомство с Litchi
Litchi - это альтернативное приложение для управление дроном, которое позволяет использовать все функции SDK, прибретаемое разовым платежом в размере 25 долларов на Google Play или App Store. Есть поддержка многих полезных функций, например dynamic homepoint - обновление точки возврата в реальном времени или функция создания панорамы. Краткая сводка преимуществ и недостатков приведена ниже.
Преимущества | Недостатки |
---|---|
Отсутсвие подписок | Отсутсвие некоторых функций |
Бесплатный веб редактор сценариев | Рассчитан в основном на дроны DJI |
Синхронизация сценариев с мобильным устройстом | отсутствие кеша фото/видео |
Полноценный Экспорт/Импорт | Нет готовых интеграций c облачными сервисами обработки данных |
В данном случае нас интересует функционал создание путевых точек, waypoints.
Раздел waypoints позволяет вам прямо на телефоне создать полетный план. Присутствует несколько режимов: свободный, где вы просто можете нарисовать маршрут и точечный, где каждое ваше касание ставит точку на карте.
Создание ортопланов
Давайте рассмотрим, как Litchi справляется с созданием горизонтальных ортопланов. Для этого нажимаем на кнопку fpv и выбираем пункт log in.
После входа, вы сможете использовать веб планировщик Litchi Hub. До того как мы начнем добавлять точки, войдем во вкладку settings, и ознакомимся с доступными нам настройками.
Heading mode- направление движения дрона. Для фотограмметрии очень важно единое направление движения, если дрон будет постоянно поворачивать в сторону точки, то построение не будет успешным.
Finish action - это действие, которое выполняется после выполнения полета. Тут доступны опции возврата домой, посадки, возврата к первой точке или обратному выполнению всего плана.
Path mode -это режим который отвечает за геометрию углов. Они могут быть как сглаженными, так и прямыми. В случае горизонтального ортоплана обязательно ставим straight lines.
Cruising speed - это ваша обычная скорость полета от точки до точки. Max flight speed - максимальная скорость полета.
Photo capture interval - это очень важный пункт, который отвечает за интервал съемки. В зависимости от дистанции между точками, данный параметр может значительно меняться.
Default Curve size - это процент сглаженности углов.
Default Gimbal pitch mode - направление стабилизатора камеры. У нас доступны опции фокуса на точке, где программное обеспечение самостоятельно рассчитывает угол наклона и ввод фиксированного значения. Для горизонтального ортоплана выставляем interpolate и значение -90.
Use Online Elevation - использует в качестве референса высоты открытые данные.
После установки корректных значений, создадим несколько точек.
При нажатии точки, мы можем увидеть настройки пути до следующей точки. Поскольку мы выставили все основные настройки в общих параметрах миссии, нас интересует только altitude - высота. Допустим, я хочу изменить какой-либо параметр для группы точек. Зажимая ctrl и кликая левой кнопкой мыши на любую точку, мы переходим в режим множественного редактирования. Например, для того, чтобы изменить параметр высоты нам требуется нажать на кнопку select all, ввести желаемое значение и нажать apply. После этого высота всех точек будет изменена.
После изменений, мы можем сохранить данную миссию нажав на кнопку missions -> save. Данный файл станет сразу доступен на мобильном устройстве. Для того, чтобы открыть его, выберем раздел waypoint, значек папки слева, после чего выйдем меню с доступными планами полета. Нажимаем load flight.
После того, как наш сценарий загрузится, мы можем незамедлительно приступить к его выполнению, нажав кнопку 'play' снизу. Нам будет представлен выбор с какой точки начинать полет. Это очень важная функция, так как у вас могут быть многогектарные ортопланы, которые попросту нельзя облететь на одном заряде батареи.
После нажатия "GO", дрон начнет набирать высоту и приступит к выполнению сценария.
Создание 3D моделей
3D модели требует особого подхода для их создания. Вокруг объекта нужно построить cерию окружностей, которые будут максимально напоминать сферу. Часто бывают ситуации, где по той или иной причине, создание идеальной окружности невозможно из-за внешних объектов. Litchi предоставляет ряд очень полезных инструментов, которые помогают легко создать повторяемые сложные сценарии.
Познакомимся с объектом Point of interest. POI - это точка, которая будет постоянно находиться в фокусе дрона. Litchi полностью управляет подвесом и движением, что гарантирует хороший уровень повторяемости и точности.
К сожалению, на данный момент присутствует существенный недостаток на стороне интерфейса - нельзя сделать ровную окружность, поэтому мы воспользуемся функционалом 'orbit' в мобильном приложении.
У нас есть возможность настроить радиус и высоту орбиты. После ввода значений первой орбиты обязательно сохраняем наш полет. Далее мы сможем загружать данную орбиту и изменять отдельные параметры.
Иногда из-за сложности объектов, необходимо добавить горизонтальный слой. Ставим интервал на съемку 2 секунды, так как у нас небольшое расстояние между точками.
Выполняем все планы полета и загружаем набор данных в WebODM. Обзор процесса установки и использования описан тут. На выходе мы получаем детализированную модель:
Рекомендации
Во время выполнения плана полета, кнопка на пульте FN вовсе не включает нижнюю подсветку у дрона, а останавливает исполнение действия на текущей точке. Это очень удобно, когда необходимо сменить батарею, или ваш БПЛА подходит слишком близко к каким-либо препядствиям.
Обязательно включайте датчики препятствий на break.
Обязательно держите летательный аппарат в поле зрения. Деревья могут изменять свою геометрию в зависимости от ветра, маленькие провода могут стать последним, что ваш беспилотник увидит.
Итоги
Автоматизации полета посредством Litchi позволяет соблюсти точность параметров плана полета, многократно увеличивая качество построения объектов, а также создать повторяемые сценарии, которые могут быть использованы для многоразовой инспекции.