Летающие роботы

 

Летающие роботы

Что из себя представляет коптер – летающий робот с несколькими пропеллерами?

1. Основные компоненты. Сенсоры.
2. Архитектура приложения на примерах: Ардуино, PX4.
3. Управляемый и автономный полет.
4. Фото и видео-съемка.
5. Внешнее оборудование. Коммуникация.
6. Области применения.
На видеозаписи доклада можно увидеть поднятие в воздух аппарата, который в полевых испытаниях достиг рекордной точности 10-15 см при полете по прямолинейной траектории.

Кто: Анатолий Филин, Денис Елданди
Где: РИТ 2013
Когда: 22-23 апреля 2013

Анатолий Филин: Сам я бывший разработчик. Сегодня будем рассказывать не о разработке, а об экзотической теме летающих роботов. Я хотел понять: у тех людей, которые здесь собрались – кто когда-нибудь запускал свои самолёты, вертолёты – много народа таких? О, отлично, народу полно. Поэтому этот слайд мы пропускаем.

Всем понятно, что сейчас СМИ, телевидение, журналы – везде эти коптеры лезут изо всех щелей. Цель сегодняшнего нашего рассказа – «протащить» по поверхности: рассказать, что это такое, как собрать свой агрегат. И так получилось, что многие доклады растут из некоторого, пока неафишируемого, проекта, в котором была важна высокая точность полёта этих самых роботов. Поэтому некая фишка, к которой мы стремились, и некая дорога, по которой мы шли – это достичь высокой точности.

Мы будем называть эту штуковину, которая у меня в руках – коптер. На самом деле это слово – нонсенс, но, тем не менее, все его используют.

Готовые устройства. Если вы, например, взялись, захотели в эту штуковину сыграть, причём сыграть как в качестве хобби, так и в качестве какого-то бизнеса, например, заняться авиа-фотосъёмкой. В принципе, первый путь очень простой: найти подходящий себе коробочный продукт – уже есть достаточно большой выбор таких продуктов, — и заказать его. Конечно, некоторые навыки потребуются, чтобы его настроить, протестировать – и начать летать. Единственное – я неслучайно цены написал. Нужно понимать, что диапазон достаточно широкий. Это может быть очень популярная – наверное, самая популярная сейчас модель – в правом верхнем углу – это AR.Drone. Собственно, вся Америка их «летает», и она стоит порядка таких цифр — $300. Это может быть значительно более продвинутая модель DJI Naza – профессиональная модель для профессионального видео и фотографии за 6-7 тысяч долларов. То есть диапазон достаточно широкий.

Нас, как разработчиков и людей, которые делают некий проект, интересовало, естественно, сделать всё самим – запрограммировать, запустить – коробочные варианты нас не интересовали. Наверное, мы попробуем его «грохнуть» (выкрики из зала «давай, давай!»)</span class=»italic»>. Я хочу сказать, что действительно это газонокосилка, и этот кожух мы сделали специально для конференции. На самом деле, без кожуха это достаточно устрашающая вещь. Ничего страшного – пара отрубленных пальцев, нос и так далее :-), но с этим кожухом мы надеемся, что нам в худшем случае удастся выжить (смех в зале)</span class=»italic»>.

Естественно, сейчас полёт будет в ручном режиме, потому что, во-первых, в автоматическом режиме мы летали по GPS, а GPS здесь, как такового, нет, и вообще, просто это чисто демонстрация того, что он может летать и прыгать.

Очень высоко мы его поднимать не будем, над вами тоже постараемся его не запускать, потому что всё-таки безопасность превыше всего в этом деле.

Пока он летает, если это никого не напрягает, я продолжу говорить.

