Акселерометры измеряют линейное ускорение и наклон с помощью гравитационного контроля, а гироскопы отслеживают угловую скорость - но ни один из них не работает эффективно в одиночку дольше нескольких секунд. Акселерометры дрейфуют при интегрировании в позицию, а гироскопы накапливают ошибку угла из-за смещения смещения. Ниже я расскажу, как эти сенсоры на самом деле ведут себя в реальных системах, где важны их характеристики и как алгоритмы термоядерного синтеза поддерживают их полезность.
Ключевые выводы:
- Акселерометры мгновенно дают гравитационный угол наклона, но интеграция ускорения со скоростью удваивает ошибку шума и смещения на каждом шагу.
- Гироскопы чисто измеряют вращение в краткосрочной перспективе, но даже 0,1°/с смещивают соединения на 6° дрейфа в минуту, если их не корректировать.
- Трёхосное выравнивание определяется внутри кристалла, а не по маркировке упаковки - неправильное чтение диаграммы осей в технических характеристиках может повернуть весь ваш координатный корпус.
- Калибровка нулевого смещения в состоянии покоя не подлежит обсуждению; Смещение температуры может смещать этот ноль на 10-50 мг (акселерометр) или 0,5-2°/с (гироскоп) по рабочему диапазону.
- Сенсорное слияние не является опциональной полировкой - это единственная причина, по которой эти устройства работают вне лабораторных демонстраций, потому что акселерометр позволяет корректировать дрейф гироскопа, а гироскоп отвергает шум акселерометра во время движения.
Как акселерометры измеряют движение и гравитацию
Акселерометр сообщает удельную силу, включающую как реальное ускорение, так и постоянное притяжение 1 g от земной гравитации. Это значит, что стационарный акселерометр на таблице показывает +1 g по своей вертикальной оси, а не ноль - деталь, которая сбивает с труда при каждой первой попытке интеграции.
Наклон можно извлечь напрямую из вектора гравитации без интегрирования, поэтому акселерометры служат долгосрочным ориентиром. Но если попытаться интегрировать ускорение в скорость, а затем в позицию, измерение шума и смещения добавляются на каждом шаге времени. По моему опыту, даже малошумный MEMS-блок (+/- 0,1 мг плотности шума) сможет создать несколько метров фантомного смещения через 10 секунд интеграции, если не соединить его с другим эталоном.
Математика выглядит чистой в учебниках: интегрируй один раз для скорости, два по позиции. На практике смещение постоянного тока и шум 1/f разрушают цепь за считанные секунды.

Строительство акселерометра MEMS
Большинство акселерометров сегодня используют микроскопическую массу, подвешенную кремниевыми пружинами. Когда датчик ускоряется, масса отстаёт из-за инерции, изменяя зазор в паре дифференциальных конденсаторов. Сдвиг ёмкости преобразуется в напряжение через усилитель заряда.
Именно такое ёмкостное сенсорное измерение объясняет, почему MEMS-акселерометры чувствительны к механическим напряжениям и деформациям корпуса - любое изгиб подложки смещает базовую ёмкость и проявляется как ложное ускорение. Я видел, как акселерометры показывают смещение +50 мг только из-за чрезмерно затягиваемых крепящих винтов на плотной плате.
Вся конструкция помещается в квадратный миллиметр, поэтому теперь 3-осевые акселерометры и гироскопы с 3 осями сосуществуют в одном корпусе диаметром 3×3 мм с общей аналоговой фронтенд-системой и логикой цифрового интерфейса.
Датчик вращения гироскопа
Гироскоп показывает угловую скорость в градусах в секунду (или радианах в секунду), а не в угле. Чтобы восстановить ориентацию, нужно интегрировать эту скорость со временем, что означает, что ошибка смещения накапливается линейно в дрейф угла.
Например, гироскоп с постоянным смещением +0,1°/с дрейфует на 6° за одну минуту, на 360° - за час - даже сидя неподвижно. Вот почему гироскопы нуждаются в частой коррекции по абсолютному ориентиру, такому как вектор гравитации акселерометра или северный курс магнитометра.
Сила гироскопа в том, что он мгновенно реагирует на вращение и не обманывается линейным ускорением, вибрациями или наклоном - проблемами, которые портят оценки ориентации только акселерометра во время движения. Гироскопы дают чистую краткосрочную динамику; Акселерометры обеспечивают долгосрочную стабильность. Ни то, ни другое не работает в одиночку.

