- Построение БПЛА на базе полетного контроллера APM 2.6

Построение беспилотного летательного аппарата на базе полетного контроллера APM 2.6 (часть 1)

Практика для студентов. Мясищев А.А.

В последнее время высокую степень интереса вызывают дроны или беспилотные летающие роботы, построенные на базе мультикоптеров. Среди них наиболее распространенным является четырехмоторный коптер - квадрокоптер. Сейчас они используются для исследования местности, для проведения спасательных операций МЧС, в работе пожарных служб, военной разведки. Они могут быть использованы для доставки небольших грузов на расстояние не более 5-7км со скоростью 30-40км/час. Применяются фотографами и операторами для съемок пейзажей, архитектуры, видеороликов. В настоящее время разработано большое количество полетных контроллеров с программным обеспечением. Это контроллеры Multiwii, ArduCopter (APM 2.6, APM 2.8), контроллеры DJI (Naza-M Lite, DJI Naza-M V2, DJI Wookong), MicroKopter, Zero UAV X4/X6, AutoQuad, KK., XAircraft и др. Целью работы является построение БПЛА, который способен выполнять следующие основные полетные режимы:

1. Stabilize — в этом режиме выполняется взлет и посадка. Задействованы гироскоп и акселерометр для удержания горизонта. Компас используется дополнительно для контроля и коррекции.

2. AltHold — режим удержания высоты. В данном режиме добавляется использование барометра, который способствует удержанию высоты по давлению воздуха.

3. Land — режим автоматической посадки в текущем положении. Используется барометр для контроля высоты.

4. Simple — режим, который позволяет «забыть» об ориентации БПЛА относительно пилота. В данном режиме самым важным является компас.

5. Loiter — режим удержания точки (по координате и высоте). Использует GPS. Режим хорошо подходит для фото и видеосъемки.

6. RTL (Return To Launch) — возврат домой, в точку взлета. Контроллер запоминает точку, где произведен Arming и позволяет вернуть коптер в эту точку.

7. Auto — полет по точкам миссии. Миссия может создаваться вручную через программное обеспечение наземной станции перед полетом.

8. Failsafe — режим спасения, который отправляет БПЛА домой (в точку, где произведен запуск двигателей - Arming). Например, в случае потери связи с наземной станцией.

БПЛА должен быть построен на базе мультикоптера с 4-мя двигателями с рамой типоразмера F450 и расположением моторов QUAD X.

Для решения поставленной задачи необходим правильный выбор полетного контроллера совместно с программным обеспечением для его функционирования. Только небольшая часть перечисленных выше контроллеров в состоянии выполнить поставленную задачу. Например, самый дешевый контроллер KK имеет минимальный набор датчиков (3-х осевой гироскоп), микроконтроллер ATmega168 малой производительности, ограниченной памятью и периферией, что позволяет ему реализовать лишь режим Stabilize. Контроллер DJI Wookong известной китайской частной компании SZ DJI Technology Co., Ltd. (Dajiang Innovation Technology Co.) позволяет выполнять все перечисленные полетные режимы, однако он имеет высокую стоимость и закрытое программное обеспечение. Например, невозможно изменить код программы в случае установки дополнительных устройств, которые оказывали бы влияние на работу двигательной установки. В таблице 1 представлены возможности наиболее распространенных полетных контроллеров.

Таблица 1. Возможности полетных контроллеров

