Создание собственной системы стабилизации

rual
ИльяПРо:

Но бывает ловля глитча и все в хлам, в идеале все случаи надо исследовать и по идее лишние взаимосвязи снижают устойчивость.

Есть возможность всё попробовать безопасно: Xplane + Симулинк, могу выложить примитивы. Или даже “проигрывать” алго в железе, а Хплан будет гнать данные.

jShadow
ИльяПРо:

Раньше при резких поворотах по курсу было слышно пятигерцовые стуки от тмоторов при коррекции по GPS и было небольшое уплывание по горизонтали. Также при зависании в одной точке спусти несколько минут коптер начинал гулять, так как ориентация не корректировалась без движения.

Хм… У меня обычный альфа-бета-гамма комплиментарник работает не хуже, ничего не уплывает и не гуляет. Хотя у меня GPS не слишком далеко от ЦТ находится…

А вообще GPS для коррекции ориентации - штука интересная - насколько я понял логику - при наклонах смещается позиция, отдаваемая GPS и это смещение идет в расчеты.

ИльяПРо
rual:

Есть возможность всё попробовать безопасно: Xplane + Симулинк, могу выложить примитивы. Или даже “проигрывать” алго в железе, а Хплан будет гнать данные.

Хорошая мысль, давайте скооперируемся, у меня скоро опять работа начнется, коптером некогда заниматься будет. Я могу вам предоставить исходники, или как то иначе отработать в симуляторе.

jShadow:

Хм… У меня обычный альфа-бета-гамма комплиментарник работает не хуже, ничего не уплывает и не гуляет. Хотя у меня GPS не слишком далеко от ЦТ находится…

У меня ничего не вышло с комплиментарником. Те видео, что я показывал летом, там коптер на комплиментарнике, можете сравнить с текущими на UKF. 2 года назад у меня был Arducopter, он тоже на комплиментарнике тогда был, летал медленно, неуверенно. Ничего по качеству лучше UKF я не видел. Не говорю что UKF - это панацея. У него надежность все таки помоему не очень, из-за зависимости всех переменных между собой, но если данные хорошие, то UKF очень круто себя показывает.
Вот есть видео, где показано как GPS корректирует ориентацию в фильтре Калмана. Я не знаю, как сделать это на комплиментраниках, то есть что за формулы зависимости кватерниона от GPS скорости. По курсу еще более менее представляю, но чтобы по всем 3 осям - нет. Момент на видео “orientation from velocity. Magic!”

Хочу Phantom купить и потестить его, хотя бы косвенно, но можно будет узнать что там за алгоритмы.

jShadow
ИльяПРо:

Я не знаю, как сделать это на комплиментраниках

Я тоже 😦 А так хочется летать без всякого компаса.

ИльяПРо:

Хочу Phantom купить и потестить его, хотя бы косвенно, но можно будет узнать что там за алгоритмы.

Это, кстати, идея интересная.

ИльяПРо

Привет всем, выношу на суд видео, как есть, пытался коптер посильнее погонять. Местами задевал стик газа и он то проваливался то наооборот поднимался по высоте, при том он попискивает. Управлял в режиме удержания позиции. Вообщем принимаю критику, у меня нет других аппаратов, поэтому не могу объективно оценить качество, вообщем интересно ваше мнение, сравнение с другими контроллерами.

rual
ИльяПРо:

Вообщем принимаю критику

Илья, хотелось бы посмотреть длительное висение и если возможно с внесенными в компас смещениями.

ИльяПРо:

Хорошая мысль, давайте скооперируемся

Установи Хпплейн 10 и скачай МатЛаб2011 или младше.

ИльяПРо
rual:

Илья, хотелось бы посмотреть длительное висение и если возможно с внесенными в компас смещениями.

то есть взлететь, зависнуть и поднести магнит к компасу? потом дальше висеть, минут 5 нормально?

rual:

Установи Хпплейн 10 и скачай МатЛаб2011 или младше.

у меня матлаб2015 не подойдет?

alexeykozin
ИльяПРо:

Привет всем, выношу на суд видео

отличный результат.
удержание смотрится отлично. с учетом МАГНИТОгорска видимо ваша прошивка понимает что у компаса бывает север на юге)

