Автономный квадрокоптер с нуля: PID и грабли / Хабр

Автономный квадрокоптер с нуля: PID и грабли / Хабр Вертолеты

Что такое квадрокоптер и для чего это надо

Мультироторы, они же мультикоптеры или просто коптеры, — это беспилотные летательные аппараты, предназначенные для развлечения, съемки фото и видео с воздуха или отработки автоматизированных систем.

Коптеры обычно различают по числу используемых моторов — начиная от бикоптера с двумя моторами (как GunShip из фильма «Аватар») и заканчивая октакоптером с восемью. На самом деле число моторов ограничено только твоей фантазией, бюджетом и возможностями полетного контроллера.

Классическим вариантом является квадрокоптер с четырьмя моторами, расположенными на перекрещивающихся лучах. Такую конфигурацию еще в 1920 году попытался соорудить француз Этьен Омишен (Étienne Oehmichen), и в 1922 году у него это даже получилось. По сути, это самый простой и дешевый вариант сделать летательный аппарат, способный без особых проблем поднимать в воздух небольшие камеры вроде GoPro.

Безопасность

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

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

Смотрите про коптеры:  Собираем самодельный квадрокоптер

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

Бортовая электроника


Основной компонент, который мы разрабатывали самостоятельно, — плата стабилизации. Изначально она была основана на платформе Arduino Uno, потом заменили на более мощную Due, что позволило увеличить частоту ПИД-регуляторов с 40Гц до 66.(6)Гц.

Пропеллеры коптера приводятся в движение компактными бесколлекторными двигателями в связке со стандартными контроллерами оборотов — ESC. Мы используем ESC с изменённой прошивкой.

Для питания всей системы используется литий-полимерный аккумулятор (3S). Из соображений безопасности мы решили сделать систему мониторинга напряжения на аккумуляторе. В штатном режиме использования аккумуляторов система ведёт себя достаточно стабильно. Однако на начальных этапах работы мы наблюдали эффекты, вызванные неоптимальным использованием батарей:

Для наших целей ESC было решено перепрограммировать. Благодаря использованию прошивки tgy (от SimonK) мы добились уменьшения задержки системы на пути от центрального контроллера до двигателей. В результате компоненты ПИД и угловая скорость стали более синусоидальными, а поведение всей системы приблизилось к поведению математической модели.

Для измерения динамических параметров используются следующие датчики:

Бортовой компьютер и сенсоры

Выбор полетных контроллеров для коптеров очень велик — начиная от простого и дешевого KapteinKUK и нескольких open source проектов под Arduino-совместимые контроллеры до дорогого коммерческого DJI Wookong. Если ты настоящий хакер, то закрытые контроллеры тебя не должны сильно интересовать, в то время как открытые проекты, да еще и основанные на популярной ардуинке, привлекут многих программистов. О возможностях любого полетного контроллера можно судить по используемым в нем датчикам:

• гироскоп позволяет удерживать коптер под определенным углом и стоит во всех контроллерах; • акселерометр помогает определить положение коптера относительно земли и выравнивает его параллельно горизонту (комфортный полет); • барометр дает возможность удерживать аппарат на определенной высоте.

Смотрите про коптеры:  Как подключить дрон к телефону через Wi-Fi

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

К установке компаса стоит подойти внимательно, так как на его показания сильно влияют расположенные рядом металлические объекты или силовые провода, из-за чего «мозги» не смогут определить верное направление движения; • сонар или УЗ-дальномер используется для более точного удержания высоты и автономной посадки; • оптический сенсор от мышки используется для удержания позиции на малых высотах; • датчики тока определяют оставшийся заряд аккумулятора и могут активировать функции возврата на точку старта или приземление.

Сейчас существует три основных открытых проекта: MultiWii, ArduCopter и его портированная версия MegaPirateNG. MultiWii самый простой из них, для запуска требует Arduino с процессором 328p, 32u4 или 1280/2560 и хотя бы одним датчиком-гироскопом. ArduCopter — проект, напичканный всевозможным функционалом от простого висения до выполнения сложных маршрутных заданий, но требует особого железа, основанного на двух чипах ATmega.

