Дроны научились роиться без столкновений
Американские инженеры использовали методы глубокого обучения для того, чтобы научить дроны прокладывать путь через пространство с препятствиями, избегая столкновений между дронами, при этом учитывая аэродинамические возмущения, создаваемые дронами в рое. В сравнении с традиционным алгоритмом оптимального обоюдного избегания столкновений новый алгоритм планирования пути оказался на 20 процентов эффективнее в большинстве экспериментальных ситуаций, не требуя при этом больших вычислительных ресурсов и может справляться даже с таким сложными ситуациями как обмен местами двух дронов в узком коридоре. Описание алгоритмов опубликовано в статье в журнале IEEE Robotics and Automation Letters, препринт доступен на arXiv.org.
В современном мире рои дронов широко используются только в сфере развлечений, однако появляется все больше задач, для решения которых можно использовать группы летающих роботов. Например, для задачи поиска и спасения пострадавших в чрезвычайных ситуациях вместо одиночных роботов гораздо лучше подходит рой небольших дронов, который может быстро обследовать большую площадь поврежденного здания, завалов или другой территории.
Для эффективного управления роем и контроля взаимодействия между отдельными дронами необходимо решить две ключевые проблемы. Во-первых, проблему навигации и планирования пути для каждого робота при недостатке информации об окружающем пространстве: в постоянно изменяющемся окружении помимо неподвижных препятствий присутствуют другие дроны из роя, столкновения с которыми необходимо избегать. Во-вторых, мультикоптеры создают воздушные потоки, которые необходимо учитывать при близком движении дронов, чтобы они не сдували друг друга с траектории.
Инженеры из Калифорнийского технологического института под руководством Сун-Чжо Чанга (Soon-Jo Chung) из Лаборатории реактивного движения NASA использовали алгоритмы глубокого обучения, чтобы решить эти задачи. Первый алгоритм называется GLAS (Global-to-Local Autonomy Synthesis), он отвечает за навигацию и позволяет прокладывать путь в сложном меняющемся окружении. Второй, Neural-Swarm, отвечает за корректировку траектории с учетом аэродинамических возмущений, создаваемых близкорасположенными дронами.
В качестве платформы для экспериментов инженеры использовали легкие (34 грамма) квадрокоптеры Crazyflie 2.0, отмеченные маркерами для отслеживания положения. Для расчета своей траектории движения каждый дрон использует только информацию о положении находящихся в его локальном окружении неподвижных препятствиях и других дронах, не имея при этом представления о глобальной картине в целом. Однако, для того чтобы обучить, нейронную сеть, которая решает задачу поиска пути, инженеры сначала использовали глобальный планировщик траекторий.
Они создали имитационную модель, представляющую собой виртуальное пространство площадью 64 квадратных метра, в котором с помощью глобального планировщика генерируются с шагом в 0,5 секунды траектории одновременного движения разного числа дронов (4, 8 или 16), при этом варьируется также число и расположение препятствий. После этого из полученного массива данных извлекается информация об относительном положении препятствий только в локальном окружении заданного радиуса вокруг каждого дрона и траектория их движения в каждый момент времени, которые сгенерированы глобальным планировщиком траекторий.
Итоговый объем данных для всех вариантов окружения равен 40 миллионам точек. Этот набор данных наблюдение-действие затем используется для обучения нейронной сети с функцией активации ReLU и архитектурой, основанной на подходе Deep Sets, который вместо векторов фиксированной размерности оперирует функциями, определенными на множествах и инвариантными к перестановкам. Выбор этого подхода связан со значительными колебаниями размерности вектора данных наблюдений каждого дрона, так как в любой момент времени число препятствий и других дронов в области видимости может изменяться кардинальным образом.
Как оказалось, такой подход с обучением локального планировщика на данных, сгенерированных на имитационных моделях с помощью глобального планировщика, позволяет снизить частоту застреваний дронов вблизи препятствий из-за проблемы локальных минимумов, свойственной децентрализованным алгоритмам построения пути как следствие неполноты информации об окружении.
Эксперименты показали, что в большинстве сценариев новый алгоритм GLAS на 20 процентов более эффективен, чем традиционно применяемый в таких задачах алгоритм оптимального обоюдного избегания столкновений ORCA (Optimal Reciprocal Collision Avoidance). В качестве показателя эффективности оценивалось число дронов, которые успешно достигли точки назначения, не столкнувшись друг с другом и не попав в "ловушку" локального минимума.
Кроме того, GLAS, являясь децентрализованным алгоритмом, позволяет масштабировать число дронов в рое, а низкие требования к вычислительным ресурсам дают возможность использовать недорогой бортовой микроконтроллер дрона. Вычисления в случае одного дрона-соседа в области видимости занимают около 3,4 миллисекунд. При увеличении числа дронов до трех это время возрастает до пяти миллисекунд, что позволяет использовать имеющиеся на борту вычислительные ресурсы для расчетов в реальном времени с частотой 40 герц.
Чтобы решить проблему аэродинамического взаимодействия, инженеры использовали данные о случайных близких пролетах дронов, когда они оказывают воздействие на траекторию полета друг друга воздушными потоками от роторов. Для этого дроны перемещали внутри заданного пространства по случайным маршрутам - компьютер случайно выбирал целевые точки для каждого дрона с фиксированной частотой. Количество дронов в экспериментах варьировалось от двух до четырех. В качестве алгоритма избегания столкновений в этом случае для простоты использовался метод искусственных потенциалов: целевые точки обладали притягивающей силой, тогда как соседние дроны отталкивали друг друга.
Собранные данные о состоянии дронов в каждый момент времени эксперимента (их положении в пространстве, скорости, ускорении, тяге) и вычисленная с их помощью z-компонента возмущающей силы затем использовались для обучения нейронной сети, построенной на основе подхода Deep Sets с функцией активации ReLU. Итоговый алгоритм с обученными параметрами позволил на лету изменять работу роторов, компенсируя возмущение траектории от пролетов соседних дронов. По словам авторов новый подход уменьшил ошибку при движении в вертикальной плоскости из-за аэродинамического взаимодействия почти в четыре раза.