MPU6050 - Почему моя интеграция гироскопа неверна?

Моя ситуация:

  • Я могу общаться по i2c с моим MPU6050 IMU
  • Я могу получить данные акселерометра и гироскопа
  • Я могу вычислить ориентацию датчика с помощью своего акселерометра

Выпуск:

  • при попытке вычислить ориентацию датчика с помощью моего гироскопа мои значения кажутся совершенно неверными. Я вычисляю ориентацию с помощью дополнительного фильтра.

Это код, который я использую https://paste.ubuntu.com/p/vZmbnc23gj/

Это вычисленная ориентация, когда датчик лежит на столе: https:https://paste.ubuntu.com/p/W7DzVKR9c7/ Эти измерения совершенно неверны, потому что при случайном перемещении сеньора вокруг своей оси он никогда не поднимается выше 1,8 (даже когда я делаю поворот на 180 градусов).

Не мог бы кто-нибудь дать мне несколько подсказок или объяснений, почему мои результаты неверны и так сильно дрейфуют?

, 👍1

Обсуждение

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

@Wendall connection, это просто типичное "i2c соединение" без подтягиваний, @traducerad


1 ответ


-1

Вам необходимо выполнить калибровку смещения, иначе вы получите большие ошибки дрейфа. MPU6050 имеет специальный цифровой процессор движения (DMP), где данные с гироскопа и акселерометра объединяются для вас. Я рекомендую захватить результаты этого слияния из DMP. Насколько я знаю, единственные библиотеки, которые делают это, основаны на работе Джеффа Роуберга. Подробное руководство см. в разделе:

https://youtu.be/k5i-vE5rZR0

,