Walkera QR X350 PRO. DEVO-M. ArduPilot
Содержание |
Введение
При разработке полётного контроллера DEVO-M в компании Walkera воспользовались открытым проектом ArduPilot.
Что и как реализовано:
- хорошо: Начинающий моделист получает летящий «из коробки» квадрокоптер, уже настроенный производителем.
- плохо: Никакого софта для настройки, только четыре полётных режима. Можно этим и ограничиться, для большинства пользователей достаточно. Но это лишь малая часть того, что может полётный контроллер ArduPilot.
Вообще говоря, можно через SPI прошить контроллер DEVO-M стандартной прошивкой ArduPilot для получения полного набора функций автопилота.
Что (не)может DEVO-M
Изначально в QR X350 PRO доступны только четыре режима полета ArduPilot.
- Stabilize Mode - выравнивание по акселерометрам в горизонт. Обычный режим полёта.
- Loiter Mode - удержание в точке по GPS и барометрическому датчику высоты.
- RTL Mode - возвращение в точку взлёта и автоматическая посадка.
- Simple Mode - управление коптером не зависит от того, куда смотрит его перед.
Какие полётные режимы можно реализовать:
- Altitude Hold - при среднем положении ручки газа коптер удерживает высоту автоматически, по крену и тангажу - как в обычном режиме.
- Acro Mode - акселерометры практически не участвуют в выравнивании коптера, коптер управляется как классический вертолет, может делать кувырки.
- Auto Mode - автоматически летит по заранее запрограммированной миссии.
- Circle Mode - летает круг носом в центр автоматически, пилот управляет только высотой.
- Drift Mode - летает как самолет с элеронами, при крене доворачивает по курсу.
- Follow Me! - следует за объектом, требуется радиомодем и GPS у объекта слежения.
- Guided Mode - управляется с наземной станции по радиомодему: немедленно летит в указанную точку на карте на планшете, смартфоне или ноутбуке.
- Land mode - автоматическая посадка. ВНИМАНИЕ!!! Режим LAND работает один раз. Если сесть в авторежиме, потом снова заармить моторы, взлететь и снова включить автопосадку - при любой высоте включается немедленный дизарм двигателей [1].
- Loiter Mode - удержание в точке по GPS и барометрическому датчику высоты.
- Position Mode - удержание в точке по GPS, высота управляется пилотом с помощью газа без датчика высоты.
- RTL Mode - возвращение в точку взлёта и автоматическая посадка.
- Simple Mode - управление коптером не зависит от того, куда смотрит его перед.
- Super Simple Mode - коптер управляется так, как будто он всегда передом от пилота, независимо от реального направления Home Lock.
- Sport Mode - то же самое, что и Acro Mode, но с удержанием высоты.
- Stabilize Mode - выравнивание по акселерометрам в горизонт. Обычный режим полёта.
Также по умолчанию отключена полезная функция Geo Fence, виртуальный забор, коптер возвращается в точку взлёта если он улетает слишком высоко или далеко.
И отсечка установлена на 10,7В, что не позволяет использовать полную ёмкость аккумулятора, это тоже можно изменить.
Настройка ArduPilot
Всё, что описано, вы делаете на свой страх и риск. За последствия никто ответственности не несёт.
Для того, чтобы задействовать почти все функции ArduPilot нам нужна программа настройки MissionPlanner. Качаем тут. Шнурок для подключения есть в комплекте QR X350 PRO.
После подключения к MissionPlanner нельзя пользоваться консолью и Wizard, нельзя обновлять программное обеспечение.
Обязательно нужно сразу сделать копию настроек (видео). Чтобы появился пункт Full Parameters List, нужно активировать чекбокс Advanced Menu.
Полезные параметры
- AHRS_GPS_MINSATS - Раньше было значение 6, но в версии 1.1 стало = 7. Смысл этого параметра в следующем. ArduPilot использует скорость, определённую по GPS, для коррекции показаний акселерометра. При малом количестве спутников, точность определения скорости по GPS падает, начинают происходить забросы трека, и, чтобы исключить рывки коптера, введен параметр минимального количества спутников, при котором коррекция активна. То есть коррекция будет отключаться, если спутников меньше 7. А раньше отключалась, если меньше 6. Параметр лучше поправить в MissionPlanner, а не прошивать через софт от Walkera, который ещё и драйвер подменяет.
- FS_GPS_ENABLE - в DEVO-M установлен в значение Disabled. При этом QR X350 PRO может улететь, если произойдет глюк GPS. Если установить этот параметр в значение Land, то при глюке GPS или пропадании сигналов спутников, или забросе трека, произойдёт автоматическая посадка.
- FS_THR_ENABLE влияет на поведение при фэйлсейве:
- =0 - блокирует коптер, даже в режим калибровки не войти и моторы разблокировать не возможно.
- =1 - всегда возвращаться домой - так и есть, всегда возвращается.
- =2 - возвращаться, только если не выполняется миссия. Если вместо режима AUTO включен режим RTL, то будет возвращаться, прерывая миссию.
- =3 - всегда приземляться при потере сигнала.
- WPNAV_SPEED - это скорость, с которой летит коптер при возвращении домой в RTL или во время исполнения миссии. По умолчанию 300 см/с, но можно установить 900, чтобы коптер домой летел шустро. В принципе, он может и 1500 лететь, но при этом быстро расходуется аккумулятор. 900 - оптимальная скорость с точки зрения покрываемого расстояния по отношению к истраченным амперам [forum.rcdesign.ru/blogs/74565/blog18700.html].
- WPNAV_LOIT_SPEED - это максимальная скорость в cм/с, с которой летит коптер при полете в режиме Loiter (удержание по GPS). По умолчанию 500, можно увеличить до 700.
- WPNAV_SPEED_UP - скорость подъёма в cм/с при автоматических режимах.
- WPNAV_SPEED_DN - скорость спуска в cм/с при автоматических режимах.
- LAND_SPEED - = скорость автоматической посадки в cм/с. (действует при высотах до 10 м ?)
- PILOT_VELZ_MAX - максимальная скороподъёмность, которую может задать пилот стиком газа при управлении коптером в режимах, использующих удержание высоты по барометру (Loiter, AltHold, Sport). По умолчанию 250, можно поставить 500.
- RTL_ALT - высота в см, которую наберет коптер при команде RTL прежде чем полететь домой. По умолчанию 1500 (15 метров). К примеру, если на местности, где предстоит летать, есть деревья по 25 м, то стоит этот параметр с запасом установить в значение 3500.
- RTL_ALT_FINAL по умолчанию 0 — посадка, если поставить, допустим, 500 зависнет на 5 метрах и будет ждать посадки вручную. Но если пульт по какой-то причине не работает, и он вернулся по файлсейву, придётся его как-то ловить или ждать, пока начнёт снижаться из-за недостатка тяги при разряде батареи.
- WP_YAW_BEHAVIOR - настройка, определяющая, куда направлен нос коптера при возвращении домой по RTL и при выполнении миссии. По умолчанию 2, а если поставить 1, то коптер полетит домой, развернувшись вперёд носом.
После изменения настроек нужно не забыть нажать Write Params, чтобы они прописались в полётном контроллере.
Примеры назначения режимов
- Для переназначения режима полета в МissionРlanner заходим на страницу CONFIG/TUNING закладка Extended Tuning. Параметр Ch7 Opt был Simple Mode, меняем на RTL. Сохраняем, нажав Write Params. Переходим на закладку Flight Modes и параметр Flght Mode 6 c RTL меняем на Circle. Сохраняем, нажав Save Modes. Теперь у нас в третьем положении тумблера вместо возврата домой - круг, а возврат домой теперь будет на тумблере IOC. Параметры круга меняются в Full Parametr List. CIRCLE_RADIUS - радиус круга в метрах, по умолчанию 10. CIRCLE_RATE - угловая скорость выполнения круга в градусах в секунду, по умолчанию 20.
- Для выполнения автономной миссии по точкам в MissionPlanner необходимо задать на Fight Mode 6 вместо полетного режима RTL полетный режим AUTO. И при пропадании сигнала от передатчика миссия будет продолжена. Разумеется, миссия должна заканчиваться командной точкой RTL [2] [3].
- На входе GEAR можно переключать до шести режимов, в зависимости от частоты ШИМ. Таким образом можно настроить до 6 режимов на одном канале используя 3-х и 2-х позиционный переключатель [4]. Вкратце, на Gear задействованы только три режима: 1165, 1425, и 1815 миллисекунд. Если все доступные шесть, то 1165, 1295, 1425, 1555, 1685, и 1815 миллисекунд. Все режимы настраиваются, в любой самой мыслимой и разнообразной конфигурации. Совсем на пальцах; Gear по умолчанию PWM 0-1230 — режим Stabilize. PWM 1491-1620 — режим loiter, удержание в точке. PWM 1750 и выше — режим RTL возврат домой. Также задействован вход AUX2 (PWM 1100 Simple Mode выключен, PWM 1900 включен) и при желании и наличии свободного канала приемника можно задействовать вход AUX3. В MissionPlanner это соответственно Ch5, Ch7 и Сh8. Обо всем этом прекрасно описано в первоисточнике [5] [6]
Советы
- Можно загрузить старые параметры (если они были сохранены) и воспользоваться опцией "сравнить", чтобы определить что повлияло на поведение коптера.
- «Откатиться» на заводские настройки можно с помощью файлов параметров «по умолчанию», которые есть в разделе Прошивки.
Программы-планировщики
Для Windows
- Mission Planner
- APM Planner 2, есть версия и под Linux. Функциональность его та же что и у Mission Planner. Но APM Planner более сырой. Описание настройки (на немецком).
Для Android
Android-устройство должно иметь OTG для поддержки функции USB-host и версию операционной системы Android не ниже 4.
Bluetooth-модем
Возможно установить в QR X350 PRO bluetooth-модем и обходиться без подключения к компьютеру проводом. Это понадобится также для управления квадрокоптером с Android-устройства.
Модем можно использовать, например, такой. В данном случае надо перепаять на плате полётного контроллера DEVO-M два резистора, чтобы понизить напряжение сигнала с 5в до 3,3в.
На фотографии показаны контакты, к которым нужно подсоединять bluetooth-модем. Кстати, при использовании 3DR-радиомодема или OSD - их подсоединять нужно к этим же контактам.
Подключение OSD
- Подключение Minim OSD [7].
- Подключение камеры iLook. Там все элементарно просто, коробочка iLook фрезерована из цельного куска дюральки, внутри три модуля- матрица с оптикой, плата видеорегистратора со слотом под карточку и плата обычного Валкеровского видеопередатчика 5803 или 5804, в зависимости от исполнения по мощности, 200мВ для США, 25мВ для Европы. С платы видеорегистратора на плату передатчика идет земля, питание и композитный видеосигнал. Нам нужна земля (черный проводок) и видео(голубой проводок). От земли просто делаем ответвление, видео режем и выводим два провода. Сзади камеры есть отверстия для вентиляции, через них и выводим провода. Ну и подключаем их к ОСД [8].
- Видео с процессом установки Mavlink OSD [9].
- Настройка OSD [10]. Исходники настроек Minim OSD.
Подключение радиомодема 3DR
Модуль радиомодема можно использовать совместно с OSD или ВТ (параллельное подключение) [11]. См. схему справа -->
Советы
- Если коптер не армится с «неродного» пульта, то, возможно, это происходит потому, что рабочие диапазоны каналов да и направление их отработки другие. Подключайтесь к MissionPlanner, заходите на вкладку меню калибровки аппаратуры, и добивайтесь в передатчике того, чтобы:
- все каналы отрабатывали в нужном направлении (реверсами)
- диапазоны каналов от 1100 до 1900 мс (эндпойнтами)
- среднее положение канала 1500 мс (сабтриммерами).
- Если в передатчике есть лишний свободный канал, цепляйте его к Дево-М на вход AUX3, он будет виден в MissionPlanner как Ch8 и на него можно будет настроить тумблер, чтоб добавить полетный режим или какую-нибудь другую нужную функцию.
- Обращайте внимание на настройки конфигурации коптера (меню сверху INITIAL SETUP / Mandatory Hardware-frame type): должно быть Х, но может «слететь» на +, например, при входе в Wizard. Коптер при этом теряет ориентацию в полёте, не может стабилизироваться и переворачивается.
Полезные настройки для пульта DEVO F7
- Автоматический таймер при активации режима газа. Видео по настройке.
- На переключателе HOLD - предохранитель от случайного выключения газа в полёте +15.
Настройка: Function menu->Throttle Curve->Position=Pos 1, Point=Point-L, Output=15.0, Switch->Hold SW=1.
- Переключатель GEAR - вкл/выкл запись камеры.
- Переключатель AUX2 - наклон камеры.
- Переключатель D/R - 50% газа для удержания в некоторых режимах.
Настройка: Model Menu->Device output->Thro Hold Switch=D/R SW. Function menu->Throttle Hold->Hold Status=Active, Hold Position=50.0.
- Переключатель MIX - режимы полёта: стабилизированный, удержание, RTL.
- Переключатель FMOD - режимы полёта ALTHOLD и DRIFT. (источники: [12] [13] [14]).
Настройка: Function Menu->Program mix->Program mix1->Normal Ставим ok. Мaster ставим GEAR, Slave ставим GEAR, Pos 0 <-> ставим -40/ Switch -> FMOD SW 1 = 1. Далее два раза Ext и пролистываем кнопкой DN- на пульте до появления Program mix2 (будем настраивать второй мix) —> NORMAL ставим ok/ Мaster ставим GEAR->Slave ставим GEAR, POS 1 <-> ставим -30/ Switch -> FMOD SW 2 =1. Выходим из меню. Затем: Function Menu->Sub Trim->Gear cтавим 8,0 и выходим из меню. Затем: Function Menu->Travel Adjust->Gear нижнюю -100 меняем на -110 Выходим из меню.
- Далее заходим в Function Menu->Monitor и проверяем GEAR. Должно быть:
- MIX0:FMODE0 (GEAR=-102) — режим 1 Stabilize Mode
- MIX0:FMODE1 (GEAR=-58) — режим 2 (Настраивается по желанию в Mission Planner, например Altitude Hold. То же, что и stab, но с удержанием высоты по барометру. Замечательная вещь! Не зависит от GPS. Дрейфует только по горизонту. Управление поджато только по высоте).
- MIX0:FMODE2 (GEAR=-25) — режим 3 (Настраивается по желанию в Mission Planner, например Drift Mode).
- MIX1:FMODE(любое положение) (GEAR=8) — режим 4 Loiter Mode
- MIX2:FMODE(любое положение) (GEAR=108) — режим 6 RTL Mode
После монитора заходим в Mission Planner и проверяем, что режимы переключаются и настраиваем по желанию. Также на Ch7 убираем режим Simple Mode, поскольку он теряет смысл. Теперь можно использовать переключатель Gear для вкл/выкл камеры на запись. Кстати, не выходя из монитора, рекомендуется проверить каналы по стикам и выставить цифровыми триммерами в нули, а для газа L100.
FAQ
Можно ли использовать оффлайновые карты
В окне планирования миссии правой кнопкой мыши по карте - Map Tool - Prefetch.
Почему у меня при планировании миссии в МП не рисует линии между точками?
Не видит точку "Дом" программа МП, надо подключить коптер, пропишется последняя точка дома.