Относительно недорогими с открытым исходным кодом являются контроллеры MultiWii(на базе ATmega2560) и ArduCopter, которые поддерживают все заданные полетные режимы (в программном обеспечении MultiWii явно реализована возможность удержания позиции и возврат в точку вылета с помощью GPS. Полет по точкам явно не документирован. Однако контроллеры MultiWii выполняют полет по точкам с использованием прошивки MegapirateNG. Но это портированный ArduCopter, который выполняет полет по точкам в случае использования ПО наземной станции Mission Planner). Поэтому в работе рассматривается построение БПЛА на базе ArduCopter. В настоящее время проект ArduCopter поддерживает два типа контроллеров - APM 2.x и Pixhawk. Представлены также новые разработки - это контроллеры NAVIO+ и NAVIO2 на основе одноплатных мини компьютеров Raspberry Pi 2, Raspberry Pi 3, работающих на базе операционной системы Linux. Но они находятся в стадии экспериментальной отработки. Контроллер APM 2.x построен на основе 8-и битного микроконтроллера ATmega2560, Pixhawk - на основе 32-х разрядного высокопроизводительного процессора STM32F427 со встроенным сопроцессором. Второй контроллер имеет существенные преимущества по производительности, объему памяти по сравнению с первым, однако набор полетных режимов у них одинаков и контроллер Pixhawk имеет преимущество для построения скоростных летательных аппаратов с дальнейшим расширением их функциональных возможностей в будущем. Стоимость Pixhawk примерно в 1.6...2раза выше APM 2.x. Поэтому в работе рассматривается использование контроллера APM 2.5/2.6.

На рисунке 1 представлен контроллер APM 2.5/2.6 с обозначением входящих в него компонентов.

Рис. 1. Полетный контроллер APM 2.5/2.6

Контроллер включает в себя:

1. MPU-6000 - 3-х осевой гироскоп и 3-х осевой акселерометр для удержания горизонта.

2. Микроконтроллер ATmega32U2, для выполнения функций PPM encoder и USB интерфейса.

3. Барометрический датчик для удержания высоты MS5611.

4. Флешь память 4МБайт для записи полетных данных (ведение логов полета).

5. Микроконтроллер ATmega2560 для управления полетом.

Отличие APM 2.6 от APM 2.5 в том, что в первом отсутствует компас. Для его лучшей работы он вынесен во внешний модуль и установлен с GPS приемником (рисунок 2).

Рис.2. GPS модуль u-blox NEO-6M с компасом

Для управления бесколлекторными двигателями используются регуляторы ESC(Electronic Speed Controller) модели Hobbypower ESC-30A. Функциональная схема подключения этих регуляторов к полетному контроллеру представлена на рисунке 3. Они управляются сигналом прямоугольной формы с длительностью импульса от 1мс до 2мс, которая определяет скорость вращения двигателей.

Рис.3. Схема подключения регулятора двигателя и его функционирование.

На рисунке 4 представлен регулятор Hobbypower ESC-30A с входящими туда электронными компонентами.

Рис.4. Регулятор Hobbypower ESC-30A

В работе в качестве основного источника питания используются 3 последовательно подключенные высокотоковые аккумуляторные li-ion батареи типоразмера 18650 - SAMSUNG INR18650-25R вместо стандартных литий полимерных батарей (Lipo). Они способны в режиме непрерывного разряда отдавать в нагрузку ток величиной 20А, а при импульсном до 30А, что достаточно для полетных режимов AltHold, Loiter, Land, RTL и полета по точкам в режиме Auto со скоростью до 5м/с. Используемые регуляторы по умолчанию имеют настройки для использования Lipo, в частности выполняют автоматическое выключение двигателей при снижении напряжения на одну батарею до 3.15В. Однако li-ion батареи позволяют снижать напряжение до 2.9В, поэтому требуется перепрограммирование используемых регуляторов ESC. Существует два основных способа программирования ESC - с помощью карты и пульта. Первый способ требует использования специальной карты стоимостью $5-$15, второй требует использования пульта управления БПЛА. В работе используется второй способ программирования.

Рассмотрим существующие программируемые функции, используемые в работе ESC:

1. Тормоз двигателя: вкл/выкл, по умолчанию отключен. При включенном тормозе идет торможение двигателей при их отключении.

2. Тип аккумулятора: Li-хх (литий-ионный или Lipo) / Ni-хх (NiMH или NiCd). По умолчанию Li-хх.