по видео, мега классый звук моторов, сужу по нему - на всех этапах полета и стабилизация работает правильно, ровно столько сколько надо, достаточно агресивно но без перекомпенсации, отлично настроены пиды стаба и удержания позиции.

заметил несколько схожестей со знакомыми мне аппаратами…
удлиненные лучи и очень уж знакомый звук при получении команды на изменение высоты.
гдето я это уже видел)

вопрос - а есть какой нить блог или обсуждение вашей разработки, железо, софт ?

ИльяПРо
alexeykozin:

заметил несколько схожестей со знакомыми мне аппаратами…
удлиненные лучи и очень уж знакомый звук при получении команды на изменение высоты.
гдето я это уже видел)

Да-да удлиненные лучи и звук я “подсмотрел” у visasta. На самом деле длинные лучи много раз спасали пропеллеры на начальном этапе, а звук просто прикольный, помогает определить где я контролирую, а где идет гуляние, потому что стик газа без пружины, бывает непонятно где центр, а звук помогает. Да и вообще уж очень хотелось сделать такой же полетник по алгоритмам. Но замечу у него все равно круче.
Вы не подумайте мне Виктор код бы не дал, так что данный полетник написан моими усилиями.

alexeykozin:

вопрос - а есть какой нить блог или обсуждение вашей разработки, железо, софт ?

Блога нет, все что выкладываю идет на форум и на youtube. так что если есть вопросы, то я здесь отвечу.

alexeykozin:

отличный результат.

на самом деле я бы улучшил контуры управления, а именно поменял бы построение контуров угла и угловой скорости. Сейчас контур угла (П регулятор) идет внешним по отношению к контуру угловой скорости (ПИД регулятор) и задает уставку для него. А я хотел бы попробывать их сделать паралелельными, может добавить или убрать некоторые звенья.
А также надо микшер улучшить, сделать с приоритетами.
Дальше добавить интерполяцию 2-4 порядка задания маршрута между точками для плавности. Добавить возврат домой, режим headfree, и все пожалуй.
Ну и совсем уж мечта это соединить текущие датчики с камерой, чтоб можно было летать в помещении и вблизи зданий и когда глушилка работает. Пока есть прикидки сделать это в едином UKF, в качестве железки либо мини PC, либо систему на кристалле.

alexeykozin
ИльяПРо:

Блога нет, все что выкладываю идет на форум и на youtube. так что если есть вопросы, то я здесь отвечу.

если выкладывать в общей теме, то в случае интереса у других пользователей, ваши посты будут замешиваться с общим обсуждением и вновь интересующиеся будут переспрашивать.

а сейчас какой на коптере контроллер? что то типовое?

ИльяПРо:

Вы не подумайте мне Виктор код бы не дал, так что данный полетник написан моими усилиями.

не в коем случае, его хоть убей -он не даст.))

rual
ИльяПРо:

то есть взлететь, зависнуть и поднести магнит к компасу? потом дальше висеть, минут 5 нормально?

Да, пойдет. Но ещё интересней взлететь с “кривым” компасом (15-20 гр) и переключиться в удержание.

ИльяПРо:

у меня матлаб2015 не подойдет?

Думаю да, на до только проверить подключение компилятора к матлабу (команда mex -setup)

SergDoc
alexeykozin:

отличный результат.

Видишь Алексей, чем “свободное плавание” лучше вечной гонки за арду? Нету никаких - дай 3.4, дай ваншот/дешот… есть только результат…
Хотя как посмотреть, F4BY давно официально в betaflight и её там поддерживают, но тема про это давно загнулась…

jShadow
SergDoc:

Видишь Алексей, чем “свободное плавание” лучше вечной гонки за арду? Нету никаких - дай 3.4, дай ваншот/дешот… есть только результат…

Чтобы софт стал массовым, приходится вводить “популярные” фишки - голый маркетинг, но на него приходится тратить время. В случае работы только “на результат” софт обречен оставаться экспериментальным. Никому не нужно удержание позиции с сантиметровой точностью, если контроллер/софт не поддерживает какой-нибудь популярный вундер-шот (или частоту обновления 100500кГц).

