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 - автоматическая посадка.
- 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.
- 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 [1] [2].
- На входе GEAR можно переключать до шести режимов, в зависимости от частоты ШИМ. Таким образом можно настроить до 6 режимов на одном канале используя 3-х и 2-х позиционный переключатель. Вкратце, на Gear если задействовать только три режима: 1165, 1425, и 1815 миллисекунд.
Если все доступные шесть, то 1165, 1295, 1425, 1555, 1685, и 1815 миллисекунд. Все режимы настраиваются, в любой самой мыслимой и разнообразной конфигурации. Совсем на пальцах; Gear по умолчанию PWM 0-1230 — режим Stabilize. PWM 1491-1620 — режим loiter, удержание в точке. PWM 1750 и выше — режим RTL возврат домой. Также задействован вход AUX2 и при желании и наличии свободного канала приемника можно задействовать вход AUX3. В MissionPlanner это соответственно Ch5, Ch7 и Сh8. Обо всем этом прекрасно описано в первоисточнике [3] [4]
Советы
- Можно загрузить старые параметры (если они были сохранены) и воспользоваться опцией "сравнить", чтобы определить что повлияло на поведение коптера.
- «Откатиться» на заводские настройки можно с помощью файлов параметров «по умолчанию», которые есть в разделе Прошивки.
Программы-планировщики
Для 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 - их подсоединять нужно к этим же контактам.
Советы
- Если коптер не армится с «неродного» пульта, то, возможно, это происходит потому, что рабочие диапазоны каналов да и направление их отработки другие. Подключайтесь к MissionPlanner, заходите на вкладку меню калибровки аппаратуры, и добивайтесь в передатчике того, чтобы:
- все каналы отрабатывали в нужном направлении (реверсами)
- диапазоны каналов от 1100 до 1900 мс (эндпойнтами)
- среднее положение канала 1500 мс (сабтриммерами).
- Если в передатчике есть лишний свободный канал, цепляйте его к Дево-М на вход AUX3, он будет виден в MissionPlanner как Ch8 и на него можно будет настроить тумблер, чтоб добавить полетный режим или какую-нибудь другую нужную функцию.
- Обращайте внимание на настройки конфигурации коптера (меню сверху INITIAL SETUP / Mandatory Hardware-frame type): должно быть Х, но может «слететь» на +, например, при входе в Wizard. Коптер при этом теряет ориентацию в полёте, не может стабилизироваться и переворачивается.
FAQ
Можно ли использовать оффлайновые карты
В окне планирования миссии правой кнопкой мыши по карте - Map Tool - Prefetch.