СофтХабрахабр

Шоу дронов: как мы координировали рой танцующих коптеров

Артисты и фейерверки — это хорошо, но мало. Отелям и паркам развлечений нужны шоу дронов. Шоу дронов — как раз такой вариант. Нужно придумывать что-то яркое для гостей. Мы поучаствовали в проекте организации регулярных шоу дронов для одного иностранного парка развлечений.

И теперь умеем делать такие же шоу в России.

Это несущаяся масса, где частицы находятся на расстоянии нескольких метров друг от друга. Когда речь идёт о рое из 300 или 1 000 машин во флоте — точность позиционирования (то есть расположения каждого отдельного дрона относительно земли и друг друга) особой роли не играет. Плюс-минус метр тут неважно: они берут тем, что до зрителя далеко, и тем, что дронов реально много. Очень дорогая масса. Но вот отелям и паркам, организаторам не особо масштабных мероприятий, например, нужны дроны в количестве 20–90 штук, и тут позиционирование критично. Даже если пара штук упадёт — ничего страшного.

Такую задачу мы и решали.
В этом случае можно взять только точностью и синхронностью.

Зачем и как всё это было

В составе КРОК есть подразделение робототехники. Возникло оно в 2012 году и занимается разными интересными вещами, но основное его направление — управление БПЛА. Мы пилим собственные софтинки для управления дронами и решения нестандартных задач. Участникам конкурса-2013 может быть известен вот этот код на гитхабе, который мы разработали и использовали для управления дроном на конкурсе летающих дронов. На тот момент мы решали новую для рынка задачу — заставить дрон зависать в нужном месте, аккуратно обходить углы и препятствия. Сегодня это кажется уже смешным.

У них есть как софтварная наземная станция UgCS, так и полноценный командный центр для больших дронофлотов. Помимо этого, мы делаем проекты по управлению беспилотниками на базе вендорского софта, в том числе на базе софта компании SPH Engineering. Под управлением мы понимаем планирование маршрута полёта, например, для спасательных работ или облёта периметра безопасности, отправку удалённых команд и контроль состояния аппаратов. UgCS умеет управлять большой группой беспилотных аппаратов, что отличает её от обычных наземных станций управления. И сейчас на базе платформы UgCS появился узкоспециализированный софт Drone Dance Controller, но так было не сразу. По сути, для шоу дронов необходимы примерно те же функции, что и в командном центре.

А как было

Софт. Первая версия, которую мы с партнёром опробовали в короткие сроки, использовала стандартную функциональность большинства гражданских дронов, а именно — полёт по заданному маршруту. Маршрут — это набор координат, между которыми беспилотник перемещается по прямой с заданной скоростью, по дороге делая что-нибудь полезное. Для большинства задач, решаемых дронами, такого планирования полёта более чем достаточно. Но в нем как минимум отсутствует синхронизация по времени, т. е. тяжело заставить дрон быть в заданной точке в нужное время, что для группового полёта критично. Однако первая версия — на то и первая версия, чтобы быстро её соорудить и начать летать. Рисуем маршруты стандартным способом (в UgCS, разумеется), грузим в дроны — и вперёд.

В маршрутах дронов были выделены точки, где дрон останавливался и ждал команды с земли, чтобы продолжить полёт. Синхронизацию полётов сделали, как и положено, в лоб. Оператор на земле должен был убедиться, что все дроны добрались до точек синхронизации, и отправить им команду «Continue» для продолжения полёта. Мы назвали их точками синхронизации.

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

Их нет и на момент написания статьи, но есть надежда, что скоро появятся. Готовых дронов для шоу в продаже на тот момент не было. Собираем мы их на базе 450-мм рамы, а в качестве автопилота выбрали опенсорсный Pixhawk, чтобы, с одной стороны, развязать себе руки как в части железа, так и в части прошивки. Ну а пока приходится собирать самим. Описание платформы лежит вот здесь. А с другой стороны, чтобы пользователи могли легко купить все необходимые компоненты и собрать нужный продукт самостоятельно. Остальные элементы конструкции — по желанию. Но вообще строго зафиксирован только автопилот.

Она позволяет достичь сантиметровой точности позиционирования относительно наземной базовой станции (у обычного GPS точность 3+ метра). И важный момент — мы сразу стали ориентироваться на технологию GPS RTK.

Но ничего не поделать: мы понимали, что до больших флотов мы и наши клиенты дорастём не сразу. Да, GPS RTK всё усложняет, поскольку требует наличия приёмников с поддержкой GPS RTK на борту каждого аппарата, на которые нужно постоянно слать данные с наземной станции. А что можно нарисовать несколькими десятками дронов? Сотнями и тысячами дронов в воздухе можно нарисовать прекрасные масштабные объёмные фигуры, в которых положение каждого дрона для глаза не очень критично. Грубо говоря, дроны должны уметь выстроиться в прямую линию, приятную для глаза и без изъянов. Скорее всего, это будут некие небольшие несложные геометрические фигуры и их трансформации, для которых абсолютно критична точность полёта.

