Как тебе уже должно было стать понятно к этому моменту, сборка квадрокоптера — увлекательная, но непростая затея. Для тех, кому интереснее ковыряться с софтом, а не сборкой, лучше подойдут готовые модели. В 2010 году компания Parrot выпустила рыночную версию квадрокоптера AR.Drone. Это было первое решение для массового потребления, которое имело адекватную цену и полную открытость для энтузиастов электронщиков и программистов. Аппарат стал однозначным хитом. В этой статье мы хотим рассказать о второй версии этого квадрокоптера — AR.Drone 2.0, который вышел в 2012 году.

 

Технические характеристики

Квадрокоптер Parrot AR.Drone 2.0 оснащен четырьмя моторами мощностью 14,5 Вт, которые выдают 28 500 RPM. В редукторе используются шестерни из нилатрона для понижения шумов. На контроллере каждого мотора используется 8 MIPS AVR CPU, а сам контроллер влагоустойчив. Максимальная скорость полета — 18 км/ч. На борту квадрокоптера установлены две видеокамеры:

  • фронтальная HD-камера с разрешением 720p, 30 FPS с углом объектива в 92 градуса;
  • нижняя QVGA-камера (320 х 240), 60 FPS с углом объектива 64 градуса. Ее AR.Drone также использует для замеров горизонтальной скорости.

«Мозги» дрона представляют собой 1 ГГц ARM Cortex A8 процессор с 800 Гц DSP TMS320DMC64x для видео, 1 Гбит DDR2 RAM на 200 МГц. И управляется это все с помощью Linux 2.6.32. Соединение с «пультом» управления (которым в штатном варианте являются iOS- и Android-девайсы) происходит по Wi-Fi. Так что коптер несет на себе Wi-Fi-точку. Ориентация в пространстве происходит за счет трехосевого гироскопа, трехосевого акселерометра, трехосевого магнитометра (магнитный компас), датчика давления и ультразвукового высотомера (на самом деле дальномера). На борту также есть USB-разъем для подключения внешнего накопителя. GPS-приемника в штатной комплектации нет, но об этом чуть ниже.

Несмотря на то что AR.Drone — это коммерческий продукт для конечного потребителя, его компоновка позволяет без проблем подключать к нему дополнительные аппаратные компоненты или вмешиваться в работу существующих. При подвеске на дрон дополнительного оборудования весом до 150 граммов это не сказывается на качестве его полета — динамике и стабилизации. При подключении аккумулятора к квадрокоптеру происходит загрузка его ОС и инициация систем. Также включается Wi-Fi-точка, к которой можно подключиться любым Wi-Fi-устройством. Изначально управление коптером доступно только с iOS- или Android-девайсов, но на projects.ardrone.org можно найти способы для подключения с ноутбуков и настольных ПК с Wi-Fi. Поскольку у AR.Drone есть открытый API, то подключаться к нему можно с чего угодно, лишь бы там работал софт с использованием штатных библиотек.

В базовом функционале квадрокоптер формирует пару с мобильным устройством и в дальнейшем подключение к его Wi-Fi-точке возможно только с этого устройства. И разумеется, есть возможность разрыва пары при необходимости. Использование Wi-Fi — определенная дыра в безопасности дрона. Почему? Да все очень просто: подключаемся ноутбуком к его точке. Зная его IP-адрес, запускаем сканирование портов и получаем, что 23-й порт открыт. Подключаемся к дрону:

> telnet 192.168.1.1 23 
BusyBox v1.14.0 () built-in shell (ash)
Enter 'help' for a list of built-in commands.

# echo $USER
root