MegaPirateNG — это клон ArduCopter, который способен запускаться на обычной ардуине с чипом 2560 и минимальным набором датчиков из гироскопа, акселерометра, барометра и компаса. Поддерживает все те же возможности, что и оригинал, но всегда догоняет в развитии.

Продвинутый девяти- канальный пульт
Продвинутый девяти-
канальный пульт

С железом для открытых проектов аналогичная ситуация, как и с рамами для коптера, то есть ты можешь купить готовый контроллер или собрать его самостоятельно с нуля или на основе Arduino. Перед покупкой стоит всегда обращать внимание на используемые в плате датчики, так как развитие технологий не стоит на месте, а старье китайцам как-то надо распродать, к тому же не все сенсоры могут поддерживаться открытыми прошивками.

https://www.youtube.com/watch?v=kEF0EgohqC0

Наконец, стоит упомянуть еще один компьютер — PX4, отличающийся от клонов Arduino тем, что у него есть UNIX-подобная операционная система реального времени, с шеллом, процессами и всеми делами. Но надо предупредить, что PX4 — платформа новая и довольно сырая. Сразу после сборки не полетит.

Настройка полетных параметров, как и программы настройки, очень индивидуальна для каждого проекта, а теория по ней могла бы занять еще одну статью, поэтому вкратце: почти все прошивки для мультикоптеров основаны на PID-регуляторе, и основной параметр, требующий вмешательства, — пропорциональная составляющая, обозначаемая как P или rateP.

Безопасность

Все новички, думая о безопасности, вспоминают AR.Drone и его защиту винтов. Это хороший вариант, и он работает, но только на мелких и легких аппаратах, а когда вес твоего коптера начинает приближаться к двум килограммам или давно перевалил за эту цифру, то спасти может только прочная железная конструкция, которая будет весить очень много и, как ты понимаешь, сильно уменьшит грузоподъемность и автономность полета. Поэтому лучше сперва тренироваться подальше от людей и имущества, которое можно повредить, а уже по мере улучшения навыков защита станет и не нужна. Но даже если ты пилот со стажем, то не забывай о технике безопасности и продумывай возможные негативные последствия твоего полета при нештатных ситуациях, особенно при полетах в людных местах. Не стоит забывать, что сбой контроллера или канала связи может привести к тому, что аппарат улетит от тебя далеко, и тогда для поиска может пригодиться GPS-трекер, установленный заранее на коптер, или же простая, но очень громкая пищалка, по звуку которой ты сможешь определить его местоположение. Настрой и заранее проверь функцию fail safe твоего полетного контроллера, которая поможет приземлиться или вернуть коптер на точку старта при потере сигнала с пульта.

Грабли

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

С одной стороны, существует минимальная мощность, которую уменьшить нельзя, или моторы просто остановятся. С другой, уменьшение мощности может быть необходимо для правильной работы алгоритма. Если мощность (throttle) уменьшить слишком сильно, ПИД может «зашкаливать» в нижнюю сторону. Чтобы решить эту проблему, мы ограничиваем доступные пилоту мощности.

Автономный квадрокоптер с нуля: PID и грабли / Хабр
Другая опасность — влияние побочных вибраций от моторов на Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

Калибровка пид

Для углов Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

Хотя такой подход не самый эффективный (мы не знаем «срок годности» коэффициентов количественно и считаем их константами), на практике задача стабилизации коптера в полёте была нами решена. Правда, возникла проблема с управлением, но об этом позднее.

Матчасть

Определим невязку — разницу между требуемым и реальным значением некоторой величины:

Автономный квадрокоптер с нуля: PID и грабли / Хабр

 — требуемое значение величины (угол с джойстика),

Автономный квадрокоптер с нуля: PID и грабли / Хабр

 — текущее значение величины (угол с датчика).

Зададим момент сил для угла Автономный квадрокоптер с нуля: PID и грабли / Хабр

где

Автономный квадрокоптер с нуля: PID и грабли / Хабр

 — пропорциональная,

Автономный квадрокоптер с нуля: PID и грабли / Хабр

 — интегральная,

Автономный квадрокоптер с нуля: PID и грабли / Хабр

 — дифференциальная составляющие.


Знак минус говорит о том, что при положительных

Автономный квадрокоптер с нуля: PID и грабли / Хабр

воздействие направлено против отклонения.

