Дрейф гироскопа на мобильных телефонах
Многие посты говорят о проблеме гироскопического дрейфа. Некоторые парни говорят, что показания гироскопа имеют дрейф, однако другие говорят, что интеграция имеет дрейф.
Итак, я провожу один эксперимент. Следующие две цифры - то, что я получил. На следующем рисунке показано, что показания гироскопа вообще не смещаются, а имеют смещение. Из-за смещения интеграция ужасна. Так что, похоже, интеграция - это дрейф, не так ли?
На следующем рисунке показано, что при уменьшении смещения интеграция вообще не смещается.
Кроме того, я провел еще один эксперимент. Сначала я положил мобильный телефон на стол на 10 секунд. Затем поверните его влево, затем восстановите назад. Тогда направо и обратно. Следующий рисунок показывает угол довольно хорошо. Я использовал только уменьшение смещения, а затем интегрирование.
Итак, моя большая проблема здесь заключается в том, что, возможно, смещение является сущностью дрейфа гироскопа (интегрального дрейфа)? Можно ли использовать дополнительный фильтр или фильтр Калмана для устранения дрейфа гироскопа в этом состоянии?
Любая помощь приветствуется.
5 ответов
Если показание гироскопа имеет " смещение ", оно называется смещением, а не смещением.
Дрейф происходит из-за интеграции, и это происходит, даже если смещение точно равно нулю. Смещение связано с тем, что вы накапливаете белый шум чтения путем интеграции.
Для отмены дрейфа я настоятельно рекомендую " Направление косинусной матрицы IMU: рукопись теории", на ее основе я реализовал объединение датчиков для устройств Shimmer 2.
(Редактировать: документ взят из проекта MatrixPilot, который с тех пор перешел на Github, и его можно найти в разделе "Загрузки" вики).
Если вы настаиваете на использовании фильтра Калмана, см. https://stackru.com/q/5478881/341970.
Почему вы используете свой собственный алгоритм слияния сенсоров?
Оба Android ( SensorManager под Sensor.TYPE_ROTATION_VECTOR
) и iPhone ( Core Motion) предлагает свои.
Дорогой Али написал что-то действительно сомнительное и неточное (неправильно).
Дрейф - это интеграция смещения. Это видимый "эффект" смещения при интеграции. Шум - любой вид стационарного шума - который имеет среднее значение нуля, следовательно, имеет интегральный ноль (я говорю не об интегральном PSD, а о аддитивном шуме сигнала, интегрированного во времени).
Смещение изменяется во времени в зависимости от напряжения и температуры тренировки. Например, если напряжение изменяется (и оно изменяется), смещение изменяется. Уклон не является ни фиксированным, ни "предсказуемым". Вот почему вы не можете устранить смещение, используя предложенное вычитание оцененного смещения по сигналу. Также любая оценка имеет ошибку. Эта ошибка накапливается во времени. Если ошибка ниже, эффекты кумуляции (дрейфа) становятся видимыми в течение более длительного интервала, но они все еще существуют.
Теория говорит о том, что полное устранение предвзятости невозможно в настоящее время. На современном уровне техники никто до сих пор не нашел способа устранить смещение - только гироскопы и акселерометры-магнитометры - которые могли бы отфильтровать все смещения.
Android и iPhone имеют ограниченную реализацию алгоритмов устранения смещения. Они не полностью свободны от эффектов смещения (например, через небольшие интервалы). Для некоторых приложений это может вызвать серьезные проблемы и непредсказуемые результаты.
В этой дискуссии Али и Стефано подняли два фундаментальных аспекта дрейфов из-за идеальной интеграции.
По сути, нулевое среднее значение белого шума является идеализированной концепцией, и даже для такого идеального интегрирования шума предлагается более высокий коэффициент усиления по сравнению с низкочастотной составляющей шума, что создает низкочастотный дрейф в интегрированном сигнале. Теоретически, шум с нулевым средним не должен вызывать дрейфа, если он наблюдается в течение достаточно длительного времени, но практически идеальная интеграция никогда не работает.
С другой стороны, даже незначительное смещение постоянного тока в показании (входной сигнал) может вызвать значительный сдвиг с течением времени, если на нем выполняется идеальное интегрирование (суммирование без потерь). Он может увеличивать очень небольшие смещения постоянного тока в системе, поскольку идеальная интеграция имеет бесконечное усиление на компоненте постоянного тока входного сигнала. Поэтому для практической цели мы заменяем идеальную интеграцию фильтром нижних частот, у которого отсечка может быть настолько низкой, насколько требуется, но не может быть нулевой или слишком низкой для практической цели.
Воодушевленный ответом Али (спасибо Али!), Я немного почитал и провел численные эксперименты и решил опубликовать свой собственный ответ о характере дрейфа гироскопа.
Я написал простой октавный онлайн-скрипт, отображающий белый шум и интегрированный белый шум:
Диаграмма угла с уменьшенным смещением, показанная в вопросе, похоже на типичную случайную прогулку. Математические случайные блуждания имеют нулевое среднее значение, поэтому их нельзя считать дрейфом. Тем не менее, я считаю, что численное интегрирование белого шума приводит к ненулевому среднему значению (как можно увидеть на графике гистограммы для случайного блуждания ниже). Это вместе с линейно увеличивающейся дисперсией может быть связано с так называемым гироскопическим дрейфом.
Здесь есть отличное введение в ошибки, связанные с гироскопами и акселерометрами. В любом случае, мне еще нужно многому научиться, поэтому я могу ошибаться.
Что касается дополнительного фильтра, то здесь есть некоторое обсуждение, показывающее, как благодаря этому уменьшается дрейф гироскопа. Статья очень неформальная, но мне она показалась интересной.
Термин «дрейф гироскопа» широко используется для описания смещения гироскопа, которое вызывает дрейф интеграла. Существуют различные типы ошибок при измерении гироскопа. Чаще всего мы говорим о шуме и предвзятости. Шум почти всегда подразумевается как белый шум (если только вы на самом деле не работаете над конструкцией гироскопа, и в этот момент этот ответ является спорным). Смещение может иметь постоянный член (постоянный в течение одного включения, а не в течение всего срока службы) и (в основном непредсказуемый) движущийся сдвиг (иногда называемый нестабильностью).
Фильтр Калмана можно использовать для оценки и устранения некоторой систематической ошибки. Эта величина зависит от шума, нестабильности смещения и качества измерений. KF также (попытается) исправить ваши угловые ошибки.
Дополнительный фильтр используется для устранения дрейфа интеграла, а не для оценки ошибок датчика.
Я хотел бы расширить предыдущие ответы и исправить некоторые вводящие в заблуждение утверждения.
Али заявил, что (я перефразирую) «из-за интеграции белого шума ожидаемая угловая ошибка увеличивается». Это не точно. Предполагая, что у нас есть одномерная задача вращения, ожидаемая ошибка из-за интегрирования белого шума равна 0 (ожидаемое значение = среднее). Однако его стандартное отклонение действительно монотонно. Важное отличие, без которого Фильтр Калмана не будет работать. Стефано прав.
Обратите внимание, что я указал одномерное ограничение. 3-D — совсем другое дело, но ожидаемое значение 0 все равно должно применяться.
Проблема с предвзятостью полностью зависит от ваших датчиков. Датчики низкого качества имеют тенденцию иметь «дрейф смещения» или «стабильность смещения» (нестабильность или как бы вы это ни называли). То есть величина смещения меняется со временем (по разным причинам) и это изменение весьма существенно как по величине, так и по скорости изменения. С другой стороны, датчики очень высокого качества стараются свести это к минимуму, чтобы у нас была постоянная погрешность (как доминирующий термин). Это легче оценить и исправить во время выполнения.
Обратите внимание, что любой гироскоп, который вам попадется в руки, представляет собой датчик низкого качества. Такого, что мы даже не упоминаем о вращении Земли (около 15,04 град/ч).