3. Режим отсечки подачи напряжения (Cut-Off Mode): Мягкая Cut-Off (постепенно уменьшить мощность на двигатель) или Cut-Off (полная отсечка выходной мощности). По умолчанию - мягкая Cut-Off.

4. Низкий порог защиты напряжения (Cut-Off Threshold): низкий/средний/высокий, по умолчанию средний.

4.1. Для литиевых батарей, количество аккумуляторных батарей рассчитывается автоматически. Низкий/средний/высокий напряжения отсечки для каждой ячейки следующие: 2.85V/3.15V/3.3V. Например: Для 3 баночных литиевых батарей, когда установлен "средний" порог отсечки, напряжение отсечки будет: 3.15 * 3 = 9.45V.

4.2. Для никелевых батарей, низкий/средний/высокий напряжения отсечки - это 0%/50%/65 при начальном напряжении аккумулятора. Так 0% означает, что функция низкого напряжение отсечки отключена. Например: Для 10 ячеек NiMH аккумулятора, напряжение полностью заряженной составляет 1,44 * 10 = 14,4, когда установлен "средний" порог отсечки, напряжение отсечки будет: 14,4 * 50% = 7,2 В.

5. Старт двигателя: Normal/Soft/Super-Soft. (300 мс / 6s / 12 сек), по умолчанию Normal. Нормальный - является предпочтительным для самолетов. Мягкий или супер-мягкий - предпочтительны для вертолетов, когда необходимо постепенное ускорение вращения пропеллера.

6. Тайминг -. Низкий/Средний/Высокий (3,75 ° / 15 ° / 26,25 °), по умолчанию низкий. Как правило, низкий или средний тайминг подходит для большинства двигателей. Для того чтобы получить более высокую скорость и большую выходную мощность, выбирают высокий тайминг.

Опыт эксплуатации квадрокоптеров показал целесообразным следующий выбор настроек:

Brake: OFF. Тормоз выключен.

Battery Type: Ni-xx(NiMH or NiCd). Не выбирается тип батарей Li-Po, т.к. регулятор остановит моторы, когда напряжение аккумулятора просядет, и БПЛА упадет.

CutOff Mode: Soft-Cut. При плавном выключении мотора контроллер сбрасывает обороты постепенно.

CutOff Threshold: Low. Мотор будет выключен только при достижении минимального напряжения на аккумуляторе.

Start Mode: Normal. Выбираем первое значение из доступных. Мягкий и супер-мягкий старт не рекомендуется.

Timing: MEDIUM. Параметр, от которого зависит мощность и КПД двигателя. Может находится в пределах от 0° до 30°. Физически это электрический угол опережения коммутации обмоток.

Практически программирование выполняется следующим образом:

1. Отключается квадрокоптер и отсоединяются три мотора от регуляторов ESC.

2. Включается передатчик и рукоятка регулирования оборотов двигателя (газ) устанавливается на максимум. После этого включается квадрокоптер.

3. Мотор подключенного регулятора начнет пищать. Сначала два коротких писка, потом мелодия, говорящая о переходе в режим программирования. После этого начинаются сигналы-вопросы и сигналы-ответы.

- сигналы-вопросы - это варианты из точек (коротких сигналов) и тире (длинных): . .. ... .... - -. -.. -- Далее выполняется непосредственное программирование.

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

- две точки это тип аккумулятора. Входим в это меню сбрасыванием газа до нуля, потом дожидаемся двух точек (NiMh аккум.), и возвращаем газ на максимум.

- три точки - режим отсечения. Выбираем Soft-cut, ожидаем одну точки и поднимаем газ до максимума.

- четыре точки - порог отсечки по напряжению аккумулятора. Выбираем одну точку, что для NiMH аккумулятора соответствует 0% от напряжения при старте.

- тире - режим старта. Выбираем Normal, одна точка.

- тире точка - тайминг. Выбираем Medium, две точки.