Их работа может быть заложена в миссию либо ими можно управлять с земли, но при этом надо учитывать дополнительную нагрузку на радиоканал. Дополнительно дроны в Атланте несут на себе RGB-светодиоды. Впрочем, вместо светодиодов дрон может нести на себе и пиротехнические штуки, хотя с ними, конечно, надо быть очень осторожными.

Хорошо видны и нормальные линии (ну ок, ок. Вот пример одного из первых полётов на первой версии железа и софта (и как раз с пиротехникой). То есть примерно 40–50 раз за шоу оператор нажимал «Поехали дальше», и затем на дроны рассылалась следующая команда каждому. Там ещё было над чем работать.), и ручная синхронизация.

Но получилось уже что-то летающее.

Именно эту версию софта с нашей помощью внедрил и стал использовать организатор шоу. Параллельно с нами версию номер 1 начали использовать клиенты. Один из наших первых заказчиков (точнее, заказчиков нашего партнера – SPH Engineering, с которым мы совместно разрабатывали софт) — в иностранном парке развлечений в Атланте. Они отлетали сезон ежедневных шоу-представлений, где дроны со светодиодами были встроены в лазер-шоу.

Таким образом заказчик отлетал сезон ежедневных шоу.

Как это работает сейчас

На практике первая версия ожидаемо оказалась не самым удачным решением. Во-первых, наличие постоянной ручной синхронизации — зло. Команда «Continue» может не дойти до дрона по причине, например, плохой радиосвязи. В этом случае все улетят дальше, а он, бедный, останется. Во-вторых, невозможно создавать сложные маршруты, что препятствует созданию анимированных картин, возможны только статичные сцены.

Здесь он немного поколдовал над автопилотом и научил его автономно летать по произвольным траекториям с чёткой привязкой к GPS-времени. Сейчас всё стало проще: примерно полгода назад вендор выпустил специальную версию софтины — Drone Dance Controller, например. От оператора теперь требуется нажать на кнопку «Старт» и уйти курить. Траектории можно готовить в 3D-редакторе или с помощью скриптов. На выходе может получиться что-то вроде вот этого:

Или этого:

Но, прежде чем портить лёгкие, команде надо выполнить ответственный этап подготовки к шоу.
Итак, надо, во-первых, подготовить флот: убедиться, что все дроны — в летабельном состоянии, правильно сконфигурированы, и от них ничего не отвалилось за время транспортировки.

Начинаем с анимации, которую можно сделать в 3D-редакторе, например, в Blender: Параллельно с этим надо готовить само шоу.

И, прежде чем выезжать летать в поле, тщательно проверяем на симуляторах с оценкой результата. Дальше мы конвертируем траектории из анимации в формат, понятный для автопилота. Можно оценивать их полёт в реальном времени, а также сделать постпроцессинг их перемещений и визуализировать результат в какой-нибудь 3D-сцене. Симуляция даёт нам возможность поместить виртуальные инстансы дронов в необходимые координаты и работать с ними на нашем софте как с реальными аппаратами.

На видео — пример визуализации с разных точек обзора.

Точка обзора: зритель

Точка обзора: площадка запуска

Точка обзора 1

Точка обзора 2

После этого едем на поле для тестовых прогонов. Разворачиваем инфраструктуру (наземную станцию, связь), расставляем дроны. Проверяем, что транспортировку они перенесли хорошо и что все дроны коннектятся к нашей станции. Далее софт автоматически определяет, какой дрон по какому маршруту должен лететь. Выставляем время старта — и вперёд.

А потом — и само шоу.

Потому что непосредственно во время полёта оператор и наблюдатели должны следить за текущим состоянием флота и при необходимости принимать решение об экстренной посадке вышедших из строя (во всех смыслах) дронов. Конечно, про «уйти курить» — это была шутка.

Разумеется, есть ряд ограничений.

Понятно, что дрон и в 10 м/с полетит, но точность удержания позиции уже может быть не очень. Погодные: в дождь и снег не летаем (пока), и ветер больше 5 м/с не очень любим.

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

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

Всё это надо учитывать при планировании.

Итого

Можно собрать рой дронов, купить софт UgCS, получить от нас рекомендации и начать летать. Если у вас уже есть определённая компетенция в дроноводстве, то всё окажется даже не очень сложно. Знаю ребят, которые подняли тестовый танец для 20 дронов через 24 часа после приобретения лицензии и рекомендаций по внедрению софта (правда, у них уже был флот). Если компетенции нет, но хочется делать такие шоу, то наши инженеры могут реализовать такой проект, всему обучить ваших специалистов и в дальнейшем поддерживать. Если надо просто отлетать разовое шоу — тоже пишите, обсудим.

Ссылки

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть