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

ИльяПРо
SergDoc:

используют - это можно сказать самая больная тема у них - компас…

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

SergDoc
ИльяПРо:

Хм, тогда я не понимаю зачем он нужен в полете.

им виднее - я тоже не знаю их алгоритмов))) но инспаеры ой как тупили - был период… даже откат прошивки делали…

а когда жпс будет тупить надо как раз добавить доверия инс и компасу? думаю несколько секунд инс выдержит и без жпс…
А ещё, хорошие идеи я бы рекомендовал держать при себе и не выкладывать их на всеобщее обозрение…

ИльяПРо
SergDoc:

А ещё, хорошие идеи я бы рекомендовал держать при себе и не выкладывать их на всеобщее обозрение…

а что мне стоит, я на этом деньги не зарабатываю, идей еще хватает.

rual
ИльяПРо:

И это был решающий момент, сразу убил несколько зайцев.

Если добавить ещё один датчик ГНСС и так же прописать его в матмодель, то при достаточном разносе можно вообще от компаса отказаться. Да, когда то на форуме обсуждали использование разнесенных акселей в качестве единственного источника инфы для стаба.))

ИльяПРо:

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

Илья, хотел попросить объяснение как это работает, но вроде сам догадался 😃

ИльяПРо:

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

Если зависимость жесткая, а она такая, то на устойчивость это не повлияет.

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

ИльяПРо
rual:

Если добавить ещё один датчик ГНСС и так же прописать его в матмодель, то при достаточном разносе можно вообще от компаса отказаться

В принципе можно и щас отказаться, просто при старте все время направлять нос на север.

rual:

Если зависимость жесткая, а она такая, то на устойчивость это не повлияет.

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

По идее часть этой маски есть, но не все случаи рассмотрены. Например если в начале компас не правильно скалиброван, то он повлияет на всю систему, и в том числе на всю ориентацию (и крен и тангаж), тогда как раньше без учета выноса GPS, такого не происходило, был неверен только курс. То есть снижение устойчивости на первый взгляд происходит. А что будет если коптер подлетел к дому или просто сигнал стал врать, хорошо если при этом hAcc и vAcc подскачут, тогда UKF поймет, что не стоит доверять GPS. Но бывает ловля глитча и все в хлам, в идеале все случаи надо исследовать и по идее лишние взаимосвязи снижают устойчивость.

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 и если результат будет не хуже, тогда да комплиментарники - это идеал.

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

ИльяПРо:

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

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