- тире точка точка - это сброс настроек. Это необходимо пропустить.

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

Рис.5. Значения программируемой функции

Для планирования миссии полета БПЛА по путевым точкам используется программное обеспечение наземной станции Mission Planner. При правильной настройке приемника GPS во вкладке программы FLIGTH PLAN высвечивается карта местности с текущим положением коптера. Далее на карте задаются положение путевых точек с их параметрами (например, высотой полета, временем зависания над точкой, необходимостью выполнения каких-то действий над точкой и т.д.) и в памяти контроллера записывается маршрут. Пример простого маршрута миссии представлен на рисунке 6.

Рис.7. Планирование миссии БПЛА по путевым точкам в ПО Mission Planner

В в этой части не рассматривались вопросы настройки GPS модуля u-blox NEO-6M для работы с контроллером APM 2.6, прошивка PPM энкодера на микросхему Atmega32U2 с целью возможности использования многоканального PPM приемника и работы режима FailSafe, не представлена схема подключения отдельных компонентов в общую схему БПЛА. Однако все эти задачи были решены для рассмотренного БПЛА. Эти вопросы будут описаны в следующих материалах. На рисунке 8 представлено фото экспериментального образца БПЛА.

Рис.8. Фото экспериментального образца собранного БПЛА

Видео демонстрацию полета коптера в режиме LOITER и в автоматическом режиме по путевым точкам можно посмотреть здесь и здесь.

Полет на контроллере Ардуино Мега2560 и прошивке MegapirateNG представлен здесь.

Выводы

1. Практически показана возможность построения БПЛА, который способен выполнять заданные полетные режимы [7],[8].

2.Следует отметить ненадежную работу регуляторов Hobbypower ESC-30A китайского производителя, которые способны самопроизвольно сбрасывать настройки после программирования его через пульт управления БПЛА, а также является очень ненадежными в случае запуска при температуре ниже +15 град. Поэтому при подключении батареи необходимо внимательно прослушивать мелодии ESC о его готовности и на основании этого делать вывод о возможности запуска БПЛА.

3. Показана практическая возможность использования более дешевых и надежных в эксплуатации высокотоковых Li-ion батарей SAMSUNG INR18650-25R, LG INR18650HG2 для полетных режимов Loiter, AltHold, Auto не связанных с акробатическими трюками и спортивными режимами. Однако их использование требует перенастройки регуляторов моторов или замены прошивки в ESC регуляторах моторов не выполняющих отключение моторов по пониженному напряжению, например прошивка Simonk.

Литература

1. Ardupilot. [Electronic resource]. - Mode of access: http://ardupilot.org/, 2016

2. Калибровка регуляторов скорости моторов ESC. [Electronic resource]. - Mode of access: http://ardupilot-mega.ru/wiki/arducopter/esc-motor.html, 2016

3. Полётный контроллер. - Mode of access: https://ru.wikipedia.org/wiki/Полётный_контроллер , 2016

4. Программирование регулятора с пульта. [Electronic resource]. - Mode of access: http://forum.rcdesign.ru/f63/thread284870.html, 2016

5. Planning a Mission with Waypoints and Events. [Electronic resource]. - Mode of access: http://ardupilot.org/copter/docs/common-planning-a-mission-with-waypoints-and-events.html, 2016

6. Autopilot Hardware Options. [Electronic resource]. - Mode of access: http://ardupilot.org/copter/docs/common-autopilots.html#common-autopilots, 2016

7. Планирование миссии с путевыми точками для F450 квадрокоптера с APM 2.6. [Electronic resource]. - Mode of access: https://youtu.be/3qBPmul1Qh4 , 2016

8. F450 квадрокоптер на батарейках SAMSUNG INR 18650-25R в режиме Loiter. [Electronic resource]. - Mode of access: https://youtu.be/9fyoLjjh_mI , 2016

Написана 13.12.2016г.