Создание собственной системы стабилизации
Кстати, Алексей тут постарался описал процесс, за что ему огромное спасибо!
hobby.msdatabase.ru/…/f4by_handmake
пилю свою ИНСку, хочется сделать красиво, надёжно и правильно
Предлагаю совместные усилия в этом направлении, обмен опытом так сказать…
(тоже испытываю/переделываю и т.д. и т.п.😃)
“Бандой” работать, конечно удобней, но на одном железе и в одной среде ибо, что работает в gcc, кеил может убить при оптимизации, ну и сами понимаете, что 407-й и 427-й камень вроде из одного теста а работают не совсем одинаково тот же SDOI…
но на одном железе и в одной среде ибо
Эт конечно идеальный вариант, но можно испытывать/обсуждать разные подходы на уровне алгоритмов, как ни крути, а в основном все сенсоры имеют одни и те же “слабые” места, вопрос - как эти слабые места обойти…
сергей, многие просят схему.
я понимаю что копирайты, но очень сложно “творить” даже не имея под рукой куда какие пины
можно я выложу хотябы отдельно sch без разводки платы или в pdf?
А чё Макс не сказал? я ж давал для выкладки схему и сборочный в ПДФ… Да и смысла схему прятать нет - всё в коде видно, герберы другое дело - нечего плодить халяву…
Парадокс, я сейчас в состоянии полностью повторить OP REVO, практически по памяти (а вы знаете что они 2-х версий?), но мне это ни к чему, а без герберов чёт я не видел “левых” в продаже…
Предлагаю совместные усилия в этом направлении, обмен опытом так сказать…
Не вопрос, предлагаю обсуждать общетеретические вопросы прямо здесь, а отдельные частные вопросы через личку или мыло.
В данный момент у меня проблема с “глубоким” скрещиванием акселя и абсолютных датчиков координат (барик+ ГПС). Под глубоким слиянием я понимаю прямое объединение кинематических параметров ЛА (ускорения, скорости, координат) от акселя через ВЧ фильтр и ГПС+барик через НЧ.
Вычисление идёт встречно ускорение акселя-> скорость ИНС-> координата ИНС; координаты ГПС+барик -> скорость ГПС+барик. Потом скорости и координаты объединяются через фильтр.
Всё в принципе работает, но не правильно работает интегральная корректировка горизонта… У меня получается положительная обратная связь, чем больше разгоняется ЛА тем больше наклоняется горизонт в противоположную сторону, а стабилизатор наклоняет его в сторону вектора скорости.
“Бандой” работать, конечно удобней, но на одном железе и в одной среде ибо, что работает в gcc, кеил может убить при оптимизации, ну и сами понимаете, что 407-й и 427-й камень вроде из одного теста а работают не совсем одинаково тот же SDOI…
Я пока вижу работу “банды” исключительно в обмене идеями на уровне принципов и математики, хотя в обмене “принципиальным” кодом тоже проблем не вижу. У меня например железо и алгоритмы полностью разделены, есть небольшой АПИ.
Под глубоким слиянием я понимаю
Замысел нехилый… Насколько я понял, (такие вещи лучше воспринимаются в виде блок-схемы) сразу “бросается в глаза” явная “закольцовка”: аксель>скорость>координаты и ГПС.координаты>скорость (?),
не понял - “кто кого” корректирует… (параметры одновременно корректируются что ль ??)
Да никто никого не корректирует, не совсем правильное слово, система сама себя должна корректировать, а вот как? другой вопрос, аксель в краткосрочной перспективе, ЖПС и баро в долгосрочной…
Да никто никого не корректирует
А как же фраза:
Вычисление идёт встречно
??
система сама себя должна корректировать
“система” - это есть: координаты, скорость, высота…
не понял - “кто кого” корректирует… (параметры одновременно корректируются что ль ??)
Есть набор параметров которые получаются интегрированием акселя (параметры ИНС), скорость и координаты слабо, но постоянно корректируются ГПСом и бариком. Абсолютная скорость получается дифференцированием барика и ГПСа. Если моск резко дернуть в сторону, то аксель “подкидывает дровишек” в интегратор, а ГПС и барик пытаются его “успокоить”.
система" - это есть: координаты, скорость, высота…
Все параметры в декартовом пространстве в виде 3хмерных векторов.
такие вещи лучше воспринимаются в виде блок-схемы
Это можно, но не сегодня.
По сути сам фильтр есть ПИД, только ступенчатый. Вверх идёт интеграция акселя, вниз дифференциация ГПС и баро. Потому я и пишу -“встречно”, предполагаю что таким образом подбором весовых коэффициентов можно получить приемлемую ИНС. Алхимия короче ))))
И всё это более менее работает, но вот беда с горизонтом, его нужно корректировать производной ошибки скорости (ускорением исправления 😎 ) ИНС… Вот тут вся собака порылась.
Алхимия короче ))))
алхимия у Саши Маховика ))) там на вие автоматический подбор коэффициентов )))
там на вие автоматический подбор коэффициентов )))
Это круто! Смотрел как то его старые ролики, полет весьма качественный.
Тоже надо какнить кино снять. Сравнить работу АП и моей ИНС на параллельных Ф4БЫ по коррекции центростремительного ускорения, но всё руки не доходят карусельку сляпать…
А тем временем в далёкой далёкой галактике )))
А что в консоли пишет?
может надо sd вставить или фрам стереть, а может и то и другое?
При подключении через консоль выводит стандартное меню команд.
При подключении на других страницах пишет вот это (скрин 2). При нажатии на детали, показывает данный экран (скрин 3)
На СД карте создана директория APM, в ней файл BOOT.txt, с записью: "External hmc5883 start failed "
это консоль оси, арду не запущен…
вытащить sd
из консоли
mtd start
mtd erase
лучше действовать так:
подключиться терминалом к первому усарту на скорости 57600 и включить плату - выдаст полный стартовый лог оси - можно посмотреть что не так при старте…
набор параметров которые получаются интегрированием акселя
Я тоже пробовал интегрировать аксель… , первый интеграл - “ещё ладно”, а второй - “сразу в небо” (шумы дают своё)… , короче попробовал и бросил… его (интеграл) надо чем то зверски тормозить… а если нет GPS (например плохой приём…?),
короче бросил… мыслей пока нет… и не факт что появятся…
"External hmc5883 start failed "
внешний компас, его нет…
короче бросил… мыслей пока нет… и не факт что появятся…
оно даже на АВР работает…
в вие первые наработки маховика по альхолду есть, можно подглядеть…
Я тоже пробовал интегрировать аксель… , первый интеграл - “ещё ладно”, а второй - “сразу в небо” (шумы дают своё)… , короче попробовал и бросил… его (интеграл) надо чем то зверски тормозить… а если нет GPS (например плохой приём…?),
У меня всё работает, интегрирование как раз проще. По сути это осреднение показаний акселя. Единственная причина по которой интеграл координат неконтролируемо улетает - это уплывание скорости ИНС. В моём случае скорость (первый интеграл) придерживается диф. значением с абсолютных датчиков и корректируется ошибкой координат ИНС. Интегральная скорость также начинает ползти при отклонении искусственного горизонта (ИГ) от истинного, при этом в покое вектор акселя -вектор G не равны нулю, появляется ошибочное. Эта же ошибка корректируется накапливаясь в интеграле скорости корректирует ИГ.
оно даже на АВР работает…
С точки зрения алгоритма тип вычислителя не важен, главное чтобы справлялся с объёмом, тем более что всё пишется на С/С++. Я изначально выбирал СТМ32, т.к. не хотел столкнуться потолком производительности в “самый интересный момент”.
в вие первые наработки маховика по альхолду есть, можно подглядеть…
Тут у меня всё в порядке, какнить кино покажу. Сейчас проблема именно в коррекции горизонта по ошибке линейной скорости.
а если нет GPS (например плохой приём…?),
Здесь вообще нет проблем: абсолютные координаты постоянны, скорость постоянна и равна нулю. ИНС в долгосрочной перспективе (в переделах 1 секунды) подтягивается к этим значениям, при этом может определять, а стаб парировать, резкие толчки.
скорость постоянна и равна нулю.
где? скорость чего равна нулю? Ты в курсе, что снайперы стреляя на дальние расстояния учитывают скорость вращения земли? А ты аппарат намного медленней пули оставляешь лететь неизвестно куда? Блин вот где-то ж видел/читал в ins учёт этих дел… именно скорость вращения земли было…
Линейная скорость вращения Земли (на экваторе) — 465,1013 м/с (1674,365 км/ч).