ИльяПРо:

на самом деле я бы улучшил контуры управления, а именно поменял бы построение контуров угла и угловой скорости. Сейчас контур угла (П регулятор) идет внешним по отношению к контуру угловой скорости (ПИД регулятор) и задает уставку для него. А я хотел бы попробывать их сделать паралелельными, может добавить или убрать некоторые звенья.
А также надо микшер улучшить, сделать с приоритетами.

Улучшенный контур управления углом и микшер с приоритетами - класс, это я только приветствую.

ИльяПРо:

Пока есть прикидки сделать это в едином UKF

Изначально плохая идея - не дает гибкости. В едином фильтре в случае отсутствия каких-либо сенсоров возникнут проблемы. Комплементарник в этом плане намного гибче и незначительно хуже. Уж прошу прощения, но на мой взгляд все эти KF/EKF/UKF в наших приложениях заметных преимуществ не дают, а сложность системы увеличивают значительно.

Как самообразовательный проект - все это здорово, но практическая ценность у Вашей прошивки пока минимальная.

ИльяПРо
jShadow:

Изначально плохая идея - не дает гибкости. В едином фильтре в случае отсутствия каких-либо сенсоров возникнут проблемы. Комплементарник в этом плане намного гибче и незначительно хуже. Уж прошу прощения, но на мой взгляд все эти KF/EKF/UKF в наших приложениях заметных преимуществ не дают, а сложность системы увеличивают значительно.

Да нет, проблем не будет, в случае отсутствия какого либо сенсора я просто пропускаю шаг Update конкретно этого сенсора. При этом я могу встроить какие угодно сенсоры, главное их связать с вектором состояния.
Я давно на комплиментарниках не летал, не знаю насколько они лучше себя показывают. Я просто помню, что на arducoptere у меня при резких газах, при поворотах курс сильно колебался, опять же из-за компаса, в режиме poshold я не мог быстро летать, удержание было не очень. Но с тех пор прошло 3 года. Поэтому покажите видео с агрессивными полетами, как у меня в режиме poshold и если результат будет не хуже, тогда да комплиментарники - это идеал.
В UKF очень красивая математика, там не надо гадать какой коэфициент поставить на фильтр, или добавить еще одно звено, расчитываьт передаточные функции, и то если все будет нормально, то летать бует хорошо, только на коптере. С динакмикой самолета уже все коэффициенты придется переподбирать, а то и структуру менять. В UKF достаточно заложить мат модель датчиков, модель движения и все, при этом можно быстро и легко добавлять и убирать датчики, фильтр сам разберется как их использовать. Очень универсальная штука для многих применений. Даже статью кто-то кидал сюда, про фильтр калмана в китайском спутнике, то есть не зря именно его используют, а не комплиментарники.

jShadow:

Как самообразовательный проект - все это здорово, но практическая ценность у Вашей прошивки пока минимальная.

Да я и не планировал никуда продавать и внедрять этот проект, сам для себя учусь, просто хобби. Правильно - самообразовательный проект. Просто чем больше понимаю этот UKF, тем скуднее мне видется тема с комплиментарниками.

jShadow
ИльяПРо:

С динакмикой самолета уже все коэффициенты придется переподбирать, а то и структуру менять.

Мой Альфа-Бета-Гамма комплиментарник без каких-либо изменений работает на коптерах любого размера и самолетах от 60см до 2.5м.

ИльяПРо:

В UKF очень красивая математика, там не надо гадать какой коэфициент поставить на фильтр

ИльяПРо:

фильтр сам разберется как их использовать

Вот это самое плохое, что есть в Кальмане. Поскольку веса, к которым он сходится в общем случае всегда разные, то и поведение фильтра будет всегда различным. Отсюда часто возникают ситуации, когда тот же последний Арду то висит как прибитый, то в том же месте взлета колбасится как пьяный.

С альфа-бета-гамма все проще - мат модель, шаги предиктор-корректор, почти Кальман, только без обновления ковариации. Веса задаются фиксированно. Минус - веса надо подбирать или считать, взаимосвязь переменных выяснять самому и соответствунно встраивать в мат. модель. Плюсы - на 100% предсказуемое и повторяемое поведение, дестабилизация модели невозможна в принципе - веса-то не меняются.