Таким образом, мы просто можем зайти на квадрокоптер с правами root. Что это дает? Ну, например, в рамках контеста Positive Hack Days CFT 2012 было задание на перехват управления дроном, которое успешно решили. А на соревновании DroneGames 2012 был продемонстрирован вирус, которым заражался один дрон, и далее тот начинал заражать им другие дроны в зоне видимости, перехватывая управление ими. Имея под рукой BusyBox и рутовый доступ к нему, можно делать и не такое. Это полезная функция для энтузиастов, но дыра в безопасности для злоумышленников. Поэтому для Wi-Fi AR.Drone можно установить защиту WPA2, используя мод ardrone-wpa2 из GitHub и защитить свой дрон от кулхацкеров. Еще один недостаток Wi-Fi — у него ограниченный радиус действия, при выходе из которого квадрокоптер принудительно приземлится. Что будет под дроном в этот момент: ровная площадка, лес или вода — его не сильно волнует. Конечно, можно без проблем поставить более мощную Wi-Fi-антенну для расширения радиуса, но есть и другие способы. Например, при помощи Arduino и типовых для авиамоделирования модулей приемника и передатчика радиус полета дрона повышается до 1,5–2 км. Но можно сделать радиус полета вообще практически бесконечным — с помощью той же Arduino и GSM-модуля координировать полет дрона можно через сотовую сеть. Главное, чтобы в зоне полета было устойчивое сотовое покрытие.

 

Глаза

Видеокамеры, установленные на борту квадрокоптера, играют разные роли. Фронтальная камера транслирует видеопоток 720p по Wi-Fi на управляющее устройство. Этот поток можно записывать на устройстве (эту функцию предлагают стандартные приложения) или подключить внешний USB-накопитель к самому дрону, и запись будет вестись на него. На накопителе должно быть минимум 100 Мб свободного пространства и файловая система FAT32.

Вертикальная камера, расположенная в нижней части корпуса дрона, дает QVGA-разрешение. В ПО AR.Drone заложена функция отслеживания горизонтальной скорости с использованием вертикальной камеры по принципу, аналогичному принципу в компьютерных мышках.

Говоря о видео, нельзя не упомянуть звук: микрофонов на борту AR.Drone нет. Это понятно, потому что шум от четырех моторов забил бы любой микрофон. Опыты, проведенные с подвешиванием камер GoPro к AR.Drone и записью видео со звуком, показали, что качество звука даже при использовании алгоритмов шумоподавления оставляет желать лучшего. Но что мешает кому-то выйти с гениальным решением этой проблемы и удивить весь мир?

При всем при этом на борт дрона можно установить динамик и, пролетая над компанией друзей, транслировать Вагнера и его «Полет валькирий».

 

Крылья и тело

Эксплуатация дрона предполагается как в помещении, так и на открытых пространствах. В комплекте предусмотрены два сменных кожуха из вспененного полипропилена. Этот материал легок, но обеспечивает достаточную жесткость конструкции. Кожух для полетов в помещении имеет защиту винтов, которая сможет предохранить от несильных столкновений. Для полетов на открытом пространстве используется облегченный вариант кожуха, не имеющий защиты винтов, как следствие, он весит почти в два раза меньше.

Поведение в воздухе регулируется настройками приложений. Углы, скорости реакций, ограничения высот и ряд других параметров хорошо регулируются настройками. Квадрокоптер умеет делать боковой переворот на 360 градусов. Выполнять этот маневр лучше с запасом высоты, так как на завершающем этапе он теряет где-то 40–50 см высоты. Остальные же маневры выполняются в штатных приложениях или за счет наклона устройств, тогда приложение получает информацию с гироскопов мобильного устройства и передает команды на рули, или за счет нарисованных на экране джойстиков. Возможна и комбинация этих методов.

При полете в помещении можно включить функцию поддержания высоты, которую дрон определяет с помощью ультразвуковых дальномеров (на высотах менее 6 м), но тут есть особенность: если в комнате стоит стол, то, пролетая над ним, дрон немного наберет высоту, так как поверхность (стол) стала к нему ближе, чем была (пол). Надо учитывать это, чтобы квадрокоптер не уперся в потолок.

Также у дрона есть функция стабилизации полета, которая пригождается как в помещении, так и вне его. В помещении винты квадрокоптера создают воздушные возмущения, которые, отражаясь от близко стоящей мебели или других предметов, способны влиять на сам квадрокоптер. Поэтому в плотно заставленных комнатах дрон немного покачивается от собственных воздушных потоков.

