Операция “Квадрокоптер”. День третий. Настройка
Date January 19th, 2014 Author Vitaly Agapov
Квадрокоптер собран и почти готов к полёту, нужно только выполнить несколько подготовительных действий, про которые тут и пойдёт речь. Паяльник, мультиметр и прочие полезные штуки могут отправляться обратно на антресоль. А понадобится лишь компьютер (к сожалению с Windows на борту) и провод с microUSB для подключения полётной платы к этому компьютеру.
Mission Planner
Всё управление ArduCopter'ом (напомню, что ArduCopter – это прошивка для ArduPilot, клоном которого является наш ArduFlyer) производится с помощью программы Mission Planner, созданной человеком по имени Michael Oborne. Есть и другие программы, например кроссплатформенный QGroundControl, который должен работать из-под Linux, но обладает меньшим количеством функций – с ним я поэкспериментирую позже.
Скачать последниюю версию Mission Planner можно отсюда: http://code.google.com/p/ardupilot-mega/downloads/list
Установка программы и параллельный поиск драйверов для Arduino и 3D Robotics производится вполне себе windows-way, то есть в режие "Далее – далее – далее". Правда, сначала придётся ещё поставить .Net Framework, если он ещё не стоит.
Загрузка прошивки
Следующим шагом надо залить прошивку в мозги квадрокоптера. Для этого в Mission Planner в Initial Setup -> Install Firmware, выбрать наш вариант прошивки, то есть ArduCopter Quad Stable и утвердительно ответить на вопрос о нашей уверенности.
После этого ArduFlyer научится радостно моргать своими светодиодами, пищать при включении и прочее. А с помощью кнопки Connect (скорость 115200, COM-порт скорее всего определится автоматически) можно будет подключиться по протоколу MAVLink к полётной плате.
Базовые настройки
После подключения нужно пробежаться по меню Initial Setup и настроить основные параметры (или воспользоваться визардом в меню Help):
Frame Type
Здесь надо выбрать вариант "Х", так как коптер планируется именно в такой конфигурации.
Compass
Здесь с помощью Live Calibration нужно откалибровать компас. В процессе калибровки нужно будет просто покрутить коптер вокруг всех трёх осей.
Accel Calibration
Для калибровки акселерометров надо будет поочерёдно поворачивать коптер в разные стороны (6 положений) и фиксировать их. Производить операции нужно на ровной горизонтальной поверхности.
Radio Calibration
Здесь нужно провести калибровку уровней PWM (pulse width modulation), которые измеряются в микросекундах, для определения крайних значений при экстремальных положениях стиков и других управляющих элементов. Заодно вообще можно проверить, все ли каналы работают. Сами каналы нам понадобятся на следующем пункте.
Flight Modes
Здесь можно настроить режимы полёта квадрокоптера. По умолчанию всё настроено на использование режима Stabilize, в котором ArduCopter будет пытаться всегда удерживать себя в горизонтальном положении (при нейтральном положении всех стиков кроме газа). И для начала это оптимальный вариант. Но можно поиграться и сразу.
Для управления режимами полёта используется 5-й канал платы. Само собой, радиоканал подключить туда можно любой, но логично подключить тоже пятый. Всего можно настроить 6 режимов для разных значений PWM, но если использовать тумблеры с чётким переключением положений (понятно, что у потенциометра можно сделать и больше шести положений, но пользоваться им будет нелегко), то получится настроить только два режима. Или три, если есть трёхпозиционный тумблер. На Turnigy 9X он есть, но с сюрпризом – почему-то этот тумблер нельзя настроить на AUX-канал в стоковой прошивке. Скорее всего победить проблему можно, залив в аппу приличную прошивку типа ER9X, но это проверим попозже. Есть вариант запрограммировать смешивание двух каналов и использовать все шесть режимов с помощью комбинации трёхпозиионного и двухпозиционного переключателей. Об этом – ниже, в пункте про настройку трансмиттера.
В стоковой же прошивке в режиме вертолёта для AUX-каналов доступны только 5 элементов управления: THRO HOLD, GEAR, PIT TRIM, HOV THR, HOV PIT.
Вот тут на картинке эти пять рычагов отмечены красным цветом. С ними и придётся работать.
Конечно, непосредственно для вертолётов у этих переключателей и потенциометров своё предназначение: управление кривой шага для настройки точки висения, выпускание шасси (gear) и т.д.
Раз уж произошло такое лирическое отступление, то перечислю ещё сами полётные режимы. Подобную информацию можно прочитать в официальной документации ArduPilot, вкратце они выглядят так:
- Stabilize. Основной режим полёта. При отпущенных стиках атопилот выравнивает крен и тангаж в горизонтальное положение.
- Acro. В этом режиме значения крена и тангажа сохраняются при отпускании стиков. Для их выравнивания (компенсации) необходимо двигать стики в обратном направлении.
- AltHold. Режим поддержания высоты. Коптер с помощью барометра будет пытаться поддержать текущую высоту, а стик газа будет изменять высоту относительно начального положения.
- Auto. Полёт по путевым точкам с помощью GPS.
- Guided. Перемещение в нужный waypoint и ожидание в этой точке. Причём сам waypoint с помощью телеметрии можно менять.
- Loiter. Зависание (в общем-то слово переводится как "слоняться без дела"). Коптер будет пытаться поддерживать текущую высоту, позицию и направление.
- RTL. Возвращение домой. Коптер поднимается на определённую высоту (15 м по умолчанию), летит в точку старта и зависает на высоте 2 м или прозводит посадку.
- Circle. Автоматически кружиться вокруг текущей точки с заданным заранее радиусом.
- Position. Аналог Loiter, но с управлением газом.
- Land. Посадка.
- OF_Loiter. Зависание с использование Optical Flow Sensor с большей точностью, чем простой Loiter.
- Drift. Режим полёта "как самолёт". Рысканье недоступно.
- Sport. Режим позволяет автоматически поддерживать высоту и угол наклона коптера. Например, для съёмки FPV.
У режимов есть два чекбокса с модификаторами Simple Mode и Super Simple Mode. Первый включает такой режим, при котором коптер всегда движется вдоль одного направления, в котором он находился при старте (задействуя компас). То есть даже если он повернулся, скажем, на 90 градусов вправо, стик тангажа заставит его лететь в прежнем направлении, то есть уже левым бортом (креном). Второй режим (Super) уже использует GPS и пересчитывает направление в зависимости от координаты места старта. Находясь далее, чем в 10 метрах от старта, тангаж заставляет коптер летать вперёд-назад по радиусу от места старта, а крен – летать по окружности с центром в месте старта (по орбите).
Калибровка регуляторов оборотов моторов
После калибровки радиоканалов нужно провести калибровку ESC. Нужно это для того, чтобы ESC знали, в каких пределах будут изменяться уровни PWM на радиоканале и на выходе с платы автопилота. Можно калибровать регуляторы по отдельности, подключая их по очереди к третьему каналу радиоприёмника, а можно откалибровать все разом, тем более, что в случае ArduCopter и Turnigy Multistar здесь проблем никаких нет.
Итак,
- Снимаем пропеллеры, если они надеты.
- Отключаем USB, если он подключен.
- Включаем пульт и ставим газ (throttle) на максимум.
- Подключаем батарею к плате распределения питания на коптере.
- ArduCopter загружаеся и начинает попеременно мигать красным, синим и жёлтым диодом, сообщая, что он почти готов к калибровке.
- Отключаем батарею и снова подключаем.
- ArduCopter снова загружается, снова мигает диодами, и спустя несколько секунд все регуляторы издают серию писков. Они должны пискнуть количество банок в батарее и ещё два раза, сообщая, что верхнее значение PWM зафиксировано.
- Опускам газ в минимум, ждём ещё несколько секунд и слышим ещё один писк, сообщающий, что нижнее значение PWM зафиксировано.
- Отключаем батарею.
Для тонкой настройки ESC потребуется программатор. Программаторы делаются разные под разные брэнды самих регуляторов. В частности, программатор для Turnigy Multistar выглядит таким вот образом.
Пользоваться им легко. Нужно выставить с помощью шести джамперов нужные настройки, подключить сигнальным проводом ESC к выходу программатора, который обозначен словом Controller (тут есть распиновка и даже для тугих подсказан цвет – коричневый -, который надо воткнуть в данный пин).И останется только подать напряжение на силовые входы реглятора. Он издаст писк, сообщив тем самым о том, всё отлично. Моторчик при этом должен быть подключён.
Вот какие настройки можно менять:
- Batt Type. Предлагает на выбор NiXX, LiXX и KiFe. Оставляем LiXX, для своих LiPo-батарей. В том случае, если мы захотим полностью выключить отсечку, сможем установить NiXX. В этом режиме нижний уровень напряжения осечки составит 0.6 В на банку. Этот вариант хорош, вероятно, для полётов над водой, но надо помнить, что при сильном понижении напряжения есть вероятность того, что запитанная от BEC плата сама перезагрузится или выключится, и коптер всё равно пойдёт камнем вниз.
- Cut off Voltage. Напряжение отсечки, даёт выбрать значения High, Medium и Low, что соответствует для LiPo-батареи соответственно 3.2, 3.0, 2.8 В на банку. Это уровень, ниже которого напряжение считается нерабочим. Для батареи вредно опускание напряжения ниже 3 В на банку, но лучше в критичной ситуации испортить батарею, чем потерять весь квадрокоптер целиком. Так что ставим Low.
- Cut off type. Тип отсечки. Это то, что будет делать ESC в случае отсечки. Hard – это полное обесточивание моторов (только хардкор, только падение камнем вниз!). Slow down – это постепенное снижение напряжения с ненулевой вероятностью плавно приземлиться. Этот вариант и оставляем.
- Rotation. Позволяет переключить направление вращения. Проще перекинуть провода.
- Brake. Останавливает моторы при минимальном значении PWM газа. В режиме Hard делает это быстро, жёстко и без раздумий. В режиме Medium останавливает моторы постепенно. В режиме Off функция отключена. Для мультикоптера функция бесполезна, нужна она для самолётов в режиме планирования и при посадке. Так что нужно ставить Off.
- Timing. С этим параметром разобраться сложнее. Тут стоит окунуться в физику процессов. В старых добрых электродвигателях постоянного тока был коллекторный узел, который с большой частотой переключал ток в обмотках ротора, обеспечивая вращение последнего. У нас же моторы бесколлекторные, и переключением напржения на обмотках занимается ESC. То есть ему нужно постоянно синхронизироваться с мотором для определения его положения (именно поэтому между мотором и ESC три провода). Увеличение тайминга позволяет ускорить синхронизацию. Но здесь нужно экспериментировать. Тем более, что это увеличение приводит и к увеличению скорости вращения мотора и увеличенному расходу энергии. Я – за опцию Auto.
- Start Up. Скорость подачи напряжения на мотор при старте. High – подача напряжения сразу, Medium – постепенное нарастание напряжения (за 1 секунду), Low – ещё более постепенное (за две секунды). Для мультикоптера смело можно ставить High.
Подготовка передатчика Turnigy 9X
Во-первых, режим работы надо переключить в "Самолёт" (Acro). Несмотря на то, что коптер больше похож на вертолёт, ArduPilot рассчитан именно на самолётный режим. Это можно сделать в Menu -> System settings -> Type Select.
Дальше надо настроить AUX-каналы (если этого не сделали раньше, при калибровке радиоканалов). Это можно сделать в Func Settings -> AUX CH. Если режимов полёта требуется не более двух, то пятый канал (который будет переключать режимы полёта) можно настроить на GEAR или THRO HOLD и на этом закончить. Для настройки всех шести режимов идём таким путём:
1. На пятый AUX-канал, всё-таки ставим GEAR (или THRO HOLD), а на шестой – NULL. Остальные каналы – на своё усмотрение, они пока не интересны.
2. Шестой канал на выходе радиоприёмника переставляем в пятый вход на полётной плате. Пятый канал, на котором висит GEAR, можно вообще отсоединить, он теперь бесполезен.
3. Открываем в Mission Planner'е уже знакомое нам окно настройки режимов полёта.
Здесь строчка Current PWM показывает текущую длительность импульсов на пятом канале платы, то есть на шестом канале радиприёмника. А колонка справа показывает диапазоны PWM, соответствующие разным режимам. Наша задача – настроить сигналы на комбинациях стиков таким образом, чтобы их PWM попадали примерно в середину соответствующих диапазонов. Делать это будем в п.4.
4. На передатчике идём в меню Func Settings -> Prog. Mix. Открываем MIX1 и включаем его (STATE: ACT). Параметр SW ставим в NOR, то есть верхнее положение трёхпозиционного тумблера F.MODE (сам тумблер надо переключить в это же положение). MASTER ставим в GYR (то есть 5-й AUX-канал, на котором у нас стоит GEAR), а SLAVE ставим в FLP (то есть 6-й AUX-канал, на котором было пусто, но сейчас будет микс двух сигналов). Сам GEAR переключаем в дальнее положение и, изменяя параметр DNRATE, смотрим, как меняется PWM в окне Mission Planner'а (кому-то удобно смотреть и в консоли). Подбираем такое значение, которое точно будет меньше, чем 1230, но лучше в районе 1165. Это будет первый режим. Затем GEAR переключаем в ближнее положение и подбираем значение UPRATE, которое даст PWM в районе 1295 (в середине между 1231 и 1360). Это будет второй канал.
Повторяем процедуру с MIX2. Тут нужно будет указать SW: ID1 (и переключить тумблер F.MODE в соответствующее положение). Меняя DNRATE и UPRATE, настроиться на 3-й и 4-й режимы. А потом повторить процедуру третий и последний раз.
5. Готово. Останется выбрать режимы по вкусу. Правда, я не знаю, почему микс нельзя настроить на пятом AUX-канале, чтобы не вводить излишнюю энтропию с подключением шестого радиоканала в пятый вход платы. Я пробовал настроить SLAVE на GYR, но ничего в таком варианте не работало.
Пробное включение
На квадрокоптере нужно подключить батарею, оставив APM подключённым через USB к компьютеру. Теперь можно активировать плату (Arm), нажав левый стик на аппе в правое нижнее положение (независимо от того, mode 1 или mode 2). Mission Planner покажет, что аппарат в режиме "Armed":
Если этого не происходит, то можно попробовать Arm / Disarm с помощью одноименной кнопки в закладке Actions (Действия). Если и она не помогает, то в настройке Arming Check (меню Config/Tuning -> Standard Params) нужно на время тестирования выставить значение Skip GPS или Disabled. Этот параметр включает запрет на активацию коптера при любых проблемах: нет сигнала с передатчика, низкое напряжение, отсутствие сигнала от барометра, акселерометра или GPS. Последний случай как раз наш, если мы сидим дома.
После активации нужно увеличить газ и посмотреть, в какую сторону вращаются моторы. Направления вращения должны соответствовать схеме:
Для изменения направления вращения нужно поменять местами два любых провода между соответствующим мотором и его регулятором. Также по этой схеме нужно будет закреплять пропеллеры на моторах. На тех, которые вращаются по часовой стрелке, должны быть левостронние (LH или pusher) пропеллеры, а на остальных, соответственно – правосторонние (RH или normal).
Настройка кривой газа
Ручка газа на трансмиттере управляет довольно широким диапазоном PWM, определяющим скорость вращения пропеллеров. Причём рабочий полётный диапазон довольно узок: ниже него квад стоит на земле либо движется вниз, выше него он с большой скоростью набирает высоту. Настройка кривой газа позволит расширить рабочий диапазон положений стика для более точного нахождения точки висения и управления высотой.
Для начала нужно примерно определиться с самим диапазоном. Лучший способ – попробовать полетать, а затем проанализировать логи (как описано в этой статье) и выяснить в каких пределах менялся ThrIn. У меня график выглядел довольно странно (розовая линия – ThrIn, жёлтая – BarAlt, то есть высота по барометру):
Теперь можно открыть калибровку радиоканалов в MissionPlannere и настройку Throneedle в меню Turnigy 9X (речь про стоковую прошивку этой аппаратуры). Здесь нужно включить кривую (STA: ACT) и настроить саму кривую на свой вкус по пяти точкам примерно так, чтобы основной диапазон был как можно более пологим. Конкретные значения PWM можно параллельно смотреть в окне калибровке для 8-го канала, двигая стик газа туда-обратно.
Добившись каких-то результатов и не забывая о том, что эти настройки можно легко менять впоследствии, даже прямо в поле, нам остаётся только переключить 8-й канал радиоприёмника на 3-й канал APM (канал газа). При этом в запасе после настройки полётных режимов у нас остался только один свободный канал – седьмой.
Ссылки
http://diydrones.com/profiles/blogs/configuring-turnigy-9x-with-arducopter
http://copter.ardupilot.com/wiki/initial-setup/esc-motor/
http://copter.ardupilot.com/wiki/initial-setup/
http://copter.ardupilot.com/wiki/flying-arducopter/
Tags: Beyond IT, R/C
Category:
R/C |
6 Comments »
24 June 2014 - 18:40
Виталий, большое спасибо за статью.
Не часто можно встретить грамотно изложенный материал. Вы очень помогли мне собрать обрывочную информацию в единое целое. :)
9 July 2014 - 0:11
Срочно перешивайте аппу на ER9X :) там с микшированием нет проблем, можно настроить как угодно и что угодно, в частности у меня для управления режимами задействованно 4 тумблера, и в настройках микширование на 5й канал просто указаны тумблеры и их "вес"))
7 August 2014 - 10:01
Помогите с подключением коптера к пульту.
25 December 2014 - 22:07
Спасибо. Особенно помогло в установке F.Mod и Armed.
Продолжаю читать и "переваривать".
13 October 2015 - 11:33
Настроил на 6 режимов. — проблема сл:
В окне Radio Calibration 5й канал отображает изменения PWM — все нормально.
А вот проблема в окне Flight Modes — тут Current PWM не работает, соответственно режимы с аппы не переключаются.
В чем может быть проблема?
MP 1.3.32 ArduPlane v3.4.0
18 November 2015 - 4:45
Хочу купить на алиэкспрессе Cheerson CX-10. Кто-нибудь летал? http://ali.pub/dgcb9