Если вы захотели заниматься этим делом, надо примерно понимать, где что в мире происходит на данный момент. Существует несколько центров притяжения, центров парообразования в этом мире летающих автономных устройств. Это, прежде всего, Калифорния, 3D Robotics, в которой производят платы АРМ 2 или 2.5 и так далее, который сейчас, собственно, летает. Второй важный для нас центр притяжения – это Швейцария, Цюрих, там находится Цюрихский университет, при котором лаборатория компьютерного зрения, и там разрабатываются, в том числе и платы PX4, с которой мы тоже работали. Ещё важная вещь – Китай или Гонконг – это большая тема — в том случае, если вам захочется собрать своё, вы мимо магазинов Hobby King, естественно, не пройдёте.

С чего надо начать для того, чтобы собрать свой коптер? Надо понять, для чего мы его собираем. Это, прежде всего, вес. Существуют онлайновые калькуляторы – несколько калькуляторов, они достаточно неочевидные в некоторых случаях, в них приходится разобраться. Надо вычислить размер винтов, исходя из размера винтов – размеры рамы, моторов, ESC и, соответственно, батареи. На самом деле у нас, как правило, всё-таки два параметра: вес и продолжительность полёта. Допустим, мы должны летать по каким-то причинам 10 или 15 минут без перезарядки. Чтобы летать дольше, нам нужно увеличить размер батареи и так далее. Соответственно, увеличится вес. Нужно пройти через несколько таких циклов.

Несколько слайдов будут посвящены тем составляющим, из которых собирается такая штуковина.

Это рама. Здесь стоят параметры, в том числе цена. Цена является важным параметром, в некоторых случаях определяющим. Например, эти две рамы примерно одинаковые – одна из Америки, другая из Гонконга. Я пропускаю моторы и ESC, потому что заранее знаю, что времени на это не хватит.

Батареи. Батарея – это не просто батарея, к которой мы привыкли в бытовых устройствах. Это достаточно сложное электронное устройство, состоящее из нескольких ячеек. Мы говорим о литиево-полимерных батареях, потому что именно они обеспечивают высокую скорость разрядки, которая необходима для того, чтобы летать под нагрузкой. Существует диапазон батареек. Мы пользуемся батарейкой на 3 ячейки, в каждой ячейке 3,7 Вольта. В некоторых случаях, например, для того профессионального аппарата, который я показал вначале – который используется для аэрофотосъёмки или видеосъёмки – нужна батарейка, состоящая из 10 ячеек весом почти 1,5 кг. Кроме того, необходимо зарядное устройство. Оно достаточно сложное, это не простая зарядка «воткнул и забыл». Нужно отбалансировать батарейку, нужно её зарядить. Она иногда не заряжается на полную мощность – в смысле, на тот вольтаж, на который нужно – и так далее.

Самое интересное – это, безусловно, плата управления. Здесь нарисована как раз та самая плата, которая стоит в наших двух устройствах. В том вертолётике, который у меня в руках, стоит предыдущая версия. На плате большой чёрный квадрат – это ЦПУ. Естественно, это самый существенный элемент, фактически, это бортовой компьютер. Датчики, из них самые важные – гироскоп, акселерометр, магнетометр, давления. Это варьируется на разных платах.

Реальные системы, которые можно менять, в которые можно играть – можно сделать на основе двух конфигураций, двух архитектур. Это то, что делает 3D Robotics – сейчас версия APM 2.5, и плата РХ4. Мы уже видим, что характеристики варьируются. Мы фактически в данный момент переходим с APM на РХ4, потому что АРМ в какой-то степени исчерпала свои возможности. Это 8-битный медленный процессор, а РХ4 полноценное «железо» с полноценной возможностью программировать, то есть писать независимые приложения, запускать их параллельно. Это система реального времени. Кроме того, там есть очень интересный прибамбас, который позволяет точно летать – это оптический датчик, который специально сделан под эту плату.

Если начинать использовать, то очень важно наличие поддержки и наличие документации, потому что без этого никак. С этой точки зрения APM выигрывает по всем статьям. Там очень большая коммуна людей – сообщество и разработчиков, и тестировщиков, и людей, которые «летают», любят это дело. С точки зрения программного обеспечения (вообще в этом докладе я почти не говорю про программирование) – нужно сказать, что и тот, и другой софт реализуется на С с какими-то вариациями (С, С++). APM делается на Arduinoв силу каких-то исторических причин, хотя Arduino () там практически не используется. На РХ4 можно писать полноценные юниксовые приложения, которое коммуницирует друг с другом через шину обмена данными, то есть всё по-взрослому.

