Форум программистов, компьютерный форум, киберфорум
Робототехника и умный дом
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 03.08.2015
Сообщений: 3
1

Алгоритм Маджвика. Углы Эйлера намного меньше реальных

05.04.2021, 18:20. Показов 2014. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Вопрос к величине получаемых расчетных углов от Маджвика.

Использую 2 библиотеки установленных в Arduino. Одна для работы с MPU9250, вторая для Madgwick. Плата MEGA2560.
Визуально, на экране, объект отображается через Processing.
Если использовать собственные функции расчета углов Эйлера из библиотеки MPU9250, углы адекватны реальному повороту платы сенсоров. Конечно дрожит и плывет, но в общем визуально поворот реальной платы совпадает с направлениями и величиной углов в Processing.
Из "сырых" данных MPU9250 получаю три угла Эйлера с помощью алгоритма Маджвика.
Посылаю в фильтр Маджвика те же данные и углы ориентировочно в 16 раз меньше. То есть 4 полных оборота платы сенсоров вокруг одной оси дает поворот примерно на 90 градусов.
Чувствительность акселерометра +-2g, гироскопа +-250 градусов/сек. По умолчанию и они не меняются.
Настройка параметров фильтра:

C
1
2
#define sampleFreqDef   100.0f          // sample frequency in Hz
#define betaDef         0.1f                  // 2 * proportional gain
Реально частота вывзова Маджвика каждые 10-12ms.

Вызов Маджвика. Оси магнетометра X и Y в вызове переставлены, так как в datasheet на MPU9250 указано, что по сравнению с акселерометром и гироскопом у магнитометра оси не совпадают. А ось Z по отношению к акселерометру и гироскопу направлена в другую сторону. Поэтому для данных по оси Z стоит знак минус.

C++
1
2
3
4
   ahrs.update(avgyrx, avgyry, avgyrz, avaccx, avaccy, avaccz, avmagy, avmagx, -avmagz);
        yaw   = ahrs.getYaw();
        pitch = ahrs.getPitch();
        roll  = ahrs.getRoll();
Вызов функции из MPU9250:
C++
1
2
3
  yaw = mpu.getYaw();
      pitch = mpu.getPitch();
      roll = mpu.getRoll();
Кто нибудь может подсказать, что может так влиять на чувствительность, чтобы понять где мне рыть в своем коде.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2021, 18:20
Ответы с готовыми решениями:

Ssd скорость намного меньше заявленной!
Диск Silicon Power Slim S55 https://3dnews.ru/950971 заявленная скорость 550/450 MBps моя материнка 970de3/u3s3 Диск подключен к sata 3...

Конвертировать углы Эйлера
Здравствуйте Есть углы поворота Эйлера и порядок их применения (напр XYZ, ZXY и.т.п) в ПРАВОЙ системе координат. Необходимо получить...

3D вектор направления в углы эйлера
Всем привет! Как правильно произвести операцию поворота объекта в 3D по направлению к точке? Аналогичную этой для 2D: ...

1
0 / 0 / 1
Регистрация: 03.08.2015
Сообщений: 3
09.04.2021, 11:21  [ТС] 2
Лучший ответ Сообщение было отмечено ФедосеевПавел как решение

Решение

Все. Разобрался.
Отображение объекта было в Processing. Его библиотечная функция вращения объекта вдоль оси Rotaition принимает входные данные в радианах, а с выхода IMU данные передавались в градусах. Оттуда и неадекватная скорость вращения. Надо было предварительно читать РД.
Всем спасибо. Хотя бы за просмотры .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2021, 11:21
Помогаю со студенческими работами здесь

Блок CarSource в дорожной библиотеке почему-то выдает намного меньше авто, чем задано
Ни интенсивность, ни интервал не выдерживаются для любой конфигурации дорожной сети. При интенсивности 700 авто/час без препятствий на...

Вращения тела в пространстве (углы Эйлера)
Всем здравствуйте! Задача про углы Эйлера: необходимо продемонстрировать анимацию вращения тела. Задаются три угла поворота...

Перевести нормаль в углы Эйлера и кватернион
Доброго времени суток, господа. Есть нормаль в трехмерном пространстве (единичный вектор). Нужны формулы для перевода его в углы...

Какова вероятность, что в образованном тремя точками треугольнике все углы меньше K?
Здравствуйте! Возникла проблема с решением задачи по теории вероятностей: На окружности наудачу ставят три точки. Какова...

Найти элемент в массиве реальных чисел и его номер среди чисел, больше чем 7.8 и меньше чем 50.2
Найти элемент массиву реальных (дійсних) чисел (12.37, 2.43, 16.55, 0.81, 0.32, 1.345, -12.18, 0.15, 4.314, 1.29, 54.38, 0.214, 3.837,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru