IMU: гироскоп и акселерометр

Главный датчик ориентации — инерциальный модуль; разберём, что именно меряют его части и в чём их слабости.

IMU (инерциальный измерительный модуль) — связка гироскопа и акселерометра (часто плюс магнитометр), дающая автопилоту угловые скорости и ускорения.

Гироскоп

Гироскоп меряет угловую скорость по трём осям (градусы в секунду). Чтобы получить угол, скорость нужно проинтегрировать — складывать $\omega\cdot dt$ за каждый шаг времени. Проблема: у гироскопа есть малое постоянное смещение (bias), и при интегрировании оно накапливается, угол медленно «уплывает» (drift).

dt = 0.01           # шаг 10 мс
gyro = 20.0         # измеренная угловая скорость, град/с
bias = 0.5          # систематическое смещение, град/с
angle = 0.0
for i in range(300):     # 3 секунды
    angle += (gyro + bias) * dt
true_angle = 20.0 * 3    # истинный угол за 3 с
print("Угол по гироскопу:", round(angle, 2), "град")
print("Истинный угол:", round(true_angle, 2), "град")
print("Уплыло из-за bias:", round(angle - true_angle, 2), "град")

Вывод:

Угол по гироскопу: 61.5 град
Истинный угол: 60.0 град
Уплыло из-за bias: 1.5 град

Всего за три секунды смещение в полградуса в секунду дало ошибку 1.5°. За минуту это уже 30° — без коррекции гироскоп бесполезен на длинных интервалах. Зато на коротких он очень точен и не шумит.

Акселерометр

Акселерометр меряет ускорение, включая постоянное ускорение свободного падения. В покое он «чувствует» вектор силы тяжести и по его наклону позволяет оценить крен и тангаж — абсолютно, без накопления ошибки. Но он зашумлён и реагирует на любое движение аппарата (тряску, манёвры), поэтому мгновенно ему верить нельзя.

Как работает под капотом

Получается красивая взаимодополняемость: гироскоп точен на коротких интервалах, но дрейфует; акселерометр не дрейфует, но шумит. Если довериться только одному — плохо в обоих случаях. Решение — слить их показания так, чтобы взять у каждого лучшее. Этим займётся комплементарный фильтр в следующих уроках.

Частые ошибки

  • Считать угол только по гироскопу: накопится дрейф.
  • Доверять акселерометру в манёвре: он покажет не только гравитацию, но и ускорение аппарата.
  • Забывать про bias: его нужно оценивать и вычитать (калибровка на старте, аппарат неподвижен).

Итог

  • Гироскоп даёт угловую скорость; угол — интеграл, но с накапливающимся дрейфом.
  • Акселерометр чувствует гравитацию и даёт абсолютный наклон, но шумит и реагирует на движение.
  • Их слабости взаимодополняемы — отсюда идея слияния.
Проверьте себя
1. В чём главная слабость оценки угла только по гироскопу?
AОн не работает на холоде
BИз-за смещения (bias) угол постепенно уплывает (дрейф)
CОн меряет только высоту
DОн слишком тяжёлый
2. Что позволяет оценить акселерометр в покое?
AСкорость ветра
BНаклон (крен и тангаж) по направлению вектора силы тяжести
CКурс на север
DВысоту над уровнем моря