Последняя вещь, без которой не обойтись – это пульт с приёмником. Здесь тоже придётся выбирать. Есть и топовые модели, есть модели бюджетные. Для всех целей тестирования и разработки хватает бюджетных моделей. Важно, чтобы там было, как минимум, шесть каналов, и, собственно, частота, как правило, будет как раз такая – 2.4 ГГц. Более высокая частота уменьшает диапазон взаимодействия. В этой частоте практически все в России работают. Кроме того, существуют какие-то правила, по которым в стране можно летать на определённой частоте. В России, по-моему – 2.4.

Всего предыдущего, всех этих деталей хватает, чтобы запустить и поднять свой вертолёт. Но хочется большего. Прежде всего, конечно, хочется полететь в некую точку и там зависнуть. Или, например, сфотографировать что-то. Чтобы прилететь в эту точку, нужно найти её координаты. И, соответственно, для того, чтобы прилететь к этим координатам, нужно GPS. GPS существуют самые разнообразные, мы ещё поговорим про точность. Здесь стоит один из лучших GPS, которые существуют, он достаточно бюджетный – в пределах 100 долларов. Плата совместима со всем. Прекрасно летает, поддерживает протокол NMEA, который очень важен в мире GPS.

Сонар для того, чтобы определять высоту – более точно, чем GPS, определять высоту над уровнем земли.

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

Датчик расхода батареи, чтобы не упустить, когда батарея разрядилась.

И вот такая хитрая штучка GPS-GSM трекер – если, не дай Бог, наш коптер улетел, то на неё можно позвонить, послать смс, и она сообщит координаты.

После того, как мы собрали, надо начинать летать. Денис сейчас расскажет в двух словах, как это всё летает и почему не падает.

Денис Елданди:В коптере четыре винта, все эти винты разнонаправленные. Если они все вращаются более-менее синхронно, то коптер находится на нужной высоте и не двигается. Если винты, которые вращаются, скажем, по часовой стрелке, будут вращаться чуть больше, а те, которые вращаются против часовой стрелки – чуть меньше, то коптер будет закручивать против часовой стрелки. Это мы на рисунке посередине видим. Если винты, которые вращаются в одну сторону, будут вращаться с перекосом, то его начнёт кренить или изменится угол тангажа. Изменяя угол тангажа или его вращение, можно обеспечить перемещение всем осям.

Внутри IMU есть гирокомпас, гироскоп и акселератор. Данные с него попадают на реализованный внутри пропорциональный PID контролер, который, зная более-менее положение и зная то, к чему надо стремиться – скажем, к горизонтальному положению, — подаёт соответствующую команду на мотор.

Анатолий Филин:Мы показали, как всё летает с пульта. Самое интересное начинается, конечно, с момента автоматического управления. И в том, и в другом автопилоте, с которыми мы работали – можно купить коптер с автопилотом, можно запрограммировать самому – самый очевидный, но нельзя сказать, что тривиальный вариант состоит в полёте по траектории, задаваемой с помощью GPS. Это реальная картинка, снятая из контрольной панели системы управления. Кроме того, более продвинутый режим – это в режиме распознавания препятствий, окружающей среды, когда на коптере стоит одна или несколько видеокамер, которые могут оценивать ситуацию, распознавать, находить и обходить препятствия – это вообще более крутой режим. С этим режимом мы не имели дело.

Просто для информации – существует полуавтономная система Vicon (это фирма, система наверняка как-то называется), которая заключается в том, что коптер летит в относительно небольшом пространстве, окружённом большим числом фотодатчиков. На коптере установлен маячок. Информация о местоположении в реальном времени с очень высокой частотой поступает в управляющий компьютер, который обратно посылает следующую координату, то есть команду на борт.

