ПО для автопилотов-ликбез
ПО для автопилотов-----автор Книжников ВВ
Существует множество полётных контролеров для БПЛА разных фирм производителей со своим оригинальным ПО! все узкозаточенные АП разрабатывались профи в своей области применения-----например для крылатых дронов очень хороша " Фэйютеч", для мультикоптеров " Тарот" и "Ди-джи-ай" и ПО писали спецы понимающие особенности САУ для конкретного вида ла !!! Но сейчас стали очень популярны ПО с открытым кодом типа " Ардупилот" для всех видов роботов , " Бетафлайт" для спортивных квадрокоптеров и "Айнав" для самолётов и поисковых мультироторов-----прелесть в том что у "бетки" и "айнав" один графический движок и похожие алгоритмы пользования и настроек!
Так как оболочки писали программисты-любители, то каждые придумывали свои термины далёкие от общепринятых понятий из авиации и САУ!!! Например графическую оболочку настройки автопилота как только не называют и "мишен-плэнер" и "ассистент" и "конфигуратор"----- хотя по сути это одно и тоже или по русски "настройщик"! В каждом ПО существует множество настроек и миксов, но тем не менее существуют всего четыре основных режима управления дроном------
первый это ручной----- или "RC" или "manual" или "acro" или "sport"
второй это удержание горизонта----- или "2d" или "atti " или "Angle"
третий это сохранение дрона при потери связи "fail-safe"----- или "возврат домой-RTH" по ЖПС или " аварийная автопосадка" при разряде акку
четвертый это движение по запрограммированному маршруту опираясь на точки GPS и 3D карты или полная "автономка" !!!
есть ещё специфические типа "зависания" это ЖПС удержание точки и высоты или глубины , объезд препятствий, сопровождение цели типа "следуй за мной", групповой полёт "рой" и другие!!!
Миксы нужны для правильного управления ла со своей оригинальной аэродинамической схемой типа---мультикоптер или крылатый дрон, где по разному расположены аэрорули и ВМГ и он имеют свои особенности подключения рулевых машинок, регуляторов хода и их совместная работа----обычно для выбора схемы микширования команд указаны графические картинки !!!
как прошить полётный контроллер?----[1]
Прошивка----- это загрузочная программа емкостью от сотен Кбайт и до несколько десятков Мбайт для управления аппаратной части автопилота стандартными протоколами связи через порты уарт АЦП и ЦАП----например
ру приёмник -----"РРМ" или цифровые "Sbus" и другие
сервоприводы и регуляторы хода----"РWМ" или цифровые "multishot" и другие
светодиодное освещение и мигание, звуковая"пищалка"
настройка видеопередатчика и камеры и телеметрии-----Тх через "ОSD"
ЖПС приёмник---- "nmеа" через Rх , "ublox" через Rх и Тх
лидар и уз-радар---Rх
На практике хорошо настроенную систему никогда нельзя трогать и пытаться улучшить апгрейдом----проблема в несовместимости некоторых электронных модулей и программно не решается в принципе!!!
Для каждого полётника существует своя версия оригинальной прошивки указанная производителем и зависит от архитектуры ЧИПА !!!
Внимание---при перепрошивки должно быть отключено бортовое питание АП и желательно отсоединить все периферийные цифровые устройства типа ру приемник, серво, регуляторы хода, видеопередатчик и ЖПС----иначе возможно "окирпичить" ЧИПы!!!
Продвинутые пользователи в программировании умеют переназначать порты процессора для адаптации к различным периферийным устройствам---- https://blog.rcdetails.info/menyaem-poryadok-motorov-..
айтишный юмор----[2]
Конфигуратор "Betaflight" имеет русскоязычную инструкцию и удобна в пользовании!!! правда она слишком перенасыщена непонятными терминами, коэффициентами и функциями и что бы в ней полностью разобраться нужно много времени и внимания----поэтому есть библиотека рекомендованных преднастроек под конкретный сетап дрона!!!
Основная формула первоначальной настройки пидов----Prop=200/Кт, где для мультикоптеров Кт=Тстмах=n Fст/mg ----то есть общая максимальная тяговооруженность на стопе!
Алгоритм подбора ПИДов для квадрокоптера Кт=Тст=4 Fст/mg=4х0.5=2же, несмотря на то что все коптеры аэродинамически не устойчивы начинать надо только с коэф Prop=(ROLL 100----PITCH 100---YAW 100)----при условии симметричной схемы по моментам инерции осей Х и У!!! все остальные по нулям I=0. Dмах=0. Dv=0.----кроме всех расходов Ff=(500-500-500)!!! в меню "настройка профилей PID" выключены все функции, а вот фильтры и райты дефолтные!!!!!!
Для мультикоптера включить в конфигурации "AIRMODE"----основной режим "Angle"----настроить "fail-safe" на мягкую посадку!!!
делаем подлёт на высоту 0.5-1м над травой или снегом---рулим и смотрим за реакцией коптера! если дрожит уменьшаем Prop на каждую ось по 5-10 единиц пока не прекратит, если как пьяный качается то увеличиваем Prop на каждую ось по 5-10 единиц пока не прекратит!!!
А вот дальше начинаем добавлять только по одной функции и смотреть за реакцией стабилизации и управления коптера в полёте----если видим улучшение то применяем эту фишку, если нет то полностью исключаем эту нам ненужную настройку навсегда!!!
Для остальных коэф. можно применить правило "золотого сечения"----Ff=Prop, I=0.62Рrop, D=0.38Prop, но для правильных коптеров эти "костыли" не нужны!!!
Математические фильтры Калмана нейтрализуют паразитные данные от механических колебаний и гармоник упругой системы "типа луча с грузом на кончике (мотор и винт)", которые шумят на гиро и аксель датчиках, но только до определённой амплитуды меньшей самого полезного сигнала, где средне-квадратичное значение ускорения вибраций не должно превышать 1 же!!! Сама жесткость материала или модуль упругости, площадь сечение луча повышают резонансовую частоту собственных колебаний, а длина луча и масса э-ВМГ понижают её---обычно для нано-квадриков это 200-300 Гц, для микро 100-150 Гц, для мини 50-70, для миди размеров уже 25-30Гц!
fрез=0.16(Kx S/m)^0.5/l , где Куп-коэф.поперечной упругости балки (Н/м), S-сечение (м2), l-длина (м), m-масса луча и э-ВМГ (кг)!!!
И вообще на мой взгляд как эксперта в ла ----грамотно собранный дрон с чистой аэродинамикой, правильной центровкой, с симметричной, безлюфтовой механикой, отбалансированной ВМГ и демпферной подложкой для АП сам по себе требует минимум настроек всяких коэффициентов и подключенных функций----90% фишек совсем не нужны!!!
Телеметрия через "OSD" на аналоговое видео-онлайн полноценное, активируешь нужный показатель ----главное не перегружать экран символами, иначе саму картинку будет не видно! Двигать правильно так —----наводишь курсор мышкой на нужный значок данных телеметрии на картинке "ОСД" самого конфигуратора и перетаскиваешь куда хочешь!!!
Главные показатели телеметрии----это напряжение и расход ёмкости акку, высота и скорость, расстояние и направление до дома, время, "RSSI"!!! Второстепенные----сила тока, мощность, обороты, координаты ЖПС, горизонт, углы крена и тангажа, азимут, пробег, перегрузка, температура!!!
В конфигураторе слишком много ненужных "перделок и свистелок" благодаря большой производительности современных АП, которые просто сжирают ресурсы вычислений, тормозят и сильно греется ЧИП -----приходится соблюдать принцип минимальной самодостаточности в хотелках для конкретного дрона!!! Например------
1)ACRO- свободный пилотаж для мультикоптеров.
2)ANGLE - режим со стабилизацией, для которого можно задать максимальный допустимый угол наклона ЛА----работают гиро-аксели и удобна для мониторинга.
3)HORIZON - тоже стабилизация, но предполагающая более агрессивное управление для гонок.
4)AIRMODE - вспомогательный режим для самолёта и подруливают только гиро-датчики!!!
5)POSHOLD - удержание позиции по GPS только для мультикоптеров и удобна для поиска.
6)ALTHOLD - удержание высоты по барометру-----идеально для самолёта при круизе.
7)MAG - удержание курса по компасу при отсутствии ЖПС.
8)RTH - возврат домой по ЖПС.
9)WAYРOINT - полёт по запрограммированному маршруту.
Фишка в том что при активации режима самолёт или лк----полётник видит серво и графически меняет уровень "РWМ" от акселей и через приёмник с ру-пульта, а на выходе по нулям ,хотя там на шине ВМГ аж 8 каналов есть для октокоптера!!!
Можно выдавать на все моторы стандартный "РWМ" 50гц и они все работают и даже серво если заменить, но положение рычага соответствует управление газом моторов!!!
я ни разу не программист, но сумел решить эту задачу используя знания САУ методом "ход конем"------ надо в конфигураторе арминг указать на 180 градусов, потом войти в меню группы "моторы" —---затем выбрать PWM на 50ГЦ и аэродинамическую схему квадро-Х для лк с двумя э-ВМГ и квадро-крест для одномоторного самолёта-классика-----все 4 выхода встанут на 1500 мкс при арминге и на среднем газу-----передний мотор М4 вдоль оси полёта------боковые это элероны серво М2 и М3-----задний серво М1 это элеватор или руль высоты------реверсы работы аэрорулей делаются механически методом установки кабанчика на ось рм в зависимости от направления поворота!!!
Особенность работы в самолётной настройке это применение только самолётных регуляторов хода со стандартным "РWМ" 50гц прошивкой ---коптерные прошивки рх типа "blheli" не корректно работают!!!
режим "Horizon" адекватно работает на среднем газу----"Anglе" на полном газу-------на малом газу все элероны работают как флапероны вниз, а руль высоты верх это как режим парашютирования!!!
Внимание-особенность обоих конфигураторов! после настройки на компе, выйти из конфигуратора (отключиться), отсоединить USB кабель и полностью передернуть электро-питание дрона, только тогда все изменения загрузятся в рабочее положение и АП заработает правильно!!!
В настройки "меню" полётника можно войти с ру-передатчика----при выключенном "арминге" ручка газа в центр и влево, штурвал вперёд----можно визуально ползать по картинке "ОСД" экрана видеомонитора верх-вниз тангажом----выбирать настройки креном влево-право или рысканьем----выходить из меню в пункте "сохранить и выйти" !!!
Есть "Inav", но там всё на английском и очень мало поддерживаемых полётников ----алгоритм настройки пидов как у "Betaflight"!!! для самолётов в отличии от мультироторов возможно применение простых ЖПС-приёмников без встроенного магнитного компаса всего с четырьмя пинами G(земля-минус), +U(напряжение питания 3.3 или 5 Вольт), Rx(шина приёмная подключается на шину передающую АП), Tx(шина передающая на шину приёмнную)!!!
Основная формула первоначальной настройки пидов для аэродинамически устойчивых крылатых ла----по тангажу Prop=100/Кт, где перегрузка по вертикали для самолётов и лк Кт=Тст АКмах
ПИДЫ для летающего крыла-бесхвостки при Кт=1х6=6же!-----Prop=(ROLL 10----PITCH 17---YAW 4) с учётом того что плечо центра давления элевона по крену у лк относительно продольной оси вращения X обычно в 1.7 раза больше, чем плечо центра давления элевона по тангажу относительно поперечной оси вращения Y проходящей через центра масс ла, а это значит что по обратной зависимости чувствительности от длин плеч ROLL=10 в 1.7 раза меньше, чем PITCH=17!!!
все остальные по нулям I=0. Dмах=0. Dv=0.----все Ff=(250-250-250) по умолчанию это коэф. решимости рулить! В " айнав" коэф. решимости рулить "Ff" имеет другую размерность чем в "бетке"! в меню "настройка профилей PID" выключены все функции и настройки кроме линейного газа=100%, а вот фильтры и райты дефолтные!!!
Внимание!!!особенность "айнав"-----чтобы "арминг" сработал с пульта ру все триммера и суб-триммера крена, тангажа и рыскания обязательно по НУЛЯМ, режим "мануал", газ и все миксы выключены!!! чтобы заработал возврат домой обязательно активировать при "fail-safe" режим "NAV RTH" на какой-нибудь многопозиционный тумблер дискретных команд!!!
настройка самолёта ----[3]
Для "Ардупилот" смотри статью "Mission Planner. Полный список параметров"