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: его нужно оценивать и вычитать (калибровка на старте, аппарат неподвижен).
Итог
- Гироскоп даёт угловую скорость; угол — интеграл, но с накапливающимся дрейфом.
- Акселерометр чувствует гравитацию и даёт абсолютный наклон, но шумит и реагирует на движение.
- Их слабости взаимодополняемы — отсюда идея слияния.