ИльяПРо:

оэтому покажите видео с агрессивными полетами, как у меня в режиме poshold и если результат будет не хуже, тогда да комплиментарники - это идеал.

Специально для вас запишу когда погода позволит 😁

ИльяПРо:

насколько они лучше себя показывают

Я не говорил что они лучше. Они проще в понимании, реализации и предсказуемее в поведении.

ИльяПРо
jShadow:

Мой Альфа-Бета-Гамма комплиментарник без каких-либо изменений работает на коптерах любого размера и самолетах от 60см до 2.5м.

А как идет компенсирование линейных и центробежных ускорений?

jShadow:

Вот это самое плохое, что есть в Кальмане.

Мне это показалось преимуществом, пока что. Опять же надо модель в матлабе построить, погонять в различных режимах, с различными битыми датчиками, и сделать выводы, пока я могу полагаться на интуицию, поэтому не буду спорить, в определенных ситуациях Калман возможно и рухнет, а комплиментарник нет, а можнт быть и наоборот, это надо выяснять при конкретных обстоятельствах. А пока это все слова, ничем не подкрепленные. Опять же на Калмане можно видеокамеру пристроить, все датчики в единой сущности. На комплиментарнике если и получится, то весьма костыльно, имхо.

jShadow:

Я не говорил что они лучше. Они проще в понимании, реализации и предсказуемее в поведении.

Это так до тех пор, пока фильтр Калмана - это “магия”. Если в этом хорошо разобраться все станет предсказуемым. К тому же зачем делать хуже, если можно сделать лучше.

jShadow:

Специально для вас запишу когда погода позволит

Заметьте, я летал в ветренную погоду, не просто удержание, которым все хвастаются, а активное маневрирование.

jShadow:

Отсюда часто возникают ситуации, когда тот же последний Арду то висит как прибитый, то в том же месте взлета колбасится как пьяный.

У арду EKF и насколько я знаю, он использует компас в полете, отсюда могут быть многие проблемы. И у вас в комплиментарнике тоже компас используется? А это накладывает некоторые ограничения (вынос компаса от силовухи, закрутка проводов специальным способом, точная калибровка компаса, компенсация магнитного поля от тока, дурацкая шина i2c, нельзя летать рядом с металлоконструкциями и рудниками, дополнительные сложности с таблицей магнитных склонений и т.д.)

jShadow
ИльяПРо:

А как идет компенсирование линейных и центробежных ускорений?

Никак. Как показала практика - это не особо значимо для расчетов положения в реальной жизни. Математика говорит об обратном, но на практике установка ДУС и акселерометра на пару сантиметров не в центре вращения погоды не делает.

ИльяПРо:

Опять же надо модель в матлабе построить, погонять в различных режимах, с различными битыми датчиками

Я практик и если оно летает на реальном аппарате, а лучше на паре тысяч разных аппаратов - доказывает жизнеспособность алгоритма больше чем любая матлабовская модель. Кстати о моделях - идеально выверенный с математической точки зрения метод слияния магнитометра с кватернионом ориентации имени Мадгвика на практике давал огромные погрешности в установке горизонта, математику пришлось переделывать для работы с реальным миром.

ИльяПРо:

Опять же на Калмане можно видеокамеру пристроить, все датчики в единой сущности. На комплиментарнике если и получится, то весьма костыльно, имхо.

У нас разные понятия о комплиментарнике. В альфа-бета-гамма фильтре в основе те же принципы что у фильтра Кальмана - математическая модель экстраполяции состояния и коррекция по наблюдаемым данным. Единственное чего нет - это расчета матрицы ковариации и коэффициентов усиления, используемых при коррекции.

ИльяПРо:

На комплиментарнике если и получится, то весьма костыльно

С учетом вышесказанного - не сложнее чем на Кальмане. Видеокамера - еще один датчик линейных скоростей, только и всего. Итоговая коррекция считается как среднее взвешенное отклонений относительно датчиков.

ИльяПРо:

Это так до тех пор, пока фильтр Калмана - это “магия”. Если в этом хорошо разобраться все станет предсказуемым.

Нет там никакой магии, только математика. Предсказуемым оно никогда не станет, поскольку алгоритм сам “принимает решение” относительно коэффициентов усиления, т.е. может предпочесть неточный датчик, если, по счастливой случайности в какой-то период времени он будет хорошо коррелировать с моделью, в результате расхождение и неадекватное поведение пока модель не стабилизируется снова (если вообще успеет стабилизироваться).

Пример из практики: GPS - достаточно точный датчик, его вес в модели обычно довольно велик. Фокус в том, что GPS Fix по спутникам позиционирования доступен намного (иногда на десятки минут) раньше, чем поправка по спутникам коррекции SBAS. В момент коррекции позиция прыгает на значительную величину - до десятков метров. Если это событие отдать на откуп математике фильтра - на выходе в момент “прыжка” получим огромную фантомную скорость, которой в действительности нет. Этим болеют все фильтры - что комплиментарник, что Кальман. А вы еще и ориентацию по GPS корректируете. Ради интереса (мне, кстати, тоже интересно), скормите своей модели прыжок наблюдаемой позиции на 10м и посмотрите что будет с ориентацией и скоростями.

ИльяПРо:

К тому же зачем делать хуже, если можно сделать лучше.

Ограниченные вычислительные ресурсы. Если два алгоритма отличаются по вычислительной сложности на 1000%, а по точности на 10% - выбор в пользу более простого алгоритма очевиден.

ИльяПРо:

Заметьте, я летал в ветренную погоду, не просто удержание, которым все хвастаются, а активное маневрирование.

У меня летает автоматика по маршруту, об удержании тут речи не идет - в висении всё работает хорошо, кроме откровенно халтурных реализаций.

ИльяПРо:

У арду EKF и насколько я знаю, он использует компас в полете, отсюда могут быть многие проблемы.

Да, у них EKF и из-за его линейности он расходится при малейших проблемах с датчиками.

ИльяПРо:

И у вас в комплиментарнике тоже компас используется? А это накладывает некоторые ограничения (вынос компаса от силовухи, закрутка проводов специальным способом, точная калибровка компаса, компенсация магнитного поля от тока, дурацкая шина i2c, нельзя летать рядом с металлоконструкциями и рудниками, дополнительные сложности с таблицей магнитных склонений и т.д.)

Тут не могу не согласиться. Компас - зло. 90% проблем пользователей - компас. У меня есть идеи по коррекции курса по GPS, но это пока на стадии сбора экспериментальных данных - зима накладывает свои особенности.

ИльяПРо
jShadow:

Никак. Как показала практика - это не особо значимо для расчетов положения в реальной жизни.

Это сильный аргумент.Хорошо, ваша правда, если вы это прочуствовали, попробывали на опыте, тогда вы правы, а я нет. Если этой точности хватает, тогда UKF правда не нужен. По моему опыту даже небольшие линейные ускорения в динамике коптера слегка неправильно коркектируют ориентацию, и при небольших различиях от истинной ориентации двойное интегрирование ускорений вносит уже существенную ошибку в положение, поэтому я так трепетно отношусь к нахождению истинной ориентации. Но раз опыт говорит, что это делать не надо, тогда я не прав.

jShadow:

Я практик и если оно летает на реальном аппарате, а лучше на паре тысяч разных аппаратов - доказывает жизнеспособность алгоритма больше чем любая матлабовская модель

Соглашусь с вами полностью. Просто для экономии моего времени и сил модель может показать основные принципы. А так да реальный опыт ценнее.

jShadow:

стати о моделях - идеально выверенный с математической точки зрения метод слияния магнитометра с кватернионом ориентации имени Мадгвика на практике давал огромные погрешности в установке горизонта, математику пришлось переделывать для работы с реальным миром.

Фильтр Магдвика мне тоже не понравился, его и не использую.

jShadow:

Пример из практики: GPS - достаточно точный датчик, его вес в модели обычно довольно велик. Фокус в том, что GPS Fix по спутникам позиционирования доступен намного (иногда на десятки минут) раньше, чем поправка по спутникам коррекции SBAS. В момент коррекции позиция прыгает на значительную величину - до десятков метров. Если это событие отдать на откуп математике фильтра - на выходе в момент “прыжка” получим огромную фантомную скорость, которой в действительности нет. Этим болеют все фильтры - что комплиментарник, что Кальман. А вы еще и ориентацию по GPS корректируете. Ради интереса (мне, кстати, тоже интересно), скормите своей модели прыжок в наблюдаемой позиции на 10м и посмотрите что будет с ориентацией и скоростями.

Вот как раз это я и хочу проверить на модели. Я об этих негативных эффектах сам говорил несколько сообщений назад. Для отсеивания таких эффектов разработчик должен сам придумать алгоритм регистрации глитчей, при ловле глитча просто повысить дисперсию шума GPS, фильтр не будет учитывать эти данные. Либо как сделал visasta у него отдельно махони на ориентацию и отдельно UKF для положения, насколько я смог догадаться.

jShadow:

Нет там никакой магии, только математика. Предсказуемым оно никогда не станет, поскольку алгоритм сам “принимает решение” относительно коэффициентов усиления, т.е. может предпочесть неточный датчик, если, по счастливой случайности в какой-то период времени он будет хорошо коррелировать с моделью, в результате расхождение и неадекватное поведение пока модель не стабилизируется снова (если вообще успеет стабилизироваться).

Вот это ничем не подтвержденные слова. В спутниках используют фильтр Калмана, а не комплиментарники уже десятки лет. Полагаю это весомый аргумент.

jShadow:

Ограниченные вычислительные ресурсы. Если два алгоритма отличаются по вычислительной сложности на 1000% раз, а по точности на 10% - выбор в пользу более простого алгоритма очевиден.

В зависимости от применения. Было бы всем так очевидно, то никто бы и не переходил на фильтр Калмана. Железо дешевеет, растет вычислительная мощность, почему бы не реализовать более точный алгоритм.
К тому же у нас разные цели, я хочу сделать очень точную, робастную, устойчивую, надежную систему. И решение пока для меня очевидно - UKF. Комплиментарник если и будет реализован, то в качестве запасного варианта, только для поддержания уровня, акселт и гира.

jShadow:

У меня летает автоматика по маршруту, об удержании тут речи не идет - в висении всё работает хорошо, кроме откровенно халтурных реализаций.

Подождите, я не говорю об автоматике, движения по точкам и прочее. Это я не реализовывал, но там немного отличий, вместо рисования точки на карте пультом, рисует интерполятор. Мы же говорим об алгоритме нахождения ориентации и положения, пригодном для коптеров. Вот интересно как находит ориентацию и положение комплиментарник в активных маневрах, при резких наклонах, при сильных магнитных возмущениях.

Сделал 3 теста, как смог. Ваши замечания, предложения.
1 тест. Компас повернут на 15-20 гр относительно истинного. Жду когда поймает спутники. Взлетаю в ручном режиме. Немного летаю. Перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
2 тест. Компас повернут на 15-20 гр. Спутники пойманы в прошлый раз, поэтому не дожидаюсь. Взлетаю в ручном режиме и сразу перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
Есть косяк со снижением по высоте. коптер ведет себя не очень стабильно.
3 тест. Компас повернут на 45 градусов. Взлетаю в ручном режиме и сразу перехожу в удержание позиции. Начинается “унитазинг”, но через 15 секунд успокаивается. Начинаю маневры, слышется 5 герцовый стук от коррекции по GPS. стук то прекращается, то начинается снова. Садится батарея. Есть нарушение курса от неправильного компаса, долго восстанавливается, не удалось зафиксировать восстановление ориентации, так как села батарея.
Не скажу, что все идеально. Первый косяк довольно серъезный - это при снижении у коптера появляются сильные 5 герцовые стуки. Пока не очень понял, то ли UKF брахлит (почему именно при снижении), то ли контуры управления выходят из линейного режима и начинается колбасня. И при 45 градусном неверном курсе у компаса, UKF не успел восстановиться за время пока не села батарейка. Возможно через некоторое время ориентация стала бы близка к истинной.

jShadow
ИльяПРо:

Это сильный аргумент.Хорошо, ваша правда, если вы это прочуствовали, попробывали на опыте, тогда вы правы, а я нет. Если этой точности хватает, тогда UKF правда не нужен.

Возможно коррекция смещения акселерометра относительно центра вращения точность и повысит - честно признаюсь, не пробовал, т.к. меня устраивает точность того, что есть.

ИльяПРо:

Вот как раз это я и хочу проверить на модели. Я об этих негативных эффектах сам говорил несколько сообщений назад.

ИльяПРо:

Вот это ничем не подтвержденные слова. В спутниках используют фильтр Калмана, а не комплиментарники уже десятки лет. Полагаю это весомый аргумент.

Я говорил об одном и том же, по сути. Какое-то время датчик был устойчивый, фильтр предпочел его, затем датчик стал врать, но по прежнему с низкой дисперсией. Фильтр это сведет с ума гарантированно.

ИльяПРо:

В зависимости от применения. Было бы всем так очевидно, то никто бы и не переходил на фильтр Калмана. Железо дешевеет, растет вычислительная мощность, почему бы не реализовать более точный алгоритм.

Это верно, но при возможностях текущих доступных контроллеров сложная математика - это то, в пользу чего придется жертвовать точностью коррекции положения. Так что пока модифицированный Махони для ориентации и альфа-бета-гамма для положения.

ИльяПРо:

И решение пока для меня очевидно - UKF

Хорошо если так. Я начинал с классического коплиментарника с одной переменной, потому что он в свое время обладал очевидными преимуществами перед “голым” GPS. Сейчас это система с уравнениями 2-го порядка и 13 переменными.

ИльяПРо:

Мы же говорим об алгоритме нахождения ориентации и положения, пригодном для коптеров. Вот интересно как находит ориентацию и положение комплиментарник в активных маневрах, при резких наклонах

Я так понимаю, тест предусматривает полет в режиме, когда пилот управляет скоростями, а не кренами?

ИльяПРо:

Сделал 3 теста, как смог. Ваши замечания, предложения.
1 тест. Компас повернут на 15-20 гр относительно истинного. Жду когда поймает спутники. Взлетаю в ручном режиме. Немного летаю. Перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
2 тест. Компас повернут на 15-20 гр. Спутники пойманы в прошлый раз, поэтому не дожидаюсь. Взлетаю в ручном режиме и сразу перехожу в удержание позиции. Нарушение компаса не повлияли на точность положения и ориентации.
Есть косяк со снижением по высоте. коптер ведет себя не очень стабильно.

Впечатляет! Мне тоже надо прикрутить поправку курса по GPS.

ИльяПРо
jShadow:

Возможно коррекция смещения акселерометра относительно центра вращения точность и повысит - честно признаюсь, не пробовал, т.к. меня устраивает точность того, что есть.

Я не про это, я про линейные ускорения и ускорения возникающие при движения аппарат по кругу на быстрых скоростях, когда в вектор ускорения свободного падения, по которому происходит коррекция подмешиваются “вредные” линейные и центростремительные ускорения. Я тест проводил несколько страниц назад, сравнивал на карусели фильтр Mahony и UKF.

jShadow:

Я говорил об одном и том же, по сути. Какое-то время датчик был устойчивый, фильтр предпочел его, затем датчик стал врать, но по прежнему с низкой дисперсией. Фильтр это сведет с ума гарантированно.

Вот нужно такие ситуации описать и повышать дисперсию в случае выявления. Только в случае с комплиментарником понижением коэффциентов мне не удалось достичь правильного игнорирования неверных датчиков.

jShadow:

Я так понимаю, тест предусматривает полет в режиме, когда пилот управляет скоростями, а не кренами?

Да

Показываю логи. По оси X - направление востока. По оси Y - направление севера. То есть вид сверху. Это траектории движения аппарата.
Обратите внимание чем больше неверен начальный курс компаса, по которому была начальная калибровка осей, тем сильнее пила. Эта пила - это коррекция GPS. чем сильнее пила, тем больше различается истинный курс и прогнозируемый фильтром. Можно заметить, что через некоторое время даже в 3-ьем тесте пила становиится все меньше и меньше, а можно предположить, что полетав я еще немного, курс приблизился бы к настоящему.