Подтвердить что ты не робот

Дрейф гироскопа на мобильных телефонах

Много сообщений говорят о проблеме дрейфа гироскопа. Некоторые ребята говорят, что чтение гироскопов дрейфует, однако другие говорят, что интеграция имеет дрейф.

  • Считывание сырого гироскопа дрейфует [link].
  • Интеграция имеет дрейф [link] (Answer1).

Итак, я провел один эксперимент. Следующие две цифры - это то, что я получил. На следующем рисунке показано, что показание гироскопа вообще не дрейфует, но имеет смещение. Из-за смещения интеграция ужасна. Похоже, что интеграция - это дрейф, не так ли? enter image description here

На следующем рисунке показано, что при уменьшении смещения интеграция вообще не дрейфует. enter image description here

Кроме того, я провел еще один эксперимент. Во-первых, я поставил мобильный телефон на стол около 10 секунд. Затем поверните его влево, а затем верните назад. Затем направо и обратно. Следующий рисунок достаточно хорошо описывает угол. То, что я использовал, только уменьшает смещение, а затем выполняет интеграцию.

enter image description here

Итак, моя большая проблема заключается в том, что, возможно, смещение является сущностью дрейфа гироскопа (интеграционный дрейф)? Можно ли использовать фильтр фильтра или фильтра Калмана для удаления дрейфа гироскопа в этом состоянии?

Любая помощь приветствуется.

4b9b3361

Ответ 1

Если показание гироскопа имеет "дрейф", оно называется смещением, а не дрейфом.

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

Для отмены дрейфа, я настоятельно рекомендую рукописную рукописную матрицу IMU: Theory, я внедрил датчик fusion для устройств Shimmer 2, основанных на нем.

(Изменить: документ из проекта MatrixPilot, который с тех пор переместился в Github, и его можно найти в разделе "Загрузки" раздел вики.)

Если вы настаиваете на фильтрах Kalman, см. https://stackoverflow.com/q/5478881/341970.

Почему вы внедряете свой собственный алгоритм слияния датчиков?

Оба Android (SensorManager под Sensor.TYPE_ROTATION_VECTOR) и iPhone (Core Motion) предлагает свои собственные.

Ответ 2

Уважаемый Али написал то, что действительно сомнительно и неточно (неправильно).

Дрейф - это интеграция смещения. Это видимый "эффект" смещения при интеграции. Шум - любой стационарный шум, который имеет нулевое значение, следовательно, имеет интегральный нуль (я имею в виду не интеграл от PSD, а аддитивный шум интегрируемого во времени сигнала).

Уклон изменяется во времени, как функция напряжения и температуры тренировки. Например. если изменение напряжения (и оно изменяется), изменения смещения. При этом он не фиксируется и не предсказуем. Вот почему вы не можете устранить смещение, используя предлагаемое вычитание оцененного смещения по сигналу. Также любая оценка имеет ошибку. Эта ошибка накапливается во времени. Если ошибка ниже, эффекты кумуляции (дрейфа) становятся видимыми в более длинном интервале, но они все еще существуют.

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

Android и iPhone имеют ограниченные реализации алгоритмов устранения смещения. Они не полностью свободны от эффектов смещения (например, с небольшими интервалами). Для некоторых приложений это может вызвать серьезные проблемы и непредсказуемые результаты.

Ответ 3

В этом обсуждении Али и Стефано подняли два фундаментальных аспекта дрейфа из-за идеальной интеграции.

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

С другой стороны, даже незначительное смещение постоянного тока в считывании (входном сигнале) может вызвать значительный дрейф за какое-то время, если на нем выполняется идеальная интеграция (без потерь). Он может наращивать очень малые значения dc-offset в системе, поскольку идеальная интеграция имеет бесконечный коэффициент усиления на компоненте постоянного тока входного сигнала. Поэтому для практической цели мы заменяем идеальное интегрирование низкочастотным фильтром, среза которого может быть как можно ниже, но не может быть нулевым или слишком низким для практического применения.

Ответ 4

Мотивированный Али ответ (спасибо Али!), я сделал некоторые чтения и некоторые численные эксперименты и решил опубликовать свой собственный ответ о природе дрейфа гироскопа.

Я написал простую октаву онлайн script, отображающую белый шум и встроенный белый шум:

введите описание изображения здесь

График угла с уменьшенным смещением, который показан в вопросе, похоже, напоминает типичное случайное блуждание. Математические случайные блуждания имеют нулевое среднее значение, поэтому его нельзя рассматривать как дрейф. Однако я считаю, что численная интеграция белого шума приводит к ненулевому среднему значению (как это видно на графике гистограммы для случайного блуждания ниже). Это вместе с линейно увеличивающейся дисперсией может быть связано с так называемым дрейфом гироскопа.

Существует большое введение в ошибки, возникающие из гироскопов и акселерометров здесь. В любом случае мне еще многое предстоит узнать, поэтому я могу ошибаться.

Что касается бесплатного фильтра, здесь обсуждается здесь, где показано, как уменьшается дрейф гироскопа. Статья очень неформальная, но мне было интересно.