|
Заяц, просто Заяц.
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
|
|
Фильтр Калмана/фильтр Маджвика20.09.2023, 14:09. Показов 2353. Ответов 6
Метки нет (Все метки)
Доброго времени суток!
Если кто-нибудь когда-нибудь реализовывал на python обработку угловых скоростей (гироскоп трех осевой) и линейных ускорений(акселерометр трех осевой) в виде углов тангажа/крена/рыскания, используя фильтр Калмана/Маджвика, можете поделиться кодом? А то что-то не получается собственная реализация. Пока что более менее получилось только получить углы из ускорений без всяких фильтраций.
0
|
|
| 20.09.2023, 14:09 | |
|
Ответы с готовыми решениями:
6
Фильтр Калмана Сложный фильтр таблицы данных. Найти оптимальные параметры фильтра Дрейф результатов фильтра Маджвика. MPU9250 |
|
0 / 1 / 0
Регистрация: 23.01.2018
Сообщений: 148
|
||
| 21.09.2023, 23:32 | ||
|
0
|
||
|
Заяц, просто Заяц.
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
|
||||||||||||||||
| 02.10.2023, 12:47 [ТС] | ||||||||||||||||
|
В общем. Уже недели две борюсь с вычислением углом в пространстве на основе показаний акселерометра и гироскопа.
Есть реализованная функция возвращающая данные с датчиков get_data() в таком виде np.array([accel_x, accel_y, accel_z]), np.array([gyro_x, gyro_y, gyro_z]). Была сделана попытка реализации комплиментарного фильтра:
Далее была попытка создания фильтра калмана:
Если абстрагироваться от проблемы угла тангажа 90 градусов, то фильтр калмана, который я выше описал, тоже не дает той точности, которую хотелось бы. Поскольку все показания очень скачут при движении. Собственно говоря вопросы. Как вычислять углы ориентации, если у меня тело всегда будет двигаться (лодка/самолетик на РУ)? Как бороться с проблемой +-180 и проблемой 90 по тангажу?
0
|
||||||||||||||||
|
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
|
|
| 02.10.2023, 14:05 | |
|
Fury67, насколько я знаю, проблема +-180 решается использованием кватернионов, а не углов.
0
|
|
|
Заяц, просто Заяц.
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
|
||||||
| 04.10.2023, 11:55 [ТС] | ||||||
|
u235, понял, спасибо.
Решил начать все с начала. Получилось что-то такое.
Но у меня возникает проблема в том, что фильтр Калмана не воспринимает изменение углов по показаниям гироскопа. То есть угол yaw вообще никак не меняется от кручения датчика. Также еще проблема в том, что иногда бывает какой-то выброс данных акселерометра (скачок ускорения раза в 1.5-2 при статике), у меня фильтр не может с этим справиться. Опять же думаю по той причине, что фильтр как-то игнорирует данные с гироскопа. Если кто-то разбирается, дайте совет, пожалуйста... P.S. еще раз продублирую, что имею. Есть датчик акселерометра и датчик гироскопа, оба трех осевые. Мне надо бы как-то считать углы крена/тангажа в динамике по показаниям акселерометра и гироскопа, а также угол рысканья по показаниям гироскопа (в перспективе для коррекции еще добавлю магнитометр).
0
|
||||||
|
Заяц, просто Заяц.
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
|
||||||
| 24.10.2023, 15:22 [ТС] | ||||||
|
Я решил попробовать реализовать комплиментарный фильтр. Но у меня проблема со скоростью вычислений.
Если я использую альфа 0,992, то скорость вычисления изменений будет очень мала. Расчетные углы на 1,5-2 секунды отстают от фактического положения. Как это можно исправить? Или же это конкретная проблема этого метода объединения результатов? Если я уменьшу значение альфа, то углы вычисляются быстро, но при больших ускорениях углы становятся нереалистичными.
P.S. Есть еще проблемы с вычислением углов по магнитометру, слишком большой разброс значений... Добавлено через 59 минут Еще есть вопросик. Не нужны ли какие-то матрицы поворотов для вычисления углов крена и тангажа?
0
|
||||||
|
10 / 9 / 2
Регистрация: 27.10.2023
Сообщений: 73
|
|
| 29.10.2023, 00:23 | |
|
здесь надо подумать
0
|
|
| 29.10.2023, 00:23 | |
|
Помогаю со студенческими работами здесь
7
Мат-фильтр Фильтр Гаусса Высокочастотный фильтр Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|