IMU для робота: 6-осевой vs 9-осевой и почему «просто добавить магнитометр» не решает дрейф
«IMU датчик» (393) — нишевый, но чистый запрос без омонимов. В обзоре LiDAR для AMR он упомянут вскользь; отдельного разбора, что внутри IMU и зачем девятая ось, на сайте не было — при этом товар в каталоге есть (раздел «Датчики движения», 956 позиций: 9-осевые модули, акселерометры).
Что физически внутри IMU
6-осевой = 3-осевой акселерометр (линейное ускорение) + 3-осевой гироскоп (угловая скорость). 9-осевой = то же самое плюс 3-осевой магнитометр (направление на магнитный север). Гироскоп даёт мгновенно точный, но дрейфующий во времени угол — интегрирование угловой скорости накапливает ошибку с каждой миллисекундой. Магнитометр дрейфа не имеет (опирается на внешнее магнитное поле, а не на интегрирование), но зашумлён и легко искажается металлом рядом — корпус робота, мотор, батарея.
Почему «добавить магнитометр» не решает дрейф сам по себе
9-осевой модуль не устраняет дрейф гироскопа автоматически — это делает алгоритм sensor fusion (комплементарный фильтр или фильтр Калмана/Маджвика), который на длинных интервалах доверяет магнитометру (нет дрейфа, но шумно), а на коротких — гироскопу (без задержки, но дрейфует). Голый 9-осевой модуль без fusion-алгоритма в прошивке не даёт преимущества перед 6-осевым — все девять осей просто отдают сырые данные, интеграцию делает разработчик сам.
Когда 6 осей достаточно, а когда нужны 9
6 осей хватает, если ориентация корректируется другим источником чаще, чем накапливается заметный дрейф — например, в связке с LiDAR SLAM (переориентация на каждом скане) или на коротких циклах движения манипулятора. 9 осей нужны, когда робот долго движется без внешней коррекции курса (открытое пространство, длинные прямые участки) или курс держится только на IMU без LiDAR/визуальной локализации.
Практическая грабля с калибровкой
Магнитометр требует калибровки на месте установки, а не на заводе — металлический корпус конкретного робота, мотор, силовые провода рядом искажают локальное поле по-разному в каждой сборке — итоговая ошибка курса без калибровки может достигать 10-20°. Стандартная процедура — «восьмёрка» (вращение модуля во всех плоскостях при первом включении на собранном изделии, не на голой плате) для построения карты искажений (hard-iron/soft-iron компенсация). Калибровка на столе без корпуса и без установленных моторов даёт неверные коэффициенты на готовом изделии.