Вне помещений стабилизация пригождается для борьбы с ветром. При слабом ветре дрон достаточно хорошо себя стабилизирует, но на сильном (особенно на высоте) его заметно качает. Говоря о метеоусловиях, нельзя не упомянуть, что инструкция не рекомендует использовать AR.Drone в дождь и снег. Это связано с открытостью многих элементов (контроллеров моторов, самих моторов) и подверженностью их коррозии.

 

AR в DRONE

Теперь пара слов о том, почему дрон имеет такое название. Название AR.Drone происходит от Augmented Reality Drone. Создатели сразу закладывали идею создания дополненной реальности при помощи квадрокоптера. Реализуется эта идея простым способом: на картинку, получаемую с камер устройства, накладываются дополнительные образы, и вокруг этого строятся игры. В App Store от Apple есть ряд бесплатных игр, выпущенных Parrot и использующих подход дополненной реальности. Коротко о некоторых из них:

Freeflight — бесплатное приложение от Parrot, доступное для скачивания в App Store и Google Market. Приложение предоставляет возможность для пилотирования AR.Drone и обновления его прошивки. После запуска (особенно первого) лучше сразу запустить функцию проверки наличия обновленной прошивки, и если она есть, то поставить ее.

freeflight
Интерфейс управления Freeflight

При пилотировании доступны два инструмента управления дроном: вращение вокруг собственной оси и управление высотой; управление перемещением в горизонтальной плоскости. При наклонах смартфона дрон будет следовать в направлении наклона (вперед, вправо, влево, назад). На основной экран приложения во время полета выводится информация с камер, и есть возможность переключать вид между фронтальной и вертикальной камерами. Отдельно вынесены икнопки взлета, посадки и аварийного отключения винтов. В приложении множество настроек, которые влияют на высоту взлета при взлете, скорости реакции на движения смартфона, максимальные углы кренов квадрокоптера и многое другое. Но есть нюанс — на смартфон людям иногда звонят, и это может случиться во время пилотирования. Пока вы будете думать, принимать звонок или нет, квад зависнет в ожидании решения. Если вы примете звонок, то квад продолжит висеть, а по окончании звонка автоматически приземлится. Поэтому лучше десять раз посмотреть, какая поверхность сейчас под ним, а то сядет на дерево или в лужу.

Упасть «камнем» в штатной ситуации он может только в одном случае — если нажать кнопку аварийного отключения питания. При этом винты моментально обесточиваются. Во всех остальных случаях он или сядет сам, или дождется, пока его посадят. Также в приложении есть социальная составляющая, которая называется AR.Drone Academy. Но об этом чуть ниже. Субъективно приложение оставляет приятное впечатление — запустил, и полетели.

AR.Rescue — очень занимательная штука. В комплект поставки дрона входит специальная картинка, которую дрон распознает как базу. Она будет использоваться для посадки и как центр происходящих событий. При запуске одной из миссий в пространстве вокруг дрона (виртуальном, естественно) появляются различные предметы, которые надо собирать. Количество зависит от объема доступного помещения. По мере сбора предметов начинают появляться неприятельские летательные объекты, которые надо сбивать ракетами. AR.Hunter — мультиплеер-игра, где один игрок управляет дроном, а второму лучше убегать. Здесь идет игра в войнушку между человеком, на котором специальная кепка, и дроном. У человека также смартфон, и он может «стрелять» по дрону. Но кепка в комплекте с дроном не идет, а быстро найти ее не получилось. Хотя на eBay она, конечно, есть.

Дополненная врагами реальность
Дополненная врагами реальность

AR.Race — для этого приложения требуются физические аксессуары: «пончики», через которые надо пролетать, и финишные конусы. Суть — гонки на время через подготовленные трассы.

Прохождение трасс на время
Прохождение трасс на время

