Walkera QR X350 PRO. DEVO-M. ArduPilot
Содержание |
Введение
При разработке полётного контроллера DEVO-M в компании Walkera воспользовались открытым проектом ArduPilot. Недокументированные способности Walkera DEVO-M были обнаружены NARAJANA при экспериментах со скоростью подключения в Mission Planner [3][4][5].
Что и как реализовано:
- хорошо: Начинающий моделист получает летящий «из коробки» квадрокоптер, уже настроенный производителем.
- плохо: Никакого софта для настройки, только четыре полётных режима. Можно этим и ограничиться, для большинства пользователей достаточно. Но это лишь малая часть того, что может полётный контроллер 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 работает один раз. Если сесть в авторежиме, потом снова заармить моторы, взлететь и снова включить автопосадку - при любой высоте включается немедленный дизарм двигателей [6].
- Loiter Mode - удержание в точке по GPS и барометрическому датчику высоты.
- Position Hold - удержание в точке по GPS, высота управляется пилотом с помощью газа без датчика высоты (На DEVO-M не работает [7][8]).
- 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.
Внимание!
- Не подключайте USB вместе с батареей.
- После подключения к MissionPlanner нельзя пользоваться Wizard и консольным терминалом. Тем более нельзя вводить к консоли команду setup erase! Также нельзя обновлять прошивку контроллера. Если у вас прошивка 1.0, то лучше ее оставить как есть [9][10]. Обязательно нужно сразу сделать копию настроек (видео). Чтобы появился пункт Full Parameters List, нужно активировать чекбокс Advanced Menu.
Полезные параметры
- AHRS_GPS_MINSATS - Раньше было значение 6, но в версии 1.1 стало = 7. Смысл этого параметра в следующем. ArduPilot использует скорость, определённую по GPS, для коррекции показаний акселерометра. При малом количестве спутников, точность определения скорости по GPS падает, начинают происходить забросы трека, и, чтобы исключить рывки коптера, введен параметр минимального количества спутников, при котором коррекция активна. То есть коррекция будет отключаться, если спутников меньше 7. А раньше отключалась, если меньше 6. Параметр лучше поправить в MissionPlanner, а не прошивать через софт от Walkera, который ещё и драйвер подменяет.
- FS_BATT_ENABLE - поведение коптера при достижении значения батареи установленном в параметре FS_BATT_VOLTAGE. Значение по умолчанию 1 = Land. На версии не PRO делали специальный аппаратный мод для его отключения. Как правило устанавливают в 0 и контролируют батарею через телеметрию или визуально по тяге.
- FS_BATT_VOLTAGE - пороговое значение напряжения батареи. По умолчанию 10,7. Безопасно понижается до 10,5. При достижении указанного значения начинает мигать правый светодиод. Можно, но не желательно установить вообще в 0.
- FS_GPS_ENABLE - в DEVO-M установлен в значение Disabled. При этом QR X350 PRO может улететь, если произойдет глюк GPS. Параметр может принимать значения:
- =0 - выключено
- =1 (Land) - если активен режим полета , требующий GPS, при потере спутников, глюке GPS или пропадании сигналов спутников, или забросе трека, произойдёт автоматическая посадка.
- =2 - аналогично, но включиться режим AltHold
- =3 - автопосадка включится даже в режимах, не требующих GPS, например Stabilize Mode.
- FS_THR_ENABLE влияет на поведение при фэйлсейве:
- =0 - блокирует коптер, даже в режим калибровки не войти и моторы разблокировать не возможно.
- =1 - всегда возвращаться домой - так и есть, всегда возвращается.
- =2 - возвращаться, только если не выполняется миссия. Если вместо режима AUTO включен режим RTL, то будет возвращаться, прерывая миссию.
- =3 - всегда приземляться при потере сигнала.
- WPNAV_SPEED - это скорость, с которой летит коптер при возвращении домой в RTL или во время исполнения миссии. По умолчанию 300 см/с, но можно установить 900, чтобы коптер домой летел шустро. В принципе, он может и 1500 лететь, но при этом быстро расходуется аккумулятор. 900 - оптимальная скорость с точки зрения покрываемого расстояния по отношению к истраченным амперам [11].
- 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, то коптер полетит домой, развернувшись вперёд носом.
- COMPASS_ORIENT - расположение и ориентация компаса. По умолчанию COMPASS_ORIENT = 4, что соответствует ROTATION_YAW_180 на закладке настройки компаса. Этот параметр вызывает множество вопросов, поскольку он стоит на ноге под углом совсем не в 180 градусов, но если снять крышку компаса, то можно увидеть микросхему сориентированную правильно против курса.
- COMPASS_LEARN - по умолчанию равен 1. После калибровки через Mission Planner устанавливается в 0. Для правильной калибровки компаса "сведением стиков" должен быть вручную установлен в COMPASS_LEARN = 1 (см. раздел FAQ «Как правильно калибровать компас»).
- COMPASS_OFS_X, COMPASS_OFS_Y, COMPASS_OFS_Z - индивидуальные параметры настройки компаса. Для каждой местности разные. Установленные все в 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 [12] [13].
- На входе GEAR можно переключать до шести режимов, в зависимости от частоты ШИМ. Таким образом можно настроить до 6 режимов на одном канале используя 3-х и 2-х позиционный переключатель [14]. Вкратце, на 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. Обо всем этом прекрасно описано в первоисточнике [15] [16]
Советы по параметрам
- Можно загрузить старые параметры (если они были сохранены) и воспользоваться опцией "сравнить", чтобы определить что повлияло на поведение коптера.
- «Откатиться» на заводские настройки можно с помощью файлов параметров «по умолчанию», которые есть в разделе Прошивки.
- Можно перешить DEVO-M в полноценный Аrdupilot при помощи доработки SPI интерфейса. На плате контроллера есть шесть отверстий - это SPI — последовательный периферийный интерфейс к Арду2560. К нему подключаем программатор для Ардуины, например USBASP, загливаем бутлоадер Ардукоптера, после чего контроллер можно прошить по USB через MissionPlanner. Так как Валкера свой бутлоадер засекретила, то назад дороги нет, откатиться на Валкеровский Ардупилот Дево невозможно. [17][18].
Программы-планировщики
Для Windows
- Mission Planner
- APM Planner 2, есть версия и под Linux. Функциональность его та же что и у Mission Planner. Но APM Planner более сырой. Описание настройки (на немецком).
Для Android
- Andropilot
- Droidplanner. Бывает, что не запускается на планшете/смартфоне - в таком случае нужно попробовать загрузить последнее обновление для мобильного устрофства или получить root-права на нём.
Android-устройство должно иметь OTG для поддержки функции USB-host и версию операционной системы Android не ниже 4.
Bluetooth-модем
Возможно установить в QR X350 PRO bluetooth-модем и обходиться без подключения к компьютеру проводом. Это понадобится также для управления квадрокоптером с Android-устройства.
Модем можно использовать, например, такой. В данном случае надо перепаять на плате полётного контроллера DEVO-M два резистора, чтобы понизить напряжение сигнала с 5в до 3,3в. Перед подключением необходимо понизить скорость порта модуля BT до 57600, например при помощи программы Termite.
На фотографии показаны контакты, к которым нужно подсоединять bluetooth-модем. Кстати, при использовании 3DR-радиомодема или OSD - их подсоединять нужно к этим же контактам. Большая благодарность NARAJANA за идею с этой полезной доработкой!
Подключение OSD
Модуль OSD позволяет замешивать поток телеметрической информации о полете в канал видеоизображения камеры установленной на коптере. Передаваться может информация о полетном режиме, скорости, высоте полета, горизонте, напряжении батареи и других параметрах в зависимости от настроек модуля OSD.
- Подключение Minim OSD [19]. Обязательно меняются два резистора для согласования уровней. Подключаются только питание 5V, земля и RX OSD. TX OSD при подсоединении к контроллеру подключать не нужно (при подключении к FDTI-адаптеру - нужно!).
- Подключение камеры iLook. Там все элементарно просто, коробочка iLook фрезерована из цельного куска дюральки, внутри три модуля- матрица с оптикой, плата видеорегистратора со слотом под карточку и плата обычного Валкеровского видеопередатчика 5803 или 5804, в зависимости от исполнения по мощности, 200мВ для США, 25мВ для Европы. С платы видеорегистратора на плату передатчика идет земля, питание и композитный видеосигнал. Нам нужна земля (черный проводок) и видео(голубой проводок). От земли просто делаем ответвление, видео режем и выводим два провода. Сзади камеры есть отверстия для вентиляции, через них и выводим провода. Ну и подключаем их к ОСД [20].
- Видео с процессом установки Mavlink OSD [21].
- Настройка OSD [22]. Исходники настроек Minim OSD.
- Видео от Юлиана. Настройка модуля OSD.
Подключение радиомодема 3DR
В отличие от OSD, модуль радиомодема 3DR позволяет осуществить двусторонний обмен информацией на значительном расстоянии при помощи управляющих программ Mission Planner и Droid Planner. Он не исключает использование OSD, а вместе они открывают много полезных возможностей по управлению коптером. Увы, но прошивка Arducopter 3.2devo=1.0 не позволяет просмотреть логи. В МиссионПланнере чтение логов можно включить, но скачать их для просмотра не получается, их в ПолетномКонтроллере нет [23].
Если не планируете управлять коптером с RLS, то лучше брать модуль на 433 МГц. Во первых, 915 МГц частота для США, и в Европе запрещена, во вторых, это частота мобильной связи, если рядом будут ретрансляторы, будут помехи от них. Если будет LRS, тогда 915 МГц, ибо LRS на 433 МГц работает. И хорошие антенны на 433 легче найти [24].
Вариант установки радиомодема 3DR. Потребуется угловой SMA адаптер или осторожная замена родного на угловой [2].
Советы
- Если коптер не армится с «неродного» пульта, то, возможно, это происходит потому, что рабочие диапазоны каналов да и направление их отработки другие. Подключайтесь к MissionPlanner, заходите на вкладку меню калибровки аппаратуры, и добивайтесь в передатчике того, чтобы:
- все каналы отрабатывали в нужном направлении (реверсами)
- диапазоны каналов от 1100 до 1900 мс (эндпойнтами)
- среднее положение канала 1500 мс (сабтриммерами).
- Если в передатчике есть лишний свободный канал, цепляйте его к Дево-М на вход AUX3, он будет виден в MissionPlanner как Ch8 и на него можно будет настроить тумблер, чтоб добавить полетный режим или какую-нибудь другую нужную функцию.
- Обращайте внимание на настройки конфигурации коптера (меню сверху INITIAL SETUP / Mandatory Hardware-frame type): должно быть Х, но может «слететь» на +, например, при входе в Wizard. Коптер при этом теряет ориентацию в полёте, не может стабилизироваться и переворачивается.
- Для тех, кто хочет пользоваться всеми полетными режимами, и при этом не мучатся микшируя два тумблера, которые ещё и перепутать проще простого, очень рекомендую переключатель полетных режимов на Ардуинке. Чрезвычайно удобная штука, пользуюсь таким больше года. Подключается любую аппаратуру вместо потенциометра- "крутилки". До этого пробовал ставить вместо крутилки галетник на шесть позиций, удобнее чем два тумблера, но с переключателем на Ардуинке не сравнить [25].
- Если выполнены настройки на FMOD: AltHold, Loiter, то при включении режима RTL, не забывайте переводить FMOD в 0. Сразу после посадки режим переключается в один из устанновленных на FMOD и моторы могут не остановиться.
Полезные настройки для пульта DEVO F7
- Автоматический таймер при активации режима газа. Видео по настройке.
- На переключателе HOLD - предохранитель от случайного выключения газа в полёте +20.
Настройка: Function menu->Throttle Curve->Position=Pos 1, Point=Point-L, Output=20.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. (источники: [26] [27] [28]).
Настройка: 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, калибруем по новой GEAR и проверяем, что режимы переключаются и настраиваем по желанию. Логичным будет поставить на FMODE режимы AltHold и Loiter, поскольку это два режима удержания, а на MIX: Stab, Land и RTL, поскольку Land — это управляемая посадка, а RTL — автоматическая. Также на Ch7 убираем режим Simple Mode, поскольку он теряет смысл. Теперь можно использовать переключатель Gear для вкл/выкл камеры на запись. Кстати, не выходя из монитора, рекомендуется проверить каналы по стикам и выставить цифровыми триммерами в нули, а для газа L100. (Альтернативный вариант микширования [29])
Прошивки
Все свежие прошивки для контроллера DEVO-M расположены на сайте производителя. В архивном файле находится сама .bin прошивка, инструкция .pdf и оригинальная программа SerialAngel.exe при помощи которой можно узнать номер Вашей прошивки.
- v1.0 - этот файл прошивки пригодится, если захочется «откатиться» с более новых версий прошивок, если они не понравятся.
- v1.1 - заявлено улучшенное ручное управление и лучшая стабильность при режимах с GPS-позиционированием. На деле у многих отмечено худшее подведение коптера по сравнению с прошивкой v1.0.
- v1.2 - заявлены возможность использования только кабеля USB-microUSB для обновления прошивки, а также улучшенный и оптимизированный алгоритм стабилизации. На практике это едва ли заметно, но зато замечены проблемы с инициализацией GPS-модуля.
После перепрошивки обязательно нужно откалибровать компас! Иначе возможно нестабильное поведение коптера воздухе. К сожалению, перепрошивка не помогает восстановить параметры по умолчанию. При перепрошивке устанавливаются только те параметры, которые явно поменяли разработчики. Но восстановить настройки по умолчанию возможно с помощью этих файлов:
- Заводские настройки - файл .param для восстановления заводских настроек (с нового QR X350 PRO, не проверен).
- Варианты, немного отличающиеся от настроек по умолчанию, но работоспособность которых проверена владельцами: [30] [31] [32]
Файлы настроек нужно загружать через программу MissionPlanner. Загрузить - "Load", после загрузки файла обязательно нужно нажать "Write params", чтобы настройки прописались в полётном контроллере. Подробнее о настройках в разделе Настройка ArduPilot.
Внимание! Категорически НЕ рекомендуется пользоваться консольным терминалом MissionPlanner для настройки DEVO-M, а также в терминале использовать команду setuр erase — эта команда затирает настройки конфигурации прошивки в EEPROM микросхемы Аtmel 2560 с последующей невозможностью сохранения .param по кнопке WriteParams и контроллер превращается в 'кирпич' [33]. Для исправления ошибки необходимо загрузить в контроллер файл конфигурации 4kb через закладку Config/Download оригинальной программы SerialAngel.exe [34].
Примечание: При возврате со старших версий на 1.0 показывает предыдущий номер прошивки, например 1.1, хотя внутри она уже 1.0. Исправить можно загрузкой файла конфигурации 4kb.
FAQ
Можно ли использовать карты без интернета
В окне планирования миссии правой кнопкой мыши по карте - Map Tool - Prefetch.
При пользовании Droidplanner на планшете/смартфоне через 3DRradio:
- Сначала в MissionPlanner на ПК нужно захватить карты. На экране Flight Plan / Map Tool (правой кнопкой мыши) / Prefetch. После того как вы выберите область и зум, карты будут загружены на ваш компьютер в папку Mission Planner\gmapcache.
- Перед извлечением новых карт нужно почистить существующие старые карты, если памяти в планшете/смартфоне не очень много.
- После того, как новые карты извлекаются на ПК, копируем содержимое папки (под gmapcache), а затем вставляем в планшет в папку \DroidPlanner\Maps
- На Droidplaner необходимо активировать оффлайн карты (Settings/AppSettings/User Interface/Map Provider Preferences/Use Offline Maps - флажок).
- Запускаем Droidplanner с выключеным Wi-Fi на месте, где карты должны быть. Вы должны увидеть карты в автономном режиме.
Почему у меня при планировании миссии в МП не рисует линии между точками?
Не видит точку "Дом" программа МП, надо подключить коптер, пропишется последняя точка дома.
Чем полетный контроллер DEVO-M отличается в лучшую сторону от ArduPilot
- Есть у ардупилота неудобства: [35].
- Нет привычных светодиодов.
- Нет возможности откалибровать компас сведением стиков.
- Нужно удлинять USB до выхода из корпуса коптера.
- Нужно перепаивать ряд разъёмов.
- Нужно ещё впихнуть его в корпус - он больше по размерам или заморачиваться с версией мини и опять же перепаивать разъёмы.
Ссылки
- Источник
- Реализация режима «следуй за мной»
- Официальный сайт Ardupilot
- Тема на RCDesign
- Русское Wiki по настройке ARM ArduСopter от начального до высокого уровня сложностей
- Полезная ссылка по настройкам коптера APM2 arducopter
- DIY Drones Firmware builds. Здесь можно найти, например, предыдущие версии Mission Planner
Техника безопасности
- Внимание! Все эксперименты дома проводить только со снятыми винтами! Источник