Швейцарские инженеры разработали алгоритм управления для гоночных дронов, позволяющий им автономно летать в меняющейся обстановке, например, по трассе с двигающимися контрольными точками. Одно из главных достижений заключается в том, что этот алгоритм не нуждается в точной модели трассы и может работать на плате, установленной на самом дроне, рассказывают авторы работы, опубликованной на arXiv.org.
Дроны, используемые в гоночных соревнованиях, управляются пилотами по радиосвязи, которая может быть нестабильной из-за помех. Некоторые инженеры разрабатывают мультикоптеры, способные передвигаться через трассу с препятствиями самостоятельно, но пока они несовершенны. Многие подобные разработки могут передвигаться только по статичной трассе и сопоставляют свое текущее положение с ее высокоточной моделью. Но даже при такой схеме автономный полет непрост — снимки с движущегося дрона могут быть «смазаны», что затрудняет определение местоположения. Кроме того, нейросетевые алгоритмы, используемые для обработки изображения с камеры, как правило, слишком требовательны к ресурсам, чтобы вычисление велось прямо на летательном аппарате.
Разработчики из Цюрихского университета и компании Intel под руководством Давиде Скарамуцца (Davide Scaramuzza) разработали алгоритм, позволяющий им автономно перемещаться по гоночной трассе с двигающимися контрольными точками, используя для вычислений только собственные ресурсы. Алгоритм состоит из двух основных частей — нейросети, которая распознает сцену и устанавливает цель для дальнейшего движения, а также низкоуровневого алогоритма, который планирует маршрут и непосредственно управляет дроном.
Для первого компонента авторы использовали модифицированную восьмислойную остаточную нейросеть ResNet-8, которую они использовали в предыдущей работе, посвященной обучению дрона полетам в городе на основе записей с автомобилей и велосипедов. Нейросеть получает на входе цветной кадр с камеры с разрешением 300 на 200 пикселей, а затем обозначает на ней цель и желаемую скорость. Эти данные передаются алгоритму-планировщику маршрута, который отвечает непосредственно за движения дрона.
Разработчики натренировали нейросеть как на данных с симулированной трассы, на котором алгоритм должен был придерживаться намеченной оптимальной траектории, так и с реального трека. В этом случае дрон летел на ручном управлении и фиксировал оптимальный маршрут. В качестве аппаратной платформы инженеры использовали самодельный квадрокоптер, оборудованный платой Intel UpBoard для вычислений и плату Qualcomm Snapdragon Flight Kit для визуально-интерциальной одометрии.
Разработчики продемонстрировали процесс тренировки и испытаний дрона на видео:
На ролике можно видеть, что квадрокоптер успешно справляется с полетом по трассе, даже если незадолго до пролета контрольная точка поменяла положение. Инженеры сравнили эффективность дрона с профессиональным пилотом и пилотом-любителем. В обоих случаях дрон под управлением людей пролетел трассу намного быстрее, но с большей частотой столкновений с препятствиями.
Группа инженеров под руководством Скарамуцца давно занимается разработками в области беспилотных летательных аппаратов. Ранее эти разработчики научили квадрокоптер выполнять агрессивные маневры, полагаясь лишь на показания собственной камеры, гироскопа и акселерометра, а также самостоятельно находить себе безопасное место для посадки. Кроме того, инженеры научили дрон ловко управляться с подвешенным на тросе грузом, а также создали метод транспортировки груза двумя мультикоптерами, не требующий дополнительных систем позиционирования.
Григорий Копиев