Еще одна интересная встроенная фича — это «тусовка» «пилотов», называемаяAR.Drone Academy. Это облачное хранилище информации о ваших полетах. Для того чтобы в него попасть, нужно пройти регистрацию (прямо из мобильного приложения), и в соответствии с заданными настройками туда будет сохраняться информация о полетах. Собираться будет телеметрия полета, снятые видео, координаты. Там же можно ставить оценки полетам других людей и смотреть на карте интересные споты для полетов в вашей окрестности. Хороший способ найти места, где чаще всего бывают единомышленники. Ну и проверить, поставили ли они WPA2-шифрование на свои дроны…

Карта спотов на примере Москвы
Карта спотов
на примере
Москвы
 

SDK/API

sdk

На официальном сайте можно скачать SDK для тех, кто хочет разрабатывать свой софт для AR.Drone. В состав программной части SDK входят:

  • Library — набор high-level API для доступа к функциям дрона;
  • Tool — набор готовых библиотек для симуляции геймпада, обработки видеопотоков, навигационных данных и прочего;
  • Engine — шаблоны проектов для iOS-приложений с описанными методами и контролами.

SDK не дает прямого доступа к сенсорам и моторам. Библиотеки представляют собой набор интерфейсов на С. Также вместе с SDK идет ряд примеров, а дополнительные примеры можно скачать в соответствующем разделе сообщества.

Среди одной из стандартных возможностей, реализуемых API, распознавание нескольких стандартных графических паттернов. В комплекте поставки дрона идет изображение для калибровки распознавания «базы для посадки» и сине-оранжевые липучки для наклейки их на объекты, которые надо отслеживать. Во-первых, этот функционал активно используется в играх для обнаружения дроном «противника». Во-вторых, наличие упрощенного способа распознавания объектов открывает интересные перспективы. Таким образом разработчику не надо углубляться в алгоритмы компьютерного зрения и реализовывать с нуля распознавание образов. Например, можно наклеить штатную липучку на велосипедный/лыжный/сноубордический шлем и написать программу, по которой дрон будет следовать за шлемом, обеспечивая аэровидеосъемку твоего путешествия в HD.

Единственный минус подобной эксплуатации — ресурс аккумулятора. Штатный аккумулятор имеет напряжение 11,1 В, ресурс 1000 мА • ч и обеспечивает около восьми минут полета, что не очень много. Но в продаже имеются и аккумуляторы емкостью 2300 мА • ч, что увеличивает время эксплуатации вдвое. Можно подумать, что, взяв с собой ящик аккумуляторов, будешь просто менять их по ходу действия. Но это не очень хорошая идея. Моторы AR.Drone не предназначены для длительной непрерывной эксплуатации — это обратная сторона малого энергопотребления и достойной тяги. Поэтому при непрерывной эксплуатации с заменой аккумуляторов они просто перегреются, что может привести к печальным последствиям и неожиданной встрече с землей.

 

Nodecopter

Продолжая тему программного управления AR.Drone, нельзя не коснуться мода под названием Nodecopter. Это мод, с использованием которого управлять полетом дрона можно с помощью Node.js. Для разработчиков это несколько более дружественный способ, нежели писать и компилировать код на Си с использованием API-библиотек. Это также снижает некий «порог вхождения» за счет того, что разработка под Node.js значительно проще, чем под Си, и таким образом большее количество людей может принимать участие в программировании под AR.Drone.

Мод позволяет получать данные сенсоров и простыми операциями передавать команды дрону. Подобные скрипты часто используются на мероприятиях для предварительного программирования программы полета дрона и дальше запуска демонстрации.

 

GPS, QGroundControl и полет по вейпоинтам

С помощью Node.js можно раздавать коптеру команды лишь в стиле «повернись направо на 0,5», «сделай флип налево» и прочее в таком стиле. Но для полета по маршруту этого мало или как минимум это неудобно. Встроенного GPS-приемника в квадрокоптере нет. Проблема решается разными способами. Например, возможна установка на него внешнего GPS-приемника с помощью Arduino. Также Parrot в феврале этого года анонсировала выпуск подключаемого GPS-модуля. Он подключается к бортовому USB-разъему и передает координаты устройству. Кроме того, он содержит в себе четырехгигабайтный накопитель и выполняет функцию флешки для записи видео. Анонсированный модуль поддерживает протокол MAVLink, что дает возможность использовать, например, софт QGroundControl, с помощью которого можно расставить заранее маршрутные точки и запустить дрон для полета по ним. А поскольку MAVLink имеет открытый исходный код и API, это позволяет писать любой софт для навигации дрона.

 

Дополнительные сенсоры

Открытость платформы AR.Drone и доступность его аппаратных компонентов делают его легко модифицируемым. С помощью мода Dronduino можно без труда интегрировать AR.Drone с Ardiuno Nano. Таким образом можно совместно использовать возможности платформ и добавлять на квадрокоптер дополнительные сенсоры, системы навигации, освещение, звуковые динамики, управление с джойстика и многое другое.

Интеграция управления AR.Drone с такими девайсами, как Nintendo Wii и Microsoft Kinect, уже давно не фантастика. Сенсоры распознают движения «пилота» и передают команды на квадрокоптер. Да, написание софта для Microsoft Kinect требует определенной квалификации, но для того API/SDK и делаются. Но если посмотреть дальше, то выходит, что «пульт» уже и не так уж нужен. На Kickstarter был размещен девайс под названием MYO — это браслет, который надевается на руку, получает информацию, считывая электрическую активность в мышцах двигающейся руки, и передает команды по Bluetooth. В проморолике было показано управление AR.Drone с помощью такого браслета. Он еще недоступен публично и все еще ожидает своего выхода на рынок, но ролики выглядят крайне многообещающе. То есть, если предположить, что проблему управления дроном мы решили и пульт больше не нужен, осталось решить вопрос с выводом телеметрии дрона. И тут приходит мысль об очках. Ведь если вывести всю необходимую информацию на очки и обеспечить управление с помощью носимого браслета, то и пульт больше не нужен.

 

Заключение

Итак, что же в этом AR.Drone такого, что им увлеклось столько людей? Есть же другие квадрокоптеры, которые могут, в отличие от AR.Drone, нести до килограмма полезной нагрузки. Могут находиться в воздухе до часа, при этом активно транслируя видео и навигационный поток на землю. Они же могут летать в плохих метеоусловиях, будь то проливной дождь или сильный снегопад. Круто? Ну круто же! А сколько они стоят? Как правило, это профессиональные летательные аппараты и цены исчисляются тысячами и десятками тысяч евро. И да, у многих других квадро- и октокоптеров есть свои API и SDK, но нет такой популярности. Но вряд ли найдется много желающих разбирать свой квадрокоптер за 2 тысячи евро, чтобы подключить к нему Arduino или какую-то дополнительную плату. Да и производители подобных коптеров не сильно стремятся пускать энтузиастов внутрь своих устройств. Так что же такое AR.Drone? Можно сказать, что это Arduino в мире любительских летательных аппаратов. Это платформа по скромной для рынка этих аппаратов стоимости, которая позволяет любому энтузиасту авиамоделисту, электронщику или программисту реализовывать свои идеи. Не зря вокруг этого продукта собралось такое сообщество и такое количество различных модификаций и усовершенствований. Подходит этот квадрокоптер и для тех, кто видит в нем лишь средство для игры, — интеграция из коробки со смартфонами и интуитивное управление позволяют использовать его по принципу «включил и играй». Доступность устройства тоже вносит свой вклад — в отличие от многих других квадрокоптеров, AR.Drone есть в наличии во многих розничных магазинах России, и далеко не только в Москве. Так что хочется надеяться, что компания Parrot продолжит развитие линейки AR.Drone, чтобы все увлеченные летающими роботами люди смогли реализовывать свои идеи. AR.Drone — это и игрушка, и инструмент, и каждый использует его так, как больше хочется.

 

Оставить мнение

Check Also

Хакер ищет авторов. Читатель? Хакер? Программист? Безопасник? Мы тебе рады!

Восемнадцать лет мы делаем лучшее во всем русскоязычном пространстве издание по IT и инфор…