В сентябре 2020 года в вечернем питерском небе можно было наблюдать множество разноцветных светящихся точек, которые собирались в фигуры и перестраивались как по команде. Это было одно из шоу дронов, которые организует местная компания «Геоскан».  Тогда они побили рекорд компании Intel и вошли в Книгу рекордов России со зрелищной программой в честь 75-летия Победы, в которой задействовали почти 2200 квадрокоптеров собственной разработки. Под катом — о техническом закулисье и том, насколько сложно запустить одновременно пару тысяч дронов, когда даже для одного нужно оформлять специальное разрешение. Наш интерес к рассказу про этот проект традиционно подогревается тем, что он попал в топ-50 проектов технологического прорыва НТИ. Вечером 3 сентября для участия в шоу «Мирное небо» над Питером поднялись одновременно 2198 дронов «Геоскана». Несмотря на популяризацию термина «рой дронов», как такового «роя» не было.  Это был групповой полет автономных летательных аппаратов, в каждый из которых заранее заложили собственное полетное задание. В отличие от Intel — предыдущего обладателя рекорда по количеству дронов, одновременно находящихся в небе, — «Геоскан» запустил летательные аппараты собственного производства. И самый интересный элемент в них — автопилот, который умеет работать без стандартного для квадрокоптеров магнитометра. Автопилот разрабатывали под другие задачи, но он отлично прижился в индустрии массовых зрелищ. А наработки в сфере использования беспилотников для геодезической съемки и других практических задач помогли быстро перейти от шоу на несколько сотен дронов к тысячам. Подготовка рекордного — как и любого другого шоу дронов — идет одновременно по трем направлениям: планирование и расчет анимации; согласование полета над городом; непосредственно полет. Обо всем этом и поговорим. Это большая часть работы, которую выполняет целая команда аниматоров. Именно они продумывают, какие фигуры будут демонстрироваться и как дроны будут перестраиваться.  Подготовка шоу «Мирное небо» заняла у команды из 15 человек около трех месяцев (если не учитывать, что компания по мере развития технологий шла к этому несколько лет). Заказчиком проекта выступил Фонд памяти поколений, он же рекомендовал часть фигур. Но перестроения, а также прогремевший на весь TikTok голубь мира, — идеи команды «Геоскана». С точки зрения аниматора дрон — это просто пиксель. Их не так много, как хотелось бы, но в отличие от точек на экране они могут не только менять цвет, но и двигаться в трехмерном пространстве. Это помогает продумать картинку так, чтобы она хорошо смотрелась с разных ракурсов. Но отрисовать анимацию не сложно. Главное перенести ее в реальный мир, где есть множество ограничений. Первое, что приходится учитывать, — скорость дронов ограничена. Максимум составляет около 22 м/с.  С учетом того, что летательные аппараты будут компенсировать ветер до 15 м/с, расчетную скорость перемещения при анимации закладывают не больше 5 м/с. Так «картинка» будет устойчивее при неожиданных порывах. Скорость накладывает ограничение на размер фигур. От края до края большого изображения дронам долететь сложнее, они работают на предельных скоростях, а это ухудшает позиционирование. Если же замедлить перестроение, шоу получается не такое динамичное. Вокруг каждого дрона аниматоры оставляют свободное пространство для предотвращения столкновений. С учетом точности позиционирования и возможного ветра минимальное расстояние между ними — около 3 метров. Так что во время расчета траекторий дроны рассматривают как сферические частицы, которые не могут взаимодействовать друг с другом. Фактически на этом этапе и закладывается защита от столкновений, поскольку дроны не имеют связи друг с другом и не могут контролировать расстояние до соседей во время полета. Учтя скорость и габариты дронов, аниматоры оптимизируют полет каждого: чтобы все точки двигались быстро и по оптимальным маршрутам, но не в ущерб зрелищности. Эта квадратичная математическая задача, а поэтому чем больше дронов, тем больше нужно ресурсов. Для расчета оптимальных траекторий используют стандартное ПО для киношной визуализации на рабочих станциях с мощными графическими картами, дополненное собственными библиотеками с математикой. «Геоскан» не параллелит эту задачу по сети. Однако как раз при подготовке рекордного шоу команде пришлось кардинально поменять алгоритмы собственных библиотек. Со старым подходом анимацию 1000 дронов рассчитывали так долго, что поняли: с 2000 команда просто не успеет в срок. В итоге софт серьезно оптимизировали, сейчас анимацию на несколько сотен дронов считают за час.  Законченную анимацию трансформируют в полетные задания для дронов. Так каждый дрон имеет данные о том, в какой момент и где он должен находиться. А заставить дронов летать четко по прописанной траектории — уже инженерная задача. О ней расскажем ниже. Хабр — не юридический вестник, поэтому вдаваться в детали согласований мы не будем. Ни в России, ни в других странах шоу дронов пока не получили юридического статуса, а поэтому команде каждый раз приходится как-то согласовывать полет, учитывая местное законодательство, регулирующее работу одного беспилотника. В случае зарубежных поездок надо договориться еще и на ввоз дронов. Но многие вопросы решаемы.  Команда умудряется переходить закрытые из-за COVID-19 границы, возить авиарейсами большое количество аккумуляторов (что обычно не допускается) и ездить с шоу даже в Саудовскую Аравию, куда ввоз квадрокоптеров запрещен. С точки зрения бюрократических и логистических барьеров каждый проект уникален. Естественно, в Санкт-Петербурге — приграничном и втором по важности городе страны — были свои сложности. Чтобы летать в центре, необходимо получить разрешение огромного количества служб, включая ФСБ и ФСО. «Мы поднимем в центре города 2000 беспилотников», — звучит угрожающе, даже когда команда начинает со слов: «Разрешите нам полетать с маленьким квадрокоптером без камеры весом всего 250 граммов». Даже получив все разрешения, при подготовке шоу необходимо учитывать ограничения. Дронам нельзя летать над людьми, поэтому рекордное шоу стартовало со стадиона, а проекция фигур не выходила за зону безопасности, где не было людей. При расчете траекторий аниматоры учитывают и закрытые для полетов зоны, например Монетный двор на территории Петропавловской крепости. «Геоскан» занимается беспилотниками с 2006 года. И дроны, которые участвовали в шоу, разрабатывались специально для выступления. Разработчики сделали ставку на минимальные габариты дрона. Это сокращает и вес, и энергозатраты, и запас по расстоянию между аппаратами, а заодно упрощает логистику зарубежных поездок. Дроны штабелируют по 10 штук и упаковывают в ящики по 40 или 60 дронов.  Тысячу дронов можно спокойно перевозить в багаже самолета: ящики на 40 дронов помещаются в стандартные габариты авиабагажа, а 300–400 дронов едут к месту проведения шоу в большой легковой машине. Обратная сторона компактности — электромагнитная совместимость. Сигнал, который принимает GPS-приемник, слабый — 120 дБм (спутник находится на расстоянии 20 000 км), а все электронные компоненты находятся очень близко. При создании дронов только с третьего раза удалось разместить компоненты так, чтобы сигнал проходил корректно. И 500 уже собранных дронов пришлось в свое время пересобирать.  Производство деталей дрона по большей части заказывают на стороне. Например, пластиковые элементы корпуса делал Starline, о котором мы рассказывали в одной из предыдущих статей. Тот факт, что линия партнера находится под боком, как раз помог при подготовке к шоу. В Starline согласились быстрее отлить пластиковые корпуса. И «Геоскан» смог начать сборку весьма оперативно. Всю электронику размещают на одной плате. Чтобы дрон летал четко по предписанной траектории, нужна надежность, а каждый разъем — это потенциальная точка отказа.  Связь используют самую простую. Все дроны принимают широковещательные сообщения базовой станции. Достаточно скомандовать запуск — дальше они летают автономно. Предусмотрена «аварийная» команда посадки, а вот в передаче более детальных команд нет смысла: если что-то пошло не так, в условиях шоу почти невозможно быстро определить номер дрона и скорректировать его движение командами. На борту дрона размещено 50 сверхъярких диодов (в пиках они дают мощность излучения 10–50 Вт), которые, кстати, и потребляют большую часть энергии аккумулятора, так что его хватает минут на 15 полета. Здесь компактность пошла на пользу — маленький корпус и обдув позволили не устанавливать радиаторы и сэкономить на весе. На дроне установлена электроника в промышленном исполнении с диапазоном рабочих температур от −80 до 85 °C. Кстати, чтобы проверить работоспособность в этом диапазоне, устройства дополнительно тестируют в термокамере.  Но летать в экстремальный мороз не позволяет аккумулятор. Пока самое «холодное» шоу проводили при −18 °C. А вот сырость дрону не помеха. За время тестов «Геоскан» успел полетать и в туман, так и в дождь. Каждый дрон оборудован стандартным комплектом датчиков — высокоточным GPS, трехосевым акселерометром, гироскопами и барометром. Для повышения точности GPS базовая станция в широковещательном режиме транслирует с земли поправки. На основе этих данных автопилот собственной разработки рассчитывает местоположение устройства и параметры движения. Поскольку все датчики могут давать ошибку, автопилот фильтрует эти данные, решая по сути вероятностную задачу. Обычно квадрокоптеры оснащают еще и магнитометром. Но автопилот «Геоскана» умеет обходиться без него. В городских условиях — при старте среди железобетона — магнитометр дает большую погрешность определения направления полета: магнитное поле поворачивается, в результате математическая задача определения местоположения перестает сходиться. Впервые команда «Геоскана» столкнулась с этой проблемой на месторождениях железной руды комбината «Карельский окатыш», где разбилось несколько геодезических моделей со стандартным набором датчиков.  Разобравшись в ситуации, магнитометр отключили и изменили в автопилоте алгоритм определения местоположения. Он использует не только текущие показания, но и историю собранных данных, — сравнивает текущее положение по датчикам и то, куда он должен был прилететь с учетом параметров движения. Фактически алгоритм подстраивает свое представление о местоположении по мере его изменения. Кстати, при отладке этого механизма «погибли» 60 дронов. После симуляции перешли к запускам в поле, где неожиданный порыв ветра «запутал» алгоритм. Дроны думали, что летят направо, а по факту перемещались налево — появилась ошибка в определении ориентации. Предвидя замечания читателей, отметим, что падение дронов — крайне маловероятный сценарий. Нововведения в алгоритмах тестируют только на полигонах, а не на «боевых» проектах. И на случай ошибок, отказа одного из датчиков, потери GPS-сигнала и других проблем в дрон заложен алгоритм аккуратной посадки вниз, который использует барометр для вычисления текущей высоты. Поскольку посадку осуществляют по гироскопам, у которых может накапливаться своя ошибка, траектория снижения может быть не строго вертикальна, но близка к этому. Расчеты автопилота не настолько ресурсоемкие, как можно подумать. Ему достаточно контроллера 400 МГц. А для сохранения полетного задания и логов достаточно памяти в 1 Гб. Каждый дрон перед «боевым вылетом» проходит серию тестов. Чтобы упростить логистику, на старте теста просто зажигают подсветку дрона разными цветами в зависимости от результата. С проблемными дронами (они подсвечиваются красным) не разбираются, чтобы не терять время, а просто меняют их. Любопытно, что на рекордном шоу у «Геоскана» было всего три запасных дрона на подмену. Отдельная проверка — световая змейка, ее запускают по стартовому полю. У каждого дрона свой номер, и на взлетном поле они должны стоять строго по порядку, иначе в анимации будут ошибки. Змейка — это простой способ проверить, что дроны не перепутали местами. Предполетные проверки — последний момент, когда можно что-то исправить. После нажатия кнопки «старт» дроны переходят на автопилот. Команде остается только наблюдать результат своей работы. На борту каждого дрона есть «черный ящик» — модуль памяти, куда записываются данные с датчиков за все время полета. В общей сложности это десятки мегабайт информации, которую по окончании шоу скачивают и анализируют собственным софтом. На этой стадии становится понятно, почему некоторые точки двигались не так, как планировалось, и что вообще происходило. Анализируя эти данные, «Геоскан» дорабатывает аппаратную часть и ПО. Можно сказать, что уверенность в автопилоте — это результат анализа десятков неудачных полетов как на коптерах, так и на геодезических беспилотных самолетах. Иногда анализ логов дает интересную информацию. Так, на тестовом запуске перед рекордным шоу одновременно у всех 2000 дронов упала точность позиционирования. Команда предположила, что это военные включили свои глушилки, и перед основным запуском пришлось вместе с радиочастотной службой разбираться, что произошло. К счастью, удалось договориться и отключить трансляции на смежных частотах. Логи дают ответы на вопросы, почему отдельные точки занимают ложные позиции. Кстати, это видно на съемках рекордного шоу.  Высокоточный GPS получает не только сами данные со спутников, но и фазы сигналов. Анализ этой информации дает что-то вроде дискретного множества вероятных позиций дрона. Для каждой точки вероятность отличается. Эти решения находятся на расстоянии примерно 20 см друг от друга. Их конфигурация и распределение вероятностей зависят от созвездия спутников, наличия помех для распространения сигнала, отраженных лучей.  Рассчитывая свое движение, дрон опирается на самое вероятное из решений. Но иногда таких решений несколько. В этой ситуации дроны могут «выбиться» из строя. На такой случай в них предусмотрен механизм отключения. Столкнувшись первый раз с этой ошибкой, команда добавила в автопилот проверку, которая отключает подсветку дрона, если тот не понимает, где он находится. Логи скачивают даже с тех дронов, которых заменили на старте из-за того, что они не прошли проверки. Данные с них помогают понять, какая часть предполетного теста была завалена. Данные всех полетов сохраняют на будущее. Да и само шоу всегда снимают и с земли, и с воздуха. В воздухе, естественно, с помощью собственных дронов других моделей. Технически команда «Геоскана» готова запустить одновременно 4000 дронов. Вопрос только в поводе и заказчике. Кстати, команда считает, что гонка за количеством — бессмысленный путь развития. Гораздо интереснее включить в анимацию беспилотные самолеты, которые могли бы летать быстрее, или добавить что-то более экзотическое: например, дроны, зажигающие в небе пиротехнику. Осталось только узнать, что на это скажут люди, согласующие полеты. Главред