В чём смысл этой формулы? Напишем уравнение динамики, положив Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

 — момент инерции.

Для простоты уберём интегральную составляющую (Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

где

Т. е. чем больше пропорциональная составляющая, тем более «резкой» будет реакция на воздействие (больше амплитуда). Чем больше дифференциальная составляющая, тем быстрее будет происходить затухание (больше декремент).

Из модели затухающих колебаний получаем выражение для коэффициента затухания:

Из возможных решений уравнения нам подходит режим, близкий к критическому (граница апериодичности,

Автономный квадрокоптер с нуля: PID и грабли / Хабр

) — нет отрицательного «перелёта» графика, переходный процесс короткий. Как видно, критический режим задается всего одним соотношением на коэффициенты ПИД-регулятора.

Интегральная составляющая устраняет статическую ошибку. Пусть невязка Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

Более подробный анализ уравнения ПИД-регулятора можно найти в других статьях: раз, два.

Моторы и пропеллеры

Из-за вращения моторов в разные стороны приходится использовать разнонаправленные пропеллеры: прямого вращения (против часовой) и обратного вращения (по часовой). Обычно используются двухлопастные пропеллеры, их легче балансировать и найти магазинах, в то время как трехлопастные дадут больше тяги при меньшем диаметре винта, но доставят много головной боли при балансировке.

Плохой (дешевый и неотбалансированный) пропеллер может развалиться в полете или вызвать сильные вибрации, которые передадутся на датчики полетного контроллера. Это приведет к серьезным проблемам со стабилизацией и вызовет сильное смазывание и «желе» на видео, если ты снимаешь что-то с коптера или летаешь с видом от первого лица.

Регулятор скорости,  он же ESC
Регулятор скорости,
он же ESC

У любого пропеллера есть два основных параметра: диаметр и шаг. Их обозначают по-разному: 10 × 4.5, 10 × 45 или просто 1045. Это означает, что диаметр пропеллера 10 дюймов, а его шаг 4,5 дюйма. Чем длиннее пропеллер и больше шаг, тем большую тягу он сможет создавать, но при этом повысится нагрузка на мотор и увеличится потребление тока, в результате он может сильно перегреться и электроника выйдет из строя.

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

Также чем больше винт, тем больше его инерция. Если нужна маневренность, лучше выбрать винты с большим шагом или трехлопастные. Они при том же размере создают тягу в 1,2–1,5 раза больше. Понятно, что винты и скорость их вращения нужно подбирать так, чтобы они смогли создать тягу большую, чем вес аппарата.

А вот и моторчик  на 850 kV
А вот и моторчик на 850 kV

И наконец, бесколлекторные моторы. У моторов есть ключевой параметр — kV. Это количество оборотов в минуту, которые сделает мотор, на поданный вольт напряжения. Это не мощность мотора, это его, скажем так, «передаточное число». Чем меньше kV, тем меньше оборотов, но выше крутящий момент.

Чем больше kV при той же мощности, тем больше оборотов и ниже момент. При выборе мотора ориентируются на то, что в штатном режиме он будет работать при мощности 50% от максимальной. Не стоит думать, что чем kV больше — тем лучше, для коптеров с типичной 3S-батареей рекомендуемое число находится в диапазоне от 700 до 1000 kV.

Не видит пульт

Когда коптер не подключается к пульту — чаще всего это связано с неполадками питания. Например:

  • батареи в пульте полностью разряжены, дрон не находит пульт;
  • на контактных площадках батарейного отсека пульта образовалась ржавчина из-за попадания влаги;
  • текущее напряжение батарей недостаточно для связи выше 30 метров.

Первое, что нужно делать при отсутствии связи с пультом — заменить батарейки. Если на контактах внутри отсека обнаружена ржавчина, она счищается.

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

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

Не вращается один или несколько двигателей

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

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

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

В случае с бесколлекторными двигателями поломка может объясняться неисправностью электроники. Если не запускается бесколлекторный движок, то, скорее всего, из строя вышел электронный регулятор скорости (ESC). Подключите к исправному мотору тот ESC, который необходимо проверить.

Обеспечение безопасности во время полёта¶

  1. Во время полета коптера четко выполнять все указания преподавателя
    или лётного инструктора.
  2. Учебные полеты производить строго в обозначенной зоне и не допускать
    вылета за ее пределы. В случае если вы ее нарушили, незамедлительно
    вернуть коптер в обозначенное летное пространство или совершить
    посадку на месте, отключите двигатели, пульт дистанционного
    управления (Disarm) и вернитесь на исходную стартовую позицию.
  3. При обучении полетам летать на уровне ниже собственного роста и рядом
    с собой на расстоянии, на котором видна ориентация коптера в
    пространстве. В случае сомнений ориентации коптера немедленно
    совершить посадку на месте, отключите двигатели, пульт дистанционного
    управления (Disarm) и вернитесь на исходную стартовую позицию.

Примечание: для определения ориентации УМК «Пионер» на полетном
контроллере изображена специальная метка, которая подсказывает, где у
коптера находится носовая часть. Однако в процессе полета разглядеть ее
практически не представляется возможным, и в случае изменения курса по
рысканию становится достаточно просто перепутать кормовую и носовую
часть, что приводит к инверсии управления в следствии к быстрой
дезориентация пилота, потере управления, аварии и привести к травмам.

  1. При управлении коптером запрещаются резкие движения стиками, все
    движения выполняются плавно и аккуратно. Старайтесь не отрывать ваши
    пальцы от стиков управления.
  2. Летную практику осуществлять с предельной осторожностью и выполнять
    элементы пилотирования, в которых нет сомнений. Запрещается выполнять
    фигуры пилотажа, в успехе которых возникают сомнения, и фигуры,
    связанные с высоким риском аварийности.

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

  1. Соблюдайте скоростной режим. Скорость полёта коптера держать в
    пределах скорости идущего человека.

Примечание: Инерция – свойство тел сохранять состояние покоя или
движения, пока какая-нибудь внешняя сила не изменит это состояние.
Коптер продолжит движение в заданном направлении, даже если переместить
стик направления в центральное положение.

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

  1. Вернуть коптер к месту посадки к рассчитанному времени, не допускать
    полной разрядки аккумулятора в полёте.
  2. Посадку осуществлять только на ровную открытую площадку вдали от
    препятствий.
  3. После запланированной посадки выполнить действия следуя правилам
    «Процедура выключения» в разделе базовые процедуры.

Первая авария

Слишком большая дифференциальная составляющая на практике приводит к автоколебаниям, чего не должно быть в теории. Почему? Уберём все составляющие, кроме дифференциальной, и решим уравнение:

Автономный квадрокоптер с нуля: PID и грабли / ХабрАвтономный квадрокоптер с нуля: PID и грабли / Хабр

т. е. величина

Автономный квадрокоптер с нуля: PID и грабли / Хабр

превращается в линейную комбинацию

Автономный квадрокоптер с нуля: PID и грабли / Хабр

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

Автономный квадрокоптер с нуля: PID и грабли / Хабр

коэффициенты линейной комбинации могут быть такими, что возникнут незатухающие автоколебания.

Автономный квадрокоптер с нуля: PID и грабли / Хабр
Также результат работы составляющих ПИД приходится ограничивать по модулю. Иначе значение Автономный квадрокоптер с нуля: PID и грабли / Хабр

Компромиссом является установка не слишком маленьких коэффициентов в совокупности с введением ограничения сверху на все три составляющие: пропорциональную, интегральную и дифференциальную.

Стоит сказать, что реальная коррекция в почти горизонтальном положении — около 1–2 попугаев процентов мощности моторов (полётная мощность около 60%).

Автономный квадрокоптер с нуля: PID и грабли / Хабр
Рассмотрим решение уравнения второго порядка (1), которое в одном из случаев является затухающей синусоидой.

На практике действительно получается что-то похожее (пример справа). Для демонстрации коэффициенты специально ухудшены для увеличения времени затухания. Оригинальную прошивку ESC пришлось заменить, т. к. она вносила существенную задержку, из-за которой математическая модель плохо описывала реальную систему.

Автономный квадрокоптер с нуля: PID и грабли / Хабр
Поскольку Автономный квадрокоптер с нуля: PID и грабли / Хабр

Питание и контроллеры питания

Капитан подсказывает: чем больше мощность мотора, тем больше батарейка ему нужна. Большая батарейка — это не только емкость (читай, время полета), но и максимальный ток, которая она отдает. Но чем больше батарейка, тем больше и ее вес, что вынуждает скорректировать наши прикидки относительно винтов и моторов.

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

При выборе батареи стоит обращать внимание на три ее параметра: емкость, измеряемую в миллиампер-часах, максимальный ток разряда в емкостях аккумулятора (С) и число ячеек (S). Первые два параметра связаны между собой, и при их перемножении ты узнаешь, сколько тока сможет отдавать этот аккумулятор продолжительное время.

Например, твои моторы потребляют 10 А каждый и их четыре штуки, а батарея имеет параметры 2200 мА · ч 30/40C, таким образом, коптеру требуется 4 • 10 A = 40 A, а батарея может выдавать 2,2 A • 30 = 66 A или 2,2 А • 40 = 88 А в течение 5–10 секунд, что явно будет достаточно для питания аппарата.

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

Число ячеек (S) указывает на количество LiPo-элементов в батарее, каждый элемент выдает 3,7 В, и, например, 3S-аккумулятор будет отдавать примерно 11,1 В. Стоит обращать внимание на этот параметр, так как от него зависят скорость оборотов моторов и тип используемых регуляторов.

Элементы батареи объединяют последовательно или параллельно. При последовательном включении увеличивается напряжение, при параллельном — емкость. Схему подключения элементов в батарее можно понять по ее маркировке. Например, 3S1P (или просто 3S) — это три последовательно подключенных элемента.

Однако моторы подключаются к батарее не напрямую, а через так называемые регуляторы скорости. Регуляторы скорости (они же «регули» или ESC) управляют скоростью вращения моторов, заставляя твой коптер балансировать на месте или лететь в нужном направлении.

Большинство регуляторов имеют встроенный стабилизатор тока на 5 В, от которого можно питать электронику (в частности, «мозг»), можно использовать отдельный стабилизатор тока (UBEC). Выбираются контроллеры скорости исходя из потребления мотором тока, а также возможности перепрошивки.

Обычные регули довольно медлительны в плане отклика на поступающий сигнал и имеют множество лишних настроек для коптеростроительства, поэтому их перепрошивают кастомными прошивками SimonK или BLHeli. Китайцы и тут подсуетились, и часто можно встретить регуляторы скорости с уже обновленной прошивкой.

Не забывай, что такие регули не следят за состоянием аккумулятора и могут разрядить его ниже 3,0 В на банку, что приведет к его порче. Но в то же время на обычных ESC стоит переключить тип используемого аккумулятора с LiPo на NiMH или отключить уменьшение оборотов при разрядке источника питания (согласно инструкции), чтобы под конец полета внезапно не отключился мотор и твой беспилотник не упал.

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

Два силовых провода, идущих от регулятора, надо подключить к батарейке. НЕ ПЕРЕПУТАЙ ПОЛЯРНОСТЬ! Вообще, для удобства регуляторы подключают не к самой батарейке, а к так называемому Power Distribution Module — модулю распределения энергии. Это, в общем-то, просто плата, на которой припаяны силовые провода регуляторов, распаяны разветвления для них и припаян силовой кабель, идущий к батарее.

Повышенный шум работы и нестабильный полет

Если коптер издает повышенный шум и неожиданно заваливается набок при полете, следует проверить состояние лопастей. Они деформируются и повреждаются при столкновении с преградами или грубой посадке. Коптер нужно выключить и внимательно осмотреть пропеллерные блоки.

Совет! Повреждение лопасти удобно определить, если расположить общую поверхность пропеллеров на уровне глаз.

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

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

Предполетная подготовка коптера в помещении¶

Перед каждым полетом ответственно выполняйте все проверки. Формальное и
безответственное выполнение проверок приводит к разрушению или потере
коптера и серьезным травмам.

Перед каждым взлетом, даже если не было аварий необходимо проверять:

  1. Пропеллеры – проверить правильность установки и что вращению ничего
    не мешает, при необходимости – устранить помехи. Осмотреть на наличие
    повреждений, и убедиться в отсутствии зазубрин, вмятин, трещин, при
    необходимости – произвести замену пропеллеров, имеющие повреждения.
    Убедиться в затянутости гаек пропеллеров.
  2. Рама и элементы защиты – убедиться в отсутствии повреждений и
    проверить затянутость всех винтов. При необходимости – произвести
    замену или ремонт поврежденных элементов рамы или защиты.
  3. Аккумуляторы – убедиться в отсутствии механических повреждений
    защитной пленки, вздутий и характерного запаха химической реакции.
    При появлении малейших подозрений на повреждения, не используйте
    аккумулятор, и замените на исправный.
  4. Полезная нагрузка – в случае использования полезной нагрузки
    необходимо убедиться в надежности установки и ее фиксации (камера,
    модуль захвата груза), а также отсутствии повреждений.
  5. Провода – убедиться в отсутствии выпирающих и незакрепленных
    проводов, при необходимости зафиксировать и визуально убедиться в
    том, что пропеллеры не будут их касаться.

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

Обеспечение безопасности во время полёта

  1. Во время полета коптера четко выполнять все указания преподавателя
    или лётного инструктора.
  2. Учебные полеты производить строго в обозначенной зоне и не допускать
    вылета за ее пределы. В случае если вы ее нарушили, незамедлительно
    вернуть коптер в обозначенное летное пространство или совершить
    посадку на месте, отключите двигатели, пульт дистанционного
    управления (Disarm) и вернитесь на исходную стартовую позицию.
  3. При обучении полетам летать на уровне ниже собственного роста и рядом
    с собой на расстоянии, на котором видна ориентация коптера в
    пространстве. В случае сомнений ориентации коптера немедленно
    совершить посадку на месте, отключите двигатели, пульт дистанционного
    управления (Disarm) и вернитесь на исходную стартовую позицию.

Примечание: для определения ориентации УМК «Пионер» на полетном
контроллере изображена специальная метка, которая подсказывает, где у
коптера находится носовая часть. Однако в процессе полета разглядеть ее
практически не представляется возможным, и в случае изменения курса по
рысканию становится достаточно просто перепутать кормовую и носовую
часть, что приводит к инверсии управления в следствии к быстрой
дезориентация пилота, потере управления, аварии и привести к травмам.
Для того, чтобы в процессе полета всегда понимать, где у коптера носовая
часть рекомендуется наклеить цветную ленту на элементы защиты коптера.

  1. При управлении коптером запрещаются резкие движения стиками, все
    движения выполняются плавно и аккуратно. Старайтесь не отрывать ваши
    пальцы от стиков управления.
  2. Летную практику осуществлять с предельной осторожностью и выполнять
    элементы пилотирования, в которых нет сомнений. Запрещается выполнять
    фигуры пилотажа, в успехе которых возникают сомнения, и фигуры,
    связанные с высоким риском аварийности.

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

  1. Соблюдайте скоростной режим. Скорость полёта коптера держать в
    пределах скорости идущего человека.

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

  1. Вернуть коптер к месту посадки к рассчитанному времени, не допускать
    полной разрядки аккумулятора в полёте.
  2. Посадку осуществлять только на ровную открытую площадку вдали от
    препятствий.
  3. После запланированной посадки выполнить действия следуя правилам
    «Процедура выключения» в разделе базовые процедуры.

Программное обеспечение

Автономный квадрокоптер с нуля: PID и грабли / Хабр

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

В качестве динамического датчика мы использовали MPU-6050 из-за его вычислительных возможностей. Встроенный процессор (DMP) способен частично обрабатывать данные с датчиков, что позволяет разгрузить центральный контроллер. Но оказалось, что надёжных библиотек для работы с этим устройством под Arduino не существует.

Решение jrowberg’а привело к проблемам при использовании на сильно загруженном микроконтроллере. Код в примере опирается на синхронность считывания данных. FIFO-буфер датчика, в который записываются посчитанные величины, переполняется в случае несвоевременного считывания.

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

его размер 1024, что не делится на 42 — размер пакета. Поэтому, когда буфер переполняется, в начале FIFO находится часть какого-то постороннего пакета. Иными словами, начиная с определенного момента структура нарушается: начало FIFO не совпадает с началом пакета, и считать корректные данные невозможно.

Синхронизация пульта с коптером

Здесь вам поможет инструкция к модели вашего дрона. Для примера: для трёхостного коптера достаточно включить ПДУ (Пульт Дистанционного Управления) и подождать 10 секунд. Короткие звуковые сигналы с длинным сигналом в конце означают, что пульт успешно синхронизировался.

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

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

На этом у нас всё. Не забудьте подписаться на нас в социальных сетях.

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

Телеметрия

Дистанционное управление реализовано в двух режимах (для обеспечения более гибкого процесса разработки):

  1. С помощью модулей xBee Pro в конфигурации «коптер  ПК».
  2. С помощью выделенной радиочастоты (2.4ГГц) в конфигурации «пульт ДУ ↦ коптер».

Помимо управления через пульт ДУ происходит пересылка критических данных между коптером и ПК в режиме реального времени, для чего используются xBee Pro и приложение собственной разработки (см. скриншот). На компьютере можно видеть значение углов и угловой скорости, напряжение на аккумуляторе, мощность двигателей.

Данные, пересылаемые между коптером и ПК:

  • ПК ↦ Коптер: канал управления (ПК/пульт ДУ), мощность моторов, настройка для включения/выключения стабилизации, коэффициенты ПИД и ограничения;
  • Коптер ↦ ПК: углы, угловая скорость, компоненты Автономный квадрокоптер с нуля: PID и грабли / Хабр, Автономный квадрокоптер с нуля: PID и грабли / Хабр, Автономный квадрокоптер с нуля: PID и грабли / Хабр, данные с джойстика (мощность 3 угла), мощности моторов, напряжение на аккумуляторе.

Благодаря датчику от InvenSense, начальная обработка данных с датчиков происходит на встроенном процессоре (DMP). Мы разгружаем плату стабилизации, которая может использовать в качестве вычислителя даже маломощный AVR-микроконтроллер.

Теория полета

В теории полета (аэродинамике) принято выделять три угла (или три оси вращения), которые задают ориентацию и направление вектора движения летательного аппарата. Проще говоря, летательный аппарат куда-то «смотрит» и куда-то двигается. Причем двигаться он может не туда, куда «смотрит».

Три эти угла принято называть крен, тангаж и рыскание. Крен — это поворот аппарата вокруг его продольной оси (оси, которая проходит от носа до хвоста). Тангаж — это поворот вокруг его поперечной оси (клюет носом, задирает хвост). Рыскание — поворот вокруг вертикальной оси, больше всего похожий на поворот в «наземном» понимании.

schema
Основные маневры (слева направо): движение по прямой, крен/тангаж и рыскание

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

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

Если мы увеличим обороты одного винта, вращающегося по часовой стрелке, и уменьшим обороты другого винта, вращающегося по часовой стрелке, то мы сохраним общий момент вращения и рыскание по-прежнему будет нулевым, но крен или тангаж (в зависимости от того, где мы сделаем ему «нос») изменятся.

А если мы увеличим обороты на обоих винтах, вращающихся по часовой стрелке, а на винтах, вращающихся против часовой стрелки, уменьшим (чтобы сохранить общую подъемную силу), то возникнет вращающий момент, который изменит угол рыскания. Понятное дело, что все это будем делать не мы сами, а бортовой компьютер, который будет принимать сигнал с ручек управления, добавлять поправки с акселерометра и гироскопа и крутить винтами, как ему надо.

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

Стоит запомнить, что все характеристики связаны между собой и, к примеру, увеличение емкости аккумулятора приведет к увеличению веса и, как следствие, к уменьшению времени полета. Чтобы узнать, сколько примерно твоя конструкция будет висеть в воздухе и сможет ли вообще оторваться от земли, существует хороший онлайн-калькулятор ecalc.ch.

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

PX4 — бортовой ком- пьютер с полноценной UNIX-системой
PX4 — бортовой компьютер с полноценной UNIX-системой

Типы калибровки

Существует 3 типа калибровки:

  1. Механическая – её используют в случае, если отклонение от необходимой оси не слишком большое. Осуществляется путём подкручивания регулятора тяги коптера.
  2. Автоматическая – осуществляется настройкой аппарата с пульта управления. Нужна, если требуется сместить триммер на 5 позиций или больше. Калибровка зависит от пульта и контроллера, так что без мануала тут не обойтись.
  3. При помощи программного обеспечения mission planer. Программа заточена для работы с платами Ardupilot. Все необходимые настройки задаются программно. Обычно производится перед первым полётом собранного дрона.

Для калибровки выполните следующие действия

  • Включите передатчик радиоуправления (само радиоуправление должно быть отлажено). Выставьте ручку газа на всю.
  • Возьмите Li-Po аккумулятор и подключите к разъёму Power-модуля, чтобы включить автопилот.
  • Далее APM начнёт моргать красными и синими светодиодами. Это значит, что он готов для калибровки после следующего включения. Отключите аккумулятор от APM.
  • Опять включите питание. Регуляторы издадут стандартный сигнал (число сигналов равно числу банок в батарее), а после издадут двойной короткий сигнал, подтверждающий калибровку по максимальной скорости.
  • Опустите ручку газа до минимального положения. Один длинный сигнал – откалибровано по минимальной скорости.
  • Теперь регуляторы для APM8 успешно откалиброваны. Можете проверить работу моторов.
  • Уберите газ на минимальное состояние и выключите питание Ardupilot.

Управление

Немного про радиоаппаратуру. Сейчас практически все передатчики для летающих моделей работают на частоте 2,4 ГГц. Они достаточно дальнобойные, и этот частотный диапазон не так зашумлен, как, например, 900 МГц. Для полета вообще-то достаточно четырех каналов: газ, рыскание, тангаж, крен. Ну а восьми каналов точно хватит и на что-нибудь еще.

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

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

Управление поворотом (рысканье)

Если использовать одинаковые пропеллеры, вращающиеся в одну сторону — сам аппарат будет закручиваться в горизонтальной плоскости в противоположном направлении. Чтобы устранить этот эффект — используют два «правых» пропеллера и два «левых», и вращают их в разные стороны.

Таким образом, они будут взаимно компенсировать рысканье аппарата. Если же нарушить этот баланс — коптер начнёт поворачиваться в какую-то сторону (по закону сохранения момента импульса). То есть, чтобы изменить рысканье коптера — нужно замедлить одну диагональную пару винтов, и ускорить другую пару, в зависимости от требуемого знака рысканья и направлений вращения винтов. К примеру, чтобы повернуть направо — нужно ускорить «левые» винты и замедлить «правые».

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

**Статьи цикла:

** 1. Начинаем проект квадрокоптера

Управление тягой винта

Для управления скоростью мотора у регулятора есть вход ШИМ-сигнала. Точнее говоря, этот сигнал выглядит как ШИМ, но важна лишь длительность «1» в нём. Период повторения находится в пределах 10-20мс, и не очень важен — разве что маленький период позволит чаще менять скорость и делает систему управления более отзывчивой.

Генерировать такой сигнал очень удобно, используя практически любой из таймеров STM32 (кроме базовых). Каждый таймер STM32 имеет по 4 порта ввода-вывода, которые в режиме ШИМ включаются на «выход»; они имеют общий период повторения, но разную скважность.

То есть, настраиваем один из таймеров (я использую TIM3) на ШИМ, назначаем ножки (в STM32F3 очень удобная система перенаправления этих ножек, доступны по два-три варианта для каждого комплекта), устанавливаем общий период, и нам остаётся лишь обновлять значения скважностей в разных каналах.

Скорость мотора будет примерно пропорциональной длительности «1»: 0% при 0.5мс и 100% при 2.4мс. Эти значения крайне примерные, обязательно нужно проверить их на живом моторе и ESC.

Зависимость тяги пропеллера от поданного сигнала нелинейна по нескольким причинам:

  1. неизвестна программа ESC — должна быть линейная зависимость скорости от сигнала, но это тяжело проверить.
  2. пропеллер имеет приблизительно квадратичную зависимость тяги от скорости вращения.
  3. при большой нагрузке проседает напряжение батареи, и на всех проводах тоже теряется бОльшее напряжение.

Я думаю, что можно примерно оценивать зависимость «сигнал-тяга» как квадратичную.

Комплекс «контроллер мотор пропеллер» обычно называется винтомоторной группой (ВМГ) — потому что для наших нужд нет смысла рассматривать эти детали в отдельности, и ВМГ для нас это просто чёрный ящик со входом «газ».

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector