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

ИльяПРо

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

jShadow
ИльяПРо:

А как вам тот проект с OpenCV и логами, когда видео поворачивается с помощью логов? кто нибудь его использовал?

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

ИльяПРо:

Я же об этом раз 5 говорил в предыдущих сообщениях

Я за темой не следил какое-то время 😃

ИльяПРо
jShadow:

Я за темой не следил какое-то время

Обкатал UKF на коптере, штука своебразная. Летает без использования магнитометра
rcopen.com/forum/f134/topic224458/6562
Вот есть видео, где показано как GPS корректирует ориентацию в фильтре Калмана.
rcopen.com/forum/f134/topic224458/6608
Обратите внимание чем больше неверен начальный курс компаса, по которому была начальная калибровка осей, тем сильнее пила. Эта пила - это коррекция GPS. чем сильнее пила, тем больше различается истинный курс и прогнозируемый фильтром. Можно заметить, что через некоторое время даже в 3-ьем тесте пила становиится все меньше и меньше, а можно предположить, что полетав я еще немного, курс приблизился бы к настоящему
rcopen.com/forum/f134/topic224458/6626
Фильтр сам находит как из показания GPS правильно скорректировать позицию и ориентацию.
rcopen.com/forum/f134/topic224458/6628
А вот Александр говорит тоже самое:
Как не помощник ? По нему видны итоги перемещения которые можно сравнить с интгралом акселя и выполнить корректировку.
rcopen.com/forum/f134/topic224458/6717

А кстати забыл сказать. Данный UKF, который я взял у AutoQuad можно еще хорошо так оптимизировать. Дело в том, что сигма точки которые генерятся в количестве 2*A+1. Где A - это кол-во переменных состояния + переменные шума. Так вот почитав форум Autoquad я выяснил, что при настройке UKF Билл использовал его способность к Parameter Estimation, то есть брал этот фильтр гонял в поле, где то брал рефференсные значения по переменным состояния. И загонял эти рефференсные значения в UKF. таким образом настраивались все параметры шумов Q, N, V. Но после настройки из вектора состояния Билл не убрал как раз эти V и N - параметры шумов процесса и шумов измерения. По сути они теперь константы и их рассчитывать не надо. То есть теперь по идее не надо вырабатывать сигма точки с учетом переменных шума (так как они константы), а только лишь для переменных состояния. Вот пример в текушем фильтре используется 17 переменных состояния и 12 переменных шума процесса и 3 переменных шума измерения, то есть всего оценивается 17+12+3=32 переменных. Для них вырабатываются сигма точки аж целых 32*2+1 = 65 точек. Каждая точка имеет размерность 32. То есть имеем 65 векторов с 32 измерениями. Каждая точка проходит через уравнения прогноза и измерения.
Представьте как можно это оптимизировать, если убрать из расчета шумы процесса и шумы измерения, ведь они все равно константы и были включены в расчет, только лишь для первоначальной настройки.
Поэтому кто это сделает может существенно повысить частоту UKF или загрузить еще переменных состояния.
Но чтобы это сделать надо хорошо так разобраться во всех функциях SRCDKF. У меня с разбегу не получилось.

ИльяПРо

Поздравляю с Днем Рождения Сергея, основателя этой темы и создателя платы F4BY))

serg2557

Присоединяюсь, Сергей, с днем рождения! Новых свершений и творений)))

oleg70
ИльяПРо:

По сути они теперь константы и их рассчитывать не надо.

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

2 months later
SergDoc

Привет всем! Я тут немного отошел от дел, но не суть… Зреет мысль вырезать для себя любимого показания с датчика (не важно какого) на узкой определённой частоте с помощью таймера, который можно запрограммировать на любую нужную частоту - а о чём я? Да есть такой метод захвата фазы - короче попробовать вырезать весь шум?

oleg70
SergDoc:

Да есть такой метод захвата фазы - короче попробовать вырезать весь шум?

Врятли получится (навскидку)… Попробуй пять “волшебных” формул от калмана на аксель и гиру по всем осям, раза в два шумы точно уменьшаются… (я себе сделал, доволен)

1 month later
SergDoc

Да фиг его знает 401 проц, хотя… Думаю для койчего хватит (неарду) а вот по размерам есть мыслишка нарисовать весь полетник с ту платку с сенсорами припаять к ней вч модуль от x8r и полетник и радио и телеметрия в аппу для оченьмелколетов))) а то вот есть у меня мелкое сна о 40 см - пылится, ибо мои приемыша туда не лезут, а “родную” аппу сын спалил в прямом смысле

17 days later
DWK
SergDoc:

“родную” аппу сын спалил в прямом смысле

Сергей а что за аппа? У меня есть бесхозная рабочая мамка от Turnigy 9 XR с дисплеем. Могу задарить.

SergDoc

Да нет спасибо, у меня их ещё две))) Я о другом - сделать очень мелкий полётник сразу с приёмышем - дабы влез куда угодно… А то вот сейчас строю самолёт под F4BY mini - самолёт под полётник, как-то круто)))

SergDoc

Кстати, уорнер бразерс, мне претензию кинула, типа я использую их контент (первый запуск моего С RUAl контроллера) - вырезал я музыку - мог бы и оставить, ибо те же уорнер бразерс не против (лиж бЫ не продавал), но наши беларуские товарищи хотели сразу денюх им (не бразерсу) за использование чужого котента- с тех пор на моём канале, только технические выкладки без оформления…

4 months later
mit65536

“ИльяПРо” по поводу <<вектор ориентации считается по голому GPS, без какого-либо компаса - связка аксель, гира, GPS. А так да, магнитометр не участвует в расчетах во время полета, только в самом начале, при соотношении осей >> если не трудно, объясните пожалуйста как этого можно добиться, не применять компас? Возможно есть какие то передовые идеи?
Сам использую для вектора ориентации самодельный компас из магнетометра HMC5883 + гироскопа MPU6050 это для маленьких рам.
Для больших рам использую 2 приемника GPS максимально разнесенные друг от друга + гироскоп для компенсации кренов и тангажей, вектор направления рассчитывается математикой в самодельном софте. Ну как можно использовать только один ГПС + гироскоп? - Очень интересно.

alexmos
mit65536:

Ну как можно использовать только один ГПС + гироскоп? - Очень интересно.

Нужен еще акселерометр, и условие динамики движения (т.е. ненулевые ускорения). Именно по акселерометру можно определить направление движения, сравнив его с показаниями GPS. В статике или при константной скорости - думаю никак не определить.

ИльяПРо

Алексей прав, нужен аксель, насчет статики или константной скорости я не могу уверено сказать, нужен эксперимент… Скорее всего будет уходить курс, быстро или медленно зависит от качества гироскопа и первоначальной калибровки.
Работает примерно так, грубо говоря: есть ускорения с акселерометра, которые можно спроецировать через ориентацию в глобальную систему координат, проинтегрировать - получим скорость. Если сравнить эту скорость со скоростью от GPS, то полученную невязку можно использовать для корректировки ориентации. То есть наша скорость зависит от а) ускорения с акселя б) ориентации, с помощью которой это ускорение проецируется на глобальную СК. Как высчитать коэффициент коррекции ориентации от невязки скорости я не знаю, дело в том, что он нелинеен и постоянно меняется. В фильтре Калмана на каждом шагу происходит линеаризация этой зависимости, и находится этот коэффициент…