Эффект Кориолиса в гироскопах MEMS
MEMS-гироскопы опираются на эффект Кориолиса: доказательство массы приводится в резонансную вибрацию вдоль одной оси (оси привода). Когда датчик вращается, сила Кориолиса отклоняет вибрующую массу вдоль перпендикулярной оси ощущений. Амплитуда этого отклонения пропорциональна угловой скорости.
Такая конструкция означает, что MEMS-гироскопы на самом деле являются динамическими устройствами - им требуется непрерывная осцилляция привода для работы. Любое механическое разрядное воздействие или изменение температуры, при котором резонанс привода будет снижать чувствительность до тех пор, пока петля привода не заблокируется повторно. Я отладил системы, где перепады температуры на 20°C снижали выход гироскопа на 15%, потому что частота подачи не была компенсирована температурой.
Сигнал Кориолиса очень маленький (часто изменения ёмкости на уровне фемтофарада), поэтому гироскопы имеют более высокий уровень шума, чем акселерометры, и более уязвимы к электромагнитным помехам и волнениям питания.
Определения осей сенсоров и крепление
Каждый технический лист акселерометра и гироскопа содержит диаграмму ориентации осей, обычно показывающую стрелки X, Y, Z относительно контакта 1 или края упаковки. Эта диаграмма - правда - не обращайте внимания на симметрию контура упаковки.
Я видел, как производственная прошивка поворачивала все данные о движении на 90°, потому что разработчик печатных плат предполагал, что оси акселерометра совпадают с квадратным контуром чипа, хотя на самом деле внутренний кристалл MEMS был повернут. В результате «pitch» превратился в «roll» и наоборот, который проходил базовые проверки при включении, но выходил из строя при наклоне устройства.
Трёхосевые датчики измеряют по ортогональным осям, но эти оси определяются кремниевым травлением, а не способом монтажа чипа. Если в вашей механической сборке возникает смещение осей (например, установка 6-осевой IMU под наклоном 5° для экономии места на плате), вам нужно применить матрицу вращения в программном обеспечении - или принять ошибку поперечной оси на 5°.
Интерфейсы данных и путь сигнала
Большинство современных акселерометров и гироскопов выводят цифровые данные по I²C или SPI. I²C работает медленнее (обычно максимум 400 кГц, что на практике ограничивает частоту дискретизации примерно 200-400 Гц), но использует только два провода и поддерживает мультидроп. SPI работает быстрее (10+ МГц, включая частоту дискретизации 1+ кГц), но требует выделенного выбора чипа и четырёх проводов.
Многие IMU (интегрированный акселерометр + гироскоп) имеют буфер FIFO - обычно от 512 до 1024 образцов - чтобы хост-процессор мог читать данные вспышками, а не опросывать на полной частоте дискретизации. Это отключает питание и прерывающую нагрузку, но нужно следить за водяным знаком FIFO, иначе вы потеряете образцы при переполнении буфера.
Некоторые IMU также предлагают программируемые контакты прерывания, которые подтверждают, когда движение превышает определённый порог, достигнет определённого уровня FIFO или когда датчик фиксирует события свободного падения или касания. Эти функции полезны для низкомощных проектов с бодрством при движении, но логика порога часто слишком груба для точного захвата движения.
Ключевые спецификации и их значение на практике
Диапазон измерения устанавливает максимальную скорость ускорения или вращения, которую датчик может зафиксировать до клиппинга. Для акселерометров распространённые диапазоны составляют ±2 г, ±4 г, ±8 г, ±16 г. Для гироскопов - ±250°/с, ±500°/с, ±1000°/с, ±2000°/с. Более широкий диапазон снижает разрешение, но предотвращает насыщение при ударах или быстром вращении.
В портативном устройстве обычно достаточно акселерометра ±4 г и гироскопа ±500°/с. В условиях дрона или с высокой вибрацией вы будете задевать ±4 г при запуске двигателя или при резком маневре, поэтому ±8 г или ±16 г безопаснее.
Плотность шума задаётся в μg/√Hz (акселерометр) или °/s/√Hz (гироскоп). Умножьте на квадратный корень полосы пропускания сигнала, чтобы получить шум RMS. Например, гироскоп с плотностью шума 0,01°/с/√Гц с полосой пропускания более 50 Гц даёт 0,01 × √50 ≈ 0,07°/с RMS-шум.
Низкий уровень шума важен для замедленного съёмки и тонкой точности угла. Высокий шум после интеграции перерастает в дрейф, поэтому шумный гироскоп теряет точность угла даже быстрее, чем тихий гироскоп с таким же смещением.
Смещение (также называемое смещением с нулевой скоростью или смещением с нулевой гравитацией) - это выход датчика при отсутствии движения. Для акселерометров смещение задаётся в mg; для гироскопов - в °/с. Смещение не является постоянным - оно меняется в зависимости от температуры, напряжения питания, механических напряжений и времени.
Я измеряю смещение при включении питания, усредняя 100-200 образцов, пока датчик неподвижен, а затем вычитаю это смещение из всех будущих показаний. Но если устройство нагревается на 30°C во время работы, смещение смещается ещё на 10-50 мг (акселерометр) или 0,5-2°/с (гироскоп) в зависимости от качества детали. Вот почему высококлассные IMU оснащаются внутренними датчиками температуры и хранят заводские калибровочные таблицы для коррекции смещения и температуры.
Дрейф температуры - это изменение смещения на градус Цельсия. Для гироскопа с характеристикой 0,03°/с/°C повышение температуры на 30°C добавляет 0,9°/с дрейфа - в девять раз больше первоначального смещения хорошей нулевой калибровки. Акселерометры страдают меньше (обычно 0,3-1 мг/°C), но это всё равно важно при применении с точным наклоном.
В одном из автомобильных проектов IMU был установлен рядом с силовым транзистором, который менял температуру 40°C каждые несколько минут. Нам пришлось проводить непрерывную переоценку смещения с использованием состояний фильтра Калмана, потому что гироскоп с нулевой скоростью дрейфовал быстрее, чем фактическое вращение автомобиля при ровном движении.
Процедура калибровки
Минимум, перед использованием необходимо откалибровать нулевое смещение как для акселерометра, так и для гироскопа. Разместите устройство на стабильной поверхности, соберите 200+ образцов по оси, вычислите среднее значение и вычтите это смещение из будущих показаний.
Для акселерометров помните, что одна ось показывает +1 g (или -1 g) из-за силы тяжести - не обнули эту ось. Вместо этого вычтите измеренное значение минус ожидаемую компоненту гравитации. Если ось Z показывает +1.02 g при плоском устройстве, смещение составляет +0.02 g, а не +1.02 g.
Гироскопы должны показывать близкое к нулю по всем осям при неподвижном положении. Любое ненулевое среднее - это смещение.
Более продвинутая калибровка включает:
- Коррекция коэффициента масштабирования: фактическая чувствительность может отличаться от номинальной на 1-3%. Поворачивайте датчик под известными углами (для гироскопа) или переключайте его на +1 g и -1 g (для акселерометра) для измерения ошибки усиления.
- Коррекция невыравнивания осей: три оси не являются идеально ортогональными. Полная калибровочная матрица из 9 параметров может это исправить, но для этого требуется лабораторное оборудование или прецизионный проигрыватель поворота.
- Компенсация температуры: храните смещение и температуру в таблице поиска и интерполируют во время выполнения.
Я редко заморачиваюсь с полной калибровкой 9 глубины в производственных проектах, если только применение не требует точности ниже степени, потому что дополнительная сложность и время тестирования обычно не оправданы. Нулевое смещение и коррекция коэффициента масштаба покрывают 90% реальных ошибок.
Сенсорное слияние: зачем нужны оба
Акселерометры дают вертикальное направление, связанное с гравитацией, но они шумные и легко нарушаются вибрацией или линейным ускорением (любое ускорение, кроме гравитации, выглядит как наклон). Гироскопы обеспечивают чистое и быстрое отслеживание вращения, но со временем они изменяются.
Синтез датчиков сочетает оба подхода: использование гироскопа для передачи ориентации на высокой скорости (от 100 Гц до 1 кГц), затем периодически корректируя оценку ориентации с помощью вектора гравитации акселерометра. Наиболее распространённый алгоритм - это комплементарный фильтр:
угол = 0,98 × (угол + гироскоп × dt) + 0,02 × accel_angle
Это означает, что 98% обновлений приходится на интеграцию гироскопа, а 2% - за счёт измерения наклона акселерометра. В результате получается оценка ориентации, которая быстро реагирует на движение (как гироскоп), но не дрейфует со временем (как референс акселерометра).
Более сложные системы используют фильтр Калмана или расширенный фильтр Калмана (EKF), который динамически корректирует вес на основе оценочного шума и уверенности датчика. При высоком ускорении или вибрации фильтр снижает доверие к акселерометру; Во время устойчивого движения он увеличивает корректирующий усиление, чтобы подавить дрейф гироскопа.
Без термоядерного синтеза вы получаете худшее из двух миров: шумный наклон акселерометра или неограниченный дрейф от гироскопа. Каждый продукт для отслеживания движения, который я выпускал - от игровых контроллеров до модулей IMU - нуждался в слиянии, чтобы его можно было использовать.
Распространённые проблемы и отладка
Если вы показываете постоянное ненулево ускорение или вращение, пока датчик неподвижен, значит, вы не калибровали нулевое смещение. Соберите стационарный набор данных и вычтите среднее.
Если ваша оценка ориентации стабильно дрейфует в одну сторону, коррекция смещения гироскопа не работает. Либо значение смещения неправильно, либо частота дискретизации неправильна (значит, dt ошибочно), либо температура изменила смещение после калибровки.
Если угол наклона прыгает или переворачивается на 90°, скорее всего, вы неправильно назначили оси. Вернитесь к диаграмме осей из технического листа и проверьте свои условности знаков.
Если данные кажутся шумными или периодическими скачками, проверьте разъём питания (добавьте керамику 0,1 мкF и тантал 10 мкF рядом с датчиком), проверьте, что края тактового сигнала SPI совпадают с таймингом технического листа, и убедитесь, что частота дискретизации не выше внутренней выходной частоты датчика (если показать быстрее ODR, это просто повторяет последний выборку или возвращает устаревшие данные FIFO).
Если датчик перестаёт отвечать или возвращает все нули, проверьте подтяжки I²C (типично 4,7 кОм), убедитесь, что адрес чипа в соответствии с вашим кодом (во многих IMU два возможных адреса, выбранных одним пином), и убедитесь, что VDDIO соответствует логическому уровню вашего микроконтроллера (1,8 В, 3,3 В или 5 В). Я отладил три разных варианта, где кто-то считал, что 3.3 В ввод/вывод всегда совместим, но датчик требовал 1.8 В VDDIO, а 3.3 В микроконтроллера перегружал входы.
Что действительно ограничивает точность
В большинстве систем ограничивающий фактор - не шум датчика, а нестабильность смещения и смещение температуры. Гироскоп, который дрейфует на 0,5°/с, накапливает 30° ошибки за одну минуту, что значительно превышает уровень шума RMS 0,07°/s.
Механическое крепление тоже имеет значение. Я тестировал одну конструкцию, где акселерометр находился рядом с точкой прогиба печатной платы, и каждый раз, когда корпус нажимали, плата изгибалась настолько, что добавляло +20 мг ложного ускорения по оси Y. Мы переместили датчик на более жёсткую часть платы, и фантомный сигнал исчез.
Вибрация связывается с акселерометрами даже если датчик рассчитан на сильные ударные нагрузки. При резонансе (обычно 1-5 кГц для MEMS-кристалла на плате) даже вибрация с низкой амплитудой может перейти в диапазон сигнала и выглядеть как реальное ускорение. Я видел это в автомобильных и промышленных приложениях, где рядом расположенный мотор или насос создавал вибрацию 2 кГц, которая переходила в диапазон измерений 100 Гц и добавляла 50+ мг шума.
Решение - механическая изоляция (резиновые демпферы или пенопластовые прокладки) или, более точное, низкочастотная фильтрация, но сначала нужно определить частоту вибрации - анализ спектра исходных данных акселерометра обычно выявляет виновника.
Когда акселерометров и гироскопов недостаточно
Синтез акселерометра + гироскопа хорошо работает для краткосрочной ориентации (от секунд до минут), но не может корректировать смещение курса вокруг вертикальной оси. Если устройство медленно вращается в рыскании (например, поворачиваясь, стоя на месте), гироскоп будет дрейфовать, и акселерометр не видит изменений, потому что гравитация всё ещё вертикальная.
Вот почему 9-осевые IMU добавляют магнитометр для определения магнитного поля Земли и предоставления абсолютной ориентировки. Но магнитометры легко нарушаются близлежащими железными материалами, постоянным током и магнитными полями от двигателей или аккумуляторов - поэтому они вводят новый набор задач калибровки и коррекции ошибок.
Для приложений, требующих долгосрочного положения или абсолютной ориентации, в конечном итоге понадобится внешний ориентир: GPS для позиции, визуальная одометрия для относительного движения или фиксированный маяк для курса. Акселерометры и гироскопы дают высокочастотное локальное движение, а не глобальную истину.
Выбор между классами устройства
MEMS-акселерометры и гироскопы выпускаются потребительских, промышленных и тактических классов. Потребительские детали (используемые в телефонах и фитнес-трекерах) имеют смещённую нестабильность около 0,1-0,5°/с (гироскоп) и 1-10 мг (аксель), с температурным дрейфом до 0,05°/с/°C.
Промышленные IMU улучшают смещение до 0,01-0,05°/с (гироскоп) и 0,1-1 мг (акцел), часто с компенсацией внутренней температуры и лучшей долгосрочной стабильностью. Они стоят на 3-10× дороже, но стоят своих усилий ради робототехники, БПЛА или точной стабилизации платформ.
Тактические и навигационные сенсоры (используемые в аэрокосмической и оборонной промышленности) достигают смещения 0,001°/с или ниже, используя волоконно-оптические или кольцевые лазерные гироскопы вместо MEMS. Они стоят тысячи долларов за ось и требуют тщательного теплового и вибрационного контроля - избыток для всего, кроме инерциальных навигационных систем.
Для большинства встроенных проектов промышленный MEMS среднего класса обеспечивает правильный баланс между стоимостью, производительностью и усилиями по интеграции.