Для того, чтобы летать, нужно освоить одну из управляющих программ. На самом деле, существует две продвинутые программы. Одна из них Mission Planner, привязанная к плате АРМ. Вторая – Ground Control, в какой-то степени разработанная вокруг сообщества в Швейцарии. В принципе, достаточно продвинутая вещь, и в ней надо разобраться. Прежде всего, с помощью этой программы можно залить «мозги», можно настроить PIDы, о которых говорил Денис, можно задать программу навигации, можно в реальном времени, если установить ещё камеру на борт, смотреть через неё и так далее.

Что важно с точки зрения разработки. Самый принципиальный момент – наличие протокола. Mavlink – это специально разработанный для микро-автономных устройств протокол, который позволяет разделить серверное программирование и программирование на борту, и дальше действовать независимо. Разработан он тоже на базе Цюрихского университета, и в принципе это достаточно простой протокол, с помощью которого можно задавать программы – лететь к некоторой контрольной точке (широта, долгота, высота). Вторая команда в этом примере – послать некий сигнал на сервопривод – сигнал интенсивности, на второй сервопривод сигнал «тысяча», и зависнуть в данной точке на данной широте, высоте, долготе. В нижней части скриншота из Mission Planner – программка, которую очень удобно забить прямо там, и она зальётся на коптер.

Теперь про самую фишечку. Стояла задача для проекта, которым мы занимаемся – достичь высокоточной навигации для начала по прямолинейной траектории. «Высокоточной» — подразумевается сантиметровая точность. Надо сказать, что все устройства, которые сейчас в кармане у меня, у вас, достигают на данный момент 3-5, некоторые 10 метров. В случае беспилотников – с такой точностью никто не летает. Люди радуются, когда удаётся достичь точности 3-5 метров, это предел. Нам удалось достичь где-то 15 см, следующий шаг – достичь точности 5 см. Для этого придётся приложить больше усилий.

Прежде всего, для этого пришлось использовать высокоточный GPS с RTK поправками. В двух словах – что такое RTK поправки. Это поправки реального времени. Для того, чтобы эти поправки работали, нужно два элемента. Здесь, в вертолёте находится та часть, которая называется «ровер». И базовая станция находится на сравнительно небольшом отдалении. Эта базовая станция должна в точности знать свои координаты, до миллиметра. И ровер, и базовая станция должны видеть одни и те же спутники. При наличии этих условий возникает возможность для высокоточной навигации при помощи RTK поправок.

Существует несколько методик вычисления этих поправок. В двух словах: один из основных элементов неточности, причин неточности – это атмосферные явления, облака, состояния ионосферы и т.д. Если эти два элемента находятся на небольшом расстоянии, то состояние атмосферы предполагается примерно одинаковым, сравнимым. Соответственно, базовая станция знает, какая ошибка до нее доходит, эту ошибку она транслирует на ровер. Ровер применяет эту ошибку на систему координат, которую он получил со спутника.

Одна из проблем, которые пришлось решить – где же взять эти поправки. Если смотреть на Европу – в Европе существует несколько сетей. Здесь нарисована одна из сетей, практически общественных, публичных сетей, которые транслируют RTK. Практически любой человек может получить RTK. Допустим, смотрим на Польшу, такую замечательную большую страну – там, может, 10 таких станций, которые покрывают всю территорию.

В России ситуация несколько иная (смех в зале)</span class=»italic»>. У нас есть две точечки рядом с Москвой и 2 точечки рядом с Питером. Причём одна точка рядом с Москвой оказалась рядом с моей дачей. Я был очень обрадован, но оказалось, что она красная. Это значит, что поправки, которые с неё приходят, уже давно «протухли». Тем не менее, удалось этот вопрос решить, получить поправки с помощью эксперта в области GPS. Удалось установить базовую станцию, получить поправки и полетать с помощью этих поправок.

Схема эксперимента примерно такая. Где-то в офисе стояла станция, которая вычисляла эти поправки. Через интернет мы получали её в поле, через модем снимали, через радиолинк посылали на ровер, который находился в нашем коптере. Сначала мы проверили – там происходит довольно значительный период стабилизации. Эта система установилась где-то в 5-10-сантиметровую точность, отрелаксировала туда. После этого – естественно, этот процесс произошёл не за один день, а за несколько месяцев – удалось пролететь с достаточно высокой точностью.

Из чего складывается точность, погрешность или ошибка полёта? Понятно, что основной элемент, с которым мы работаем – это навигация. Мы не знаем, что есть точно, что есть неточно, где находится точная координата, нам нужно попасть в эту виртуальную линию. Второй элемент – это погрешность GPS. Мы знали, что она где-то 5-10 см. Последний элемент – это погрешность самих вычислений. Поскольку мы работали на 8-битной плате, и в силу некоторых других ограничений, мы получаем погрешность именно вычислений.

Мы пытались лететь по сетке, думая, что всё будет хорошо. Но оказалось, что сетка – полметра, бетонные дорожки, и точности недостаточно. Поэтому мы тупо летели с севера на юг, с востока на запад, и по лог-файлу среднее отклонение – 16 см. Я думаю, что если оттуда вычесть погрешность GPS и погрешность вычислений, то эта точность увеличится, она не должна уменьшиться.

Теперь про те проблемы, которые могут возникнуть. Со всеми из этих проблем мы сталкивались в той или иной мере. Нужно всегда заботиться о безопасности, это очень важно. Можно воткнуть плюс на минус, или, хуже того, воткнуть сразу – вот получили, достали из коробки плату, воткнули, подключили её к батарейке. Произошёл небольшой пшик и всё. Это тоже происходило. Мы используем GPS-трекер, это совершенно замечательная штука, и очень её рекомендую. Но бывает и такое. У меня даже есть картинка, мне больно на неё смотреть. Для того, чтобы избежать этих вариантов, этот агрегат упал и разбился в хлам. Была сделана очень жёсткая конструкция, и при падении с высоты метров в 50 она выжила – то есть её «мозги», в которых была электроника на несколько тысяч, выжили, а раму поменять несложно.

Это самый неприятный вариант, но и это у нас происходило. Более того, даже у меня здесь (на руке) есть боевые шрамы. Так получилось, что в соседней комнате находился ещё один пульт управления, который случайно привязался к нашему коптеру. После этого мы с пропеллерами вообще не работаем при тестировании.Это просто рекомендации безопасности. Нужно к этому относиться серьёзно.

Это полезные ссылки.

Это стол Дениса – слева то, как он выглядел до того, как он начал заниматься этим проектом. Справа – то, что вам предстоит, если вы всем этим займётесь.

Спасибо (аплодисменты)</span class=»italic»>.

 


Вопросы из зала:

 

— А ещё полетаем?

Анатолий Филин: Полетаем.

 

— Здравствуйте, вопрос такой. Насколько я знаю, атмосфера — достаточно нестабильная сущность, то есть там различные потоки на разных высотах разные, скорости меняются постоянно, турбулентность возникает. Как вы с этим боретесь? Вам приходится самим какие-то алгоритмы реализовывать или это какие-то готовые вещи?

Анатолий Филин: Спасибо за вопрос. Есть, во-первых, готовые вещи. Готовые в том смысле, что они реализовываны в некоторых автопилотах. То есть это некий алгоритм стабилизации. В принципе, если вы запустили вертолёт в режиме «лойтер» над какой-то точкой, и дует ветер – если этот ветер более-менее стабилен, с одного направления, то фактически сам вертолёт является датчиком ветра. Он может измерить этот ветер и, собственно, выработать коррекцию. Это заложено в алгоритме PID, про который мы говорили, это составляющая, которая называется D-составляющая. Если же ветер рваный, дует с разных сторон, порывы ветра – то ситуация гораздо сложнее.

 

— Интересно, почему вы этим занимаетесь. Это такое хобби, вы хотите заниматься доставкой газет или пиццы?

Анатолий Филин: На самом деле, применений очень много. 2 или 3 дня назад я проезжал рядом с президиумом Академии Наук, и там два молодых оператора пускали вертолёт, такой, как в нашем обзорном слайде в левом верхнем углу (за $700). И они же купили вертолёт, который находится на слайде ниже – тот самый, за 7 тысяч долларов. И занимаются операторской съёмкой. Они закончили ВГИК и, собственно, это большая тема для киноиндустрии. Вторая тема, которая достаточно реальна – где-то 200 коптеров стоимостью по 7 тысяч долларов используются в Афганистане для нахождения мин. Вообще, честно говоря, я не хочу рассказывать про тот проект, которым мы занимаемся, но, на мой взгляд, так же, как 90е годы характеризуются взрывообразным развитием Интернета,, интернет-технологий – гигантские бум, когда создавались Amazon, eBay и так далее – все эти монстры. То текущее десятилетие – это будет десятилетием робототехники. У нас разработческая компания и мы стараемся, в том числе, находиться на грани новых технологий – это интересно, мотивирует и так далее. Но за всем этим стоит некий проект, о котором я расскажу, может быть, на следующей конференции.

 

— По поводу PX4. Эта плата опенсорсная?

Анатолий Филин: Да, и та, и другая плата FPX4 – это опенсорсная схемотехника и код.

 

— И второй вопрос. Какой смысл получения координат с точностью до сантиметра? Я тоже летаю на коптерах и самолётах, но они во времени растянуты. Он будет уходить на метр, на два, на три, но это медленный процесс.

Анатолий Филин: Смысл связан с некоторой прикладной задачей, которую мы пытались решить. То, что это достижимо – мы, в принципе, показали. Одно из основных доказательств возможности того, что мы делаем – состоит в том, что можно пролететь с такой точностью.

 

— Получается, что эта дифференциальная поправка изменяется раз в секунду?

Анатолий Филин: Да, дифференциальная поправка пересчитывается редко. Но сам GPS в нашем случае даёт, по-моему, 20 Гц на выходе. А обработка показаний гироскопа, магнитометра и так далее – это вообще идёт 100 Гц. И пересчёт обратной связи тоже идёт с какой-то частотой – это зависит от алгоритма и быстродействия, но с очень высокой частотой. Это не раз в секунду. 100 Гц вполне достижимо.

 

— Задача была именно зависнуть в какой-то точке надолго?

Анатолий Филин: Первая, простая задача – зависнуть в точке.

 

— Вопрос такой. Двигатели электронные ограничены по времени – были ли варианты жидкостные, внутрисгораемые?

Анатолий Филин: Действительно, вопрос батареи – это ключевой вопрос. Продолжительность полёта на данный момент на данном агрегате даже без какой-то нагрузки составляет 15 минут. Существует несколько подходов к решению этого вопроса. Во-первых, действительно, может быть бензиновый двигатель. Дальше – есть батареи, которые работают как электрические, но работают на жидком топливе. Мы не пробовали. Кроме того, американцы придумали лазерную зарядку в воздухе. Солнечная батарея заряжается так.

 

— Аппараты легче воздуха тоже не рассматривали? Там сразу увеличивается время полёта – до дня.

Анатолий Филин: Я понимаю. Это вполне возможно. Вы дирижабль имеете в виду? Он медленнее, понимаете? А эта штука может лететь 50 км/ч, а то и больше.

 

— Я не знаю, в чём коммерческая ценность вашего проекта, соответственно, есть варианты.

Анатолий Филин: Да.

 

— PX4 – вы сейчас на каком этапе, если, опять же, не секрет?

Анатолий Филин: На этапе её освоения. Пока что мы ещё не начали программировать на PX4. Какой-то период есть, кривая – мы находимся сейчас на этапе освоения PX4, мы закупили всё оборудование.

 

— Выбор операционки реального времени – вы уже приступили, соответственно, к программированию, опыту?

Анатолий Филин: Нет, к опыту – нет. В смысле, к программированию мы приступили, а к PX4 нет.

 

— Понятно, спасибо.

Анатолий Филин: Спасибо за вопросы. У меня